|
We test our RPMs by
For full functional testing, we also package up the test source trees as JAR files which are published via Ivy, so that the release/ project can retrieve those test files and point them (by way of java properties) at the remote machine. This is powerful as you can be sure that the RPM installations really do work as intended. If you only test the local machine, you miss out on problems. These tests don't verify all possible upgrades. They can be trouble as RPM installs the new files before uninstalling the old ones. Trouble. The other issue is configuration. You can either mark all configuration files as %config(noreplace), meaning people can edit them and upgrades won't stamp on them, or have a more structured process for managing conf files. Cloudera provide a web site to create a new configuration RPM, Apache could be provide a .tar.gz file which contains everything needed to create your own configuration RPM. Therefore + 1 to RPMs and debs
I don't volunteer to write the spec files or the build files, all mine are up to look at, and I will formally release them as Apache licensed if you want to use them as a starting point: I should add that I do include my own Hadoop jars in my RPMs, and that these RPMs are what get installed in machine images (real or virtual) that are then used for all the cluster based testing. Because if you are going to distribute your artifacts as RPMs, that's how you should test your code. Once you've automated RPM installation and the creation of gold-VM images for your target VM infrastructure (VMWare, Xen, EC2, etc), then you can worry about cluster scale testing of the artifacts.
In
HADOOP-5615 includes some spec files; these could be a starting point for something targeting 0.22+ (with all of avro's jars too).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I would suggest the other way around: create an RPM spec file,
which uses a distribution tarball and calls the generic build.xml
to build the hadoop packages.
This way eases the adoption by upstream distributions, as they
already have the framework to build packages from tarball+spec
files (source RPM).
And the same pattern can be used for Debian/Ubuntu packaging.