Taste of Tech Topics

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

StormのプロセスをDaemon化してみます(その2

こんにちは。kimukimuです。

前回Stormのサービス化のためにMonitをインストールしましたので、
次は実際にStormをサービス化してみましょう。

6.Stormのサービス化に必要なファイルは?

必要なのは下記の3つです。

  • /etc/init.d用のサービス操作スクリプト
  • /etc/init.d配下から読み込むsysconfig設定ファイル
  • Monitへのサービス登録用ファイル

ファイル自体はStormのRPMパッケージプロジェクトに全てあるので、それをベースに作成します。
・・・最終的にはspecファイルも編集してRPMパッケージ化するのが理想なんですが、今回の主眼と外れますので、
とりあえずファイルを配置する形で試してみます^^;

7.必要ファイルの配置

まずはStormGitHubから「storm-0.8.0-SNAPSHOT.zip」を、
storm-rhel-packagingから「download as tar.gz」を押下してstorm-rhel-packaging.tar.gzをダウンロードします。
#storm-rhel-packagingは違うファイル名でダウンロードされますが、便宜上「storm-rhel-packaging.tar.gz」とおきます。

[root@hyperion src]# ls
storm-0.8.0-SNAPSHOT.zip  storm-rhel-packaging.tar.gz

では、各種ファイルの配置を行っていきます。
尚、Stormのインストール先は「/opt/storm」。実行ユーザはまずは「root」として進めます。

■Stormの配置

[root@hyperion src]# unzip storm-0.8.0-SNAPSHOT.zip
Archive:  storm-0.8.0-SNAPSHOT.zip
   creating: storm-0.8.0-SNAPSHOT/
// (※省略※)
[root@hyperion src]# ls
storm-0.8.0-SNAPSHOT  storm-0.8.0-SNAPSHOT.zip  storm-rhel-packaging.tar.gz
[root@hyperion src]# mv storm-0.8.0-SNAPSHOT /opt/
[root@hyperion src]# ls /opt/
storm-0.8.0-SNAPSHOT
[root@hyperion src]# ln -s /opt/storm-0.8.0-SNAPSHOT /opt/storm
[root@hyperion src]# ls -l /opt/
lrwxrwxrwx  1 root root   25  7月 23 03:16 2012 storm -> /opt/storm-0.8.0-SNAPSHOT
drwxr-xr-x  8 root root 4096  7月 18 09:56 2012 storm-0.8.0-SNAPSHOT
[root@hyperion src]# vi /opt/storm/bin/storm
// #CONF_DIR/STORM_DIRを下記のように修正
// CONF_DIR = "/opt/storm/conf/"
// STORM_DIR = "/opt/storm/"
[root@hyperion src]# vi /opt/storm/conf/storm.yaml
// #末尾に下記の記述を追加
// storm.zookeeper.servers:
//     - "hyperion"
// 
// nimbus.host: "hyperion"
// 
// storm.local.dir: "/opt/storm"

とりあえずこれでStormの配置は完了です。
では、次はstorm-rhel-packagingの配置を行います。

■storm-rhel-packagingの配置

[root@hyperion src]# tar xzvpf storm-rhel-packaging.tar.gz
storm-rhel-packaging/init.d/storm-nimbus
storm-rhel-packaging/init.d/storm-supervisor
storm-rhel-packaging/init.d/storm-ui
storm-rhel-packaging/sysconfig/storm
storm-rhel-packaging/monit/storm-nimbus
storm-rhel-packaging/monit/storm-supervisor
storm-rhel-packaging/monit/storm-ui
// (※関連ファイルのみ抜粋表示※)
[root@hyperion src]# cp -p storm-rhel-packaging/init.d/* /etc/init.d/
[root@hyperion src]# ls -l /etc/init.d/storm*
-rwxrwxr-x 1 root root 2178  7月 18 16:53 2012 /etc/init.d/storm-nimbus
-rwxrwxr-x 1 root root 2234  7月 18 16:53 2012 /etc/init.d/storm-supervisor
-rwxrwxr-x 1 root root 2132  7月 18 16:53 2012 /etc/init.d/storm-ui
[root@hyperion src]# cp -p storm-rhel-packaging/sysconfig/storm /etc/sysconfig/
[root@hyperion src]# ls -l /etc/sysconfig/storm
-rw-rw-r-- 1 root root 604  7月 18 16:53 2012 /etc/sysconfig/storm

これでstorm-rhel-packagingの配置も完了です。
では、実際にサービスを起動してみましょう・・・

8.StormService起動!

というわけで(?)、Stormをサービスとして起動します。
事前にZookeeperを起動しておいて、試します。

[root@hyperion src]# service storm-nimbus start
Starting storm nimbus...
Storm nimbus is running.                                   [  OK  ]
[root@hyperion src]# service storm-nimbus status
Storm nimbus is running.
[root@hyperion zookeeper]# service storm-ui start
Starting storm ui...
Storm ui is running.                                       [  OK  ]
[root@hyperion zookeeper]# service storm-ui status
Storm ui is running.
[root@hyperion zookeeper]# service storm-supervisor start
Starting storm supervisor...
Storm supervisor is running.                               [  OK  ]
[root@hyperion zookeeper]# service storm-supervisor status
Storm supervisor is running.

これでStormがサービスプロセスとして起動しているはずです。
とりあえず、Storm-UIを確認してみます。

すると・・・

Stormの3プロセス(nimbus、ui、supervisor)が全て起動していることが確認できました。
これでとりあえずStormのサービス化自体は完了です。

残るはサービス化したStormの実際の動作確認と、Monitへの登録ですね。
段々技術検証から実際に運用する段階にシフト出来ていているようでいい感じです。

それでは続きは次回に。