Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Twitter Stormをインストールしてみます!(その1

こんばんは。kimukimuです。

今日は以前紹介した、Twitter Stormのインストール手順をまとめてみます。

公開された直後だったためにそれほど大々的な動きはなかったのですが、
最近Cassandraとの接続プロジェクト等も公開されて、
実際に使えるものになりつつあるようです。

最近ネタがころころ変わっていますが、他のネタに窮したからではないんですよ。
決して。ええ。多分。

・・・いえ、Android4.0(Galaxy Nexus)も出ないし、
InfinispanもWin7+WinXPIPv4/IPv6混在してIPマルチキャストできなかったりいろいろありますので、否定はしないのですが。。。。

1.まずはマシンの準備をします

まずはじめにマシンの準備を行います。・・・なんですが、
このために物理マシンを買ってくるわけにもいかないので仮想マシンです。
スペックとしては下記のようなノリです。
一応シリーズとして続く予定ですので、
記事の中で今後性能が足りずに落ちましたという失敗談の時の参考にしてください^^;
尚、この後ゲストマシンは4台くらいまでは増やす予定のため、性能は絞っています。

ホストマシン
  • OS:Windows 7 Professional (64bit)
  • CPU:AMD Phenom(tm) II X6 1065T Processor (6 CPUs), ~2.9GHz
  • Memory:16384MB
  • HDD:2TB
ゲストマシン(VirtualBoxの上に構築、1マシン辺りの性能)
  • OS:Centos 6.0 (64bit)
  • カーネルバージョン:2.6.32
  • CPU:1CPU
  • Memory:2048MB
  • HDD:128GB

とりあえず、下記のように仮想マシンを構築し、
NetInstall用のイメージを設定してインストールを行います。

インストール時の構成としては、「Basic Server」としてインストールを行っています。

インストールが終わったら、ネットワークをブリッジモードにして、
ホストマシンと同じネットワーク上に存在する状態にします。
さすがに、ViratualBoxのコンソールだけでは操作しにくいですからね。

2.Stormインストールの前提ソフトウェアのインストール

マシンも構築できたので、Stormインストールに必要となる
前提ソフトウェアのインストールを行います。

尚、実際に確認を行うときには複数の仮想マシンを使う可能性が高いですが、
変わってくるのはソフトウェアの設定くらいでしょうから、
前提条件をそろえるまでは1マシンで続行し、その後増殖させる方向で行きます。

まず、Stormインストールに必要となるソフトウェアは下記の通りです。

  • Zookeeper
  • ZeroMQ 2.1.7
  • JZMQ
  • Java 6
  • Python 2.6.6
  • unzip

これらをインストールしていきます。

Zookeeper

Zookeeperとは、
設定情報の保守/名前付け/分散同期化の提供、
および各種グループサービスを提供するソフトウェアです。
分散型のシステムを使う場合、各システムの状態を管理する必要がありますので、
それを担う存在になります。

Zookeeperのページから、最新版をダウンロードしてきます。

下記のコマンドを実行してファイルを展開し、パスを設定します。

> cd /usr/local
> mkdir download
> cd download
> wget http://ftp.riken.jp/net/apache/zookeeper/zookeeper-3.4.0/zookeeper-3.4.0.tar.gz
> tar xvf zookeeper-3.4.0.tar.gz
> mv zookeeper-3.4.0 ../
> vi /etc/profile → ★末尾に「export PATH=$PATH:/usr/local/zookeeper/bin」を追加★

一度ログアウトして、パス追加を反映させます。
ログインして「env」コマンドを実行し、
PATH変数に「/usr/local/zookeeper/bin」が含まれていればOKです。

次は設定ファイル設定を行います。

> cd /usr/local/zookeeper
> cd conf
> cp -p zoo_sample.cfg zoo.cfg
> vi zoo.cfg

見てみると、とりあえず下記の設定項目はわかりますね。
データ保存ディレクトリと待ちうけポートです。
後で移動しやすいようにデータも含めてzookeeper配下に作成するよう修正します。

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper/data ★変更★
# the port at which the clients will connect
clientPort=2181

次はログ出力設定ファイル(log4j.properties)を修正します。
なにせ、初期表示だとコンソールにしかメッセージが出ないからです。

とりあえず下記のように設定しました。

zookeeper.root.logger=INFO, CONSOLE
zookeeper.console.threshold=INFO
zookeeper.log.dir=/usr/local/zookeeper/log/
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=DEBUG
zookeeper.tracelog.dir=/usr/local/zookeeper/log/
zookeeper.tracelog.file=zookeeper_trace.log

# DEFAULT: console appender only
#log4j.rootLogger=${zookeeper.root.logger}

# Example with rolling log file
log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE

設定が終わったら、データ保存先とログ出力先のディレクトリを作っておきましょう。

設定が終わったら起動します。
パスを通しているので、コマンド「zkServer.sh start」で起動します。

> zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

起動が終わったら、待ちうけポートである2181ポートに対して、
「ruok(Are you OK?)」というメッセージを送って動作確認を行います。
もしここでncコマンドが無い、と言われた場合は
「yum install nc」コマンドを実行してインストールしておきましょう。

実行した結果、imokというメッセージが返ってくればOKです。

> echo ruok | nc localhost 2181
imok

・・・一つインストールするだけで結構大変ですね(汗
とりあえず今回はここまで。

次回また続きをインストールします。