stormのcluster環境のセットアップ(前編)
Stormと、その開発環境の設定やローカルモードでの実行は下記の記事を参照してください。
- twitterが発表したリアルタイム分散処理フレームワークStorm | tjun memo
- EclipseでStormの開発環境を作る | tjun memo
- Stormをlocalmodeで実行する | tjun memo
今回は、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
インストールしたディレクトリを ZOOKEEPER_HOME に設定し、$ZOOKEEPER_HOME/bin の実行パスに設定。
export ZOOKEEPER_HOME="/usr/local/zookeeper" export PATH=$PATH:$ZOOKEEPER_HOME/bin
$ZOOKEEPER_HOME/conf/zoo.cfg を作成する
zoo_sample.cfg をベースに修正。
sudo cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfgdataLogDir を追加して、ログの場所を決める。今回は “/var/log/zookeeper” とした。(これ不要かもしれない)
dataDir=/tmp/zookeeper dataLogDir=/var/log/zookeeperzookeeper 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 installuuid-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 installlibtoolや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も動かして、クラスタモードでサンプルプログラムを動かすところまでを書きます。
参考になりそうな日本語サイト
Tags: storm