The RPM packaging I've done is Cloudera specific. HBase depends on Hadoop 
services as specified by Cloudera's sysvinit service definitions. Also the file 
locations are disto specific:

  - Config in /etc/<package>-<base-version>/conf (symlink)

  - Configuration alternatives as 
/etc/<package>-<base-version>/conf.<config-name>

  - Everything in /usr/lib/<package>-<base-version>

  - Symlinks in /usr/bin, etc.

(<base-version> is 0.20 for 0.20.0 etc.)

The
config packages use 'alternatives' to play with symlinks under their
etc/ . So our package for them does the same. There is an expectation
we provide a "psuedo distributed" config package, so we do. 

The mechanics of the rpmbuild process applies
diffs to the plain source (diffs include wholesale utility scripts for
the build process), runs 'ant package', then executes the build helper
scripts to move files around for packaging. Also packages for different
configs are produced. The base package also includes sysvinit scripts,
e.g. for /sbin/service start hbase-master, /sbin/service start
hbase-regionserver, /sbin/service start hbase-thrift, etc. 

We will need to make a small amount of documentation describing how
to make a non-pseudo config for HBase -- trivial thanks to Nitay's work
with plugging zookeeper into hbase-site. 

A
lot of what Cloudera does is not necessary if we just choose to install
HBase into a vanilla filesystem layout under /opt/hbase-<base-version> or 
similar.  Making a RPM is pretty trivial. We can make up our own
spec file to include in the HBase tarball. One could make RPMs out of
it by doing 'rpmbuild -tb hbase-0.20.0.tar.gz'. However, without Hadoop
distro support, having some random RPM or DEB of HBase is not really
that helpful. For example, how does one specify that HBase daemons
which may be started via sysvinit depend on DFS service?
Or some external ZK service? We can determine if ZK is not started. We can 
determine if DFS is not started... maybe... if the hadoop script is on the 
path. But we can't trigger automatic starting of dependent services. So it 
falls to the admin to do all of that work. Might as well
just release tarballs.

  - Andy




________________________________
From: stack <[email protected]>
To: [email protected]
Sent: Friday, July 31, 2009 1:00:17 PM
Subject: hbase packaging

I know Andrew is working on rpm/deb packaging of hbase for possible
inclusion by cloudera.  I was wondering if it'd be possible to use the
rpms/debs independently or do they have some cloudera dependencies built in?
Thanks,
St.Ack



      

Reply via email to