Stormと、その開発環境の設定やローカルモードでの実行は下記の記事を参照してください。

今回は、stormのnimbusやsupervisorを利用する、クラスタ環境をセットアップするときのメモです。 centosで試していますが、linux環境であれば同じような感じで動くと思います。
マシンは複数台を想定していますが、1台の中で動かすこともできます。

関連モジュールのインストール

stormを動かすのに必要なものをインストールします。
基本的には、ここに書かれている手順に従います。

バージョンが、最新版じゃないものを入れるものも多いので、注意して下さい。 また、今後変わることもありますので、上記の公式ページを確認するのがいいと思います。

Java

Javaが必要です。環境変数JAVA_HOMEも設定してください。

zookeeper のセットアップ

Apache zookeeper からリリースのアーカイブを取得(今回は 3.3.3 を使いました)

wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz
tar zxf zookeeper-3.3.3.tar.gz
sudo cp -R zookeeper-3.3.3 /usr/local/
sudo ln -s /usr/local/zookeeper-3.3.3/ /usr/local/zookeeper

インストールしたディレクトリを ZOOKEEPERHOME に設定し、$ZOOKEEPERHOME/bin の実行パスに設定。

export ZOOKEEPER_HOME="/usr/local/zookeeper" 
export PATH=$PATH:$ZOOKEEPER_HOME/bin

$ZOOKEEPERHOME/conf/zoo.cfg を作成する zoosample.cfg をベースに修正。

sudo cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg 
dataLogDir を追加して、ログの場所を決める。今回は "/var/log/zookeeper" とした。(これ不要かもしれない)
dataDir=/tmp/zookeeper
dataLogDir=/var/log/zookeeper

zookeeper ver3.3.3のzoo.cfgでは、コメントアウトしている設定まで読み込まれるっていうひどい仕様になっているので気をつけてください。結構はまりました。

例えば、zoo.cfgはこんな感じになります。 zookeeperも本来は複数台で使うものですが、とりあえず1台で動かします。

# The number of milliseconds of each tick
tickTime=2000

# The number of ticks that the initial 
# synchronization phase can take
initLimit=10

# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5

# the directory where the snapshot is stored.
dataDir=/tmp/zookeeper
dataLogDir=/var/log/zookeeper

# the port at which the clients will connect
clientPort=2181

# server settings
server.1=localhost:2888:3888
#server.1=zookeeper1:2888:3888
#server.2=zookeeper2:2888:3888
#server.3=zookeeper3:2888:3888

ついでに、必要があればzookeeperのlog4jの設定もしましょう。 やらなくても動きます。Consoleじゃなくてファイルにログを残したい場合だけ変えてください。

ディレクトリの作成も忘れずに。

sudo mkdir /tmp/zookeeper
sudo mkdir /var/log/zookeeper

zeromq & jzmq のインストール

以下の手順に従ってインストール。

まずzeromq.

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

uuid-dev が無いと言われたら yum install uuid-devel

LD_LIBRARY_PATH に /usr/local/lib を追加しておく。
そのあと

sudo ldconfig

次に、jzmq.

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

libtoolやautomake, autoconf, pkg-configなどがないと言われたらyum等で入れましょう。

python 2.6.6 インストール

centos5だとpython のバージョンが 2.4.3 だったので 2.6.6 を入れる。

以下を参考に、古いものを共存させながらインストール。

Stormのインストール

前の記事と同様です。 https://github.com/nathanmarz/storm/downloads から最新のstormをダウンロードして、zipを解凍してください。(2011/12/27の最新verは0.6.0)

そして、storm-..*/binにpathを通します。

$ wget https://github.com/downloads/nathanmarz/storm/storm-0.6.0.zip --no-check-certificate
$ unzip storm-0.6.0.zip
$ sudo cp -R storm-0.6.0 /usr/local/
$ export STORM_HOME=/usr/local/storm-0.6.0
$ export PATH=$PATH:$STORM_HOME/bin

今回はここまで。 次回は、1台のマシンでnimbusもsupervisorも動かして、クラスタモードでサンプルプログラムを動かすところまでを書きます。

続き↓

参考になりそうな日本語サイト