Here is a set of instructions to build and package from source either storm-0.8.2.jar or the complete storm-0.8.2.zip (with all dependencies). I assume packaging later versions will be similar, just be careful about dependencies in different versions.
First off, let’s clarify that this is not required if your goal is just to install a Storm cluster or to develop topologies, for that it’s easier to download a package from the Storm download page and follow the Storm installation instructions.
I am executing this on Mac OS X 10.7.5 with Java 1.7.0.
First, install some building tools:
brew install automake brew install libtool brew install pkg-config
We also need Leiningen 1.x, a Clojure build and packaging tool (Storm compilation process currently fails with Leiningen 2.x):
cd /usr/local/ brew versions leiningen git checkout a9b361d /usr/local/Library/Formula/leiningen.rb brew install leiningen
Surprisingly, compiling the Storm code also requires to have a Zero MQ server installed (ahem …), so, well, let’s install that. Storm documentation specifically mentions Zero MQ 2.1.7:
cd /usr/local/ brew versions zmq git checkout ed41f79 Library/Formula/zeromq.rb brew install zmq
We also need jzmq. Storm 0.8.2 comes with jzmq-2.1.0.jar, so let’s install that version:
cd wherever/makes/sense git clone https://github.com/zeromq/jzmq.git cd jzmq/ git checkout v2.1.0 ./autogen.sh ./configure make sudo make install
We’re finally ready to get our hands on Storm itself:
cd wherever/makes/sense git clone https://github.com/nathanmarz/storm.git git checkout 0.8.2
If you just need to build the jar, run this:
You can also create the full release package like this:
chmod 744 bin/build_release.sh bin/build_release.sh
Et voilà. Happy hacking