Run in Single Process - acromusashi/acromusashi-stream-example GitHub Wiki

Run in Single Process

シングルプロセスでの利用方法

本ページでは他のプロセスと通信せずにStorm関連プロセスのみで動作する下記の確認用Topologyの利用方法について説明します。

Topology名称 機能
LocalConsolePrintTopology StormTopologyの外部には接続せず、共通メッセージをコンソール出力するTopology
LocalJdbcStoreTopology 外部には接続せず、Snmp型共通メッセージをH2データベースに保存するTopology

LocalConsolePrintTopology

メッセージをコンソール出力するTopologyです。
起動方法/設定方法は下記の通りです。

1. GitHubからファイルを取得します。
wget https://github.com/downloads/acromusashi/acromusashi-stream-example/acromusashi-stream-example-1.0.0.zip
2. Topologyを起動するノードにファイルを展開します。(acromusashi-stream-exampleディレクトリが作成され、その配下に展開されます)
unzip acromusashi-stream-example-1.0.0.zip

ローカルモード起動

3. 起動スクリプト「startLocalConsolePrint.sh」でStormTopologyをローカルモードで起動します。
cd acromusashi-stream-example
chmod +x bin/startLocalConsolePrint.sh
bin/startLocalConsolePrint.sh
4. 動作確認

下記のようなコンソールログが表示されることを確認します。

Header[messageId=41e31f23-bde5-4836-9bce-d71c14e069f6,timestamp=1346735503541,source=192.168.0.1,type=message,version=1.0,additionalHeader={}],[Counter:, 4]
5. 終了する際には「Ctrl + C」を押してください。

クラスタモード起動(ローカルモードで確認後実施してください)

6. Stormクラスタの各ノードのlibディレクトリ(Stormインストーラを用いている場合は/opt/storm/lib)配下に【storm-X.X.X.jarを除いた】「acromusashi-stream-example/lib」ディレクトリ配下のjarファイルを配置し、Supervisorプロセスを再起動します。
その際、libディレクトリ直下に「acromusashi-stream-example/lib」ディレクトリ配下に存在するjarファイルを全て配置してください。その際、libディレクトリの配下にコピーを行うのはrootユーザで行ってください。(例:acromusashi-stream-example/lib/camel-core-2.10.0.jarもlibディレクトリ直下に配置してください。)
/opt/storm/lib ディレクトリ配下にstorm-X.X.X.jarをコピーしてしまった場合は削除してからstartLocalConsolePrint.shを実行してください。
sudo service storm-supervisor restart
7. Topology設定ファイル「LocalConsolePrintTopology.yaml」にNimbusホストを設定します。
vi conf/LocalConsolePrintTopology.yaml

設定内容(__NIMBUS_HOST__を編集してください)

## LocalConsolePrintTopology Sample Config
## NimbusHost
## Set StormCluster's Nimbus Host
nimbus.host        : __NIMBUS_HOST__  ## Nimbusホストを設定
## NimbusPort
nimbus.thrift.port : 6627
8. 起動スクリプト「startLocalConsolePrint.sh」のローカル起動フラグを解除し、ライブラリの投入設定を行います。
vi bin/startLocalConsolePrint.sh

設定内容(trueを編集してください)

java                                     \
  -Dlog4j.configuration=log4j.properties \
  -Dstorm.jar=${STREAM_HOME}/lib/acromusashi-stream-example-1.0.0.jar \ ## ライブラリの投入設定
  -cp ${STREAM_CLASSPATH}                \
  acromusashi.stream.example.topology.LocalConsolePrintTopology \
  ${STREAM_HOME}/conf/LocalConsolePrint.yaml false  ## true > falseに修正
9. 起動スクリプト「startLocalConsolePrint.sh」でStormTopologyをクラスタモードで起動します。
cd acromusashi-stream-example
chmod +x bin/startLocalConsolePrint.sh
bin/startLocalConsolePrint.sh
10. 動作確認

Stormクラスタの各ノードのログファイル(Stormインストーラを用いている場合は/var/log/storm/worker.log)に下記のようなメッセージが出力されていることを確認します。

Header[messageId=41e31f23-bde5-4836-9bce-d71c14e069f6,timestamp=1346735503541,source=192.168.0.1,type=message,version=1.0,additionalHeader={}],[Counter:, 4]
11. 終了する際にはStormクラスタのNimbusノードにrootユーザでログインし、storm killコマンドを実行してください。
cd /opt/storm 
bin/storm kill LocalConsolePrintTopology

LocalJdbcStoreTopology

Trapの情報をJDBCを利用してデータベースに格納するTopologyです。
このサンプルでは、データベースとしてH2を利用しています。
サンプルにはH2のライブラリも含んでいるため、データベースをインストールする必要はありません。
起動方法/設定方法は下記の通りです。

1. GitHubからファイルを取得します。
wget https://github.com/downloads/acromusashi/acromusashi-stream-example/acromusashi-stream-example-1.0.0.zip
  1. Topologyを起動するノードにファイルを展開します。(acromusashi-stream-exampleディレクトリが作成され、その配下に展開されます)
unzip acromusashi-stream-example-1.0.0.zip

ローカルモード起動

3. Topology設定ファイル「LocalJdbcStoreTopology.yaml」に設定ファイルパスを設定します。
cd acromusashi-stream-example
vi conf/LocalJdbcStoreTopology.yaml

設定内容(CamelContext.Pathを編集してください)

## TopologyDefine
SnmpGenSpout.Parallelism   : 1
JdbcStoreBolt.Parallelism  : 1
CamelContext.Path          : 'file:/opt/storm/conf/camel-context-example-jdbc.xml'  ## 設定ファイルパスを設定
4.起動スクリプト「startLocalJdbcStore.sh」でStormTopologyをローカルモードで起動します。
chmod +x bin/startLocalJdbcStore.sh
bin/startLocalJdbcStore.sh
5. 動作確認

CamelJdbcStoreBoltを起動したノードのdbdataディレクトリ配下に、データベースファイルが生成されます。

6. 終了する際には「Ctrl + C」を押してください。
⚠️ **GitHub.com Fallback** ⚠️