layout: documentation

The native dependencies are only needed on actual Storm clusters. When running Storm in local mode, Storm uses a pure Java messaging system so that you don't need to install native dependencies on your development machine.

Installing ZeroMQ and JZMQ is usually straightforward. Sometimes, however, people run into issues with autoconf and get strange errors. If you run into any issues, please email the Storm mailing list or come get help in the #storm-user room on freenode.

Storm has been tested with ZeroMQ 2.1.7, and this is the recommended ZeroMQ release that you install. You can download a ZeroMQ release here. Installing ZeroMQ should look something like this:

wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
tar -xzf zeromq-2.1.7.tar.gz
cd zeromq-2.1.7
./configure
make
sudo make install

JZMQ is the Java bindings for ZeroMQ. JZMQ doesn‘t have any releases (we’re working with them on that), so there is risk of a regression if you always install from the master branch. To prevent a regression from happening, you should instead install from this fork which is tested to work with Storm. Installing JZMQ should look something like this:

#install jzmq
git clone https://github.com/nathanmarz/jzmq.git
cd jzmq
./autogen.sh
./configure
make
sudo make install

To get the JZMQ build to work, you may need to do one or all of the following:

  1. Set JAVA_HOME environment variable appropriately
  2. Install Java dev package (more info here for Mac OSX users)
  3. Upgrade autoconf on your machine
  4. Follow the instructions in this blog post

If you run into any errors when running ./configure, this thread may provide a solution.