読者です 読者をやめる 読者になる 読者になる

夢とガラクタの集積場

落ちこぼれ三流エンジニアである管理人の夢想=『夢』と、潰えた夢=『ガラクタ』の集積場です。

Storm-0.9.0系の各プロセスの基本JVMオプションまとめ

こんにちは。

現在遅ればせながらStorm-0.9.0系を動作させて試しているのですが、
まずこの後色々やってみるためのベースとして、各プロセスのJVMオプションを確認しておきます。

何故こんなことを行うかというと、StormではWorkerプロセスを管理するのは
Storm自体となるため、Workerに基本どういう情報を渡しているかを見ておくと、
後付けでJVMオプションを渡す場合の参考になるからなんですね。

尚、後付けでJVMオプションを追加する場合、TopologyをSubmitする際のConfigオブジェクトの
以下のキーに値を設定しておけばOKです。

  • worker.childopts
  • topology.worker.childopts

worker.childoptsとtopology.worker.childoptsに指定した値がスペースで連結され、JVMオプションに追加されます。
あと、上記の2設定値の中に「%ID%」という文字列が含まれていた場合はWorkerプロセスのポートに置換されてJVMオプションとして追加されます。

というわけで、各プロセスのJVMオプションを見てみます・・・
尚、前提としてStormを/opt/storm 配下にインストールした場合です。
あとStorm-Installerを使っているので、ZeroMQ/JZMQは/usr/lib64配下にインストールされ、library.pathにもそのパスが追加されています。
WorkerプロセスのオプションはStorm-StarterのExclamationTopologyを起動して確認しています。

1.Storm-Nimbus

Stormクラスタの管理APIを提供するプロセスです。
■Storm-Nimbus(backtype.storm.daemon.nimbus)

-Dstorm.options= -Dstorm.home=/opt/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -Xmx1024m
-Dlogfile.name=nimbus.log -Dlogback.configurationFile=/opt/storm/logback/cluster.xml
2.Storm-UI

NimbusにアクセスしてStormのクラスタの状態を表示するプロセスです。
■Storm-UI(backtype.storm.ui.core)

-Dstorm.options= -Dstorm.home=/opt/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -Xmx768m
-Dlogfile.name=ui.log -Dlogback.configurationFile=/opt/storm/logback/cluster.xml
3.Storm-Supervisor

NimbusからTopologyの割り当てを受けてWorkerプロセスを起動させるプロセスです。
■Storm-Supervisor(backtype.storm.daemon.supervisor)

-Dstorm.options= -Dstorm.home=/opt/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -Xmx256m
-Dlogfile.name=supervisor.log -Dlogback.configurationFile=/opt/storm/logback/cluster.xml
4.Storm-DRPCServer

外部からのRPCを受け付けてキューイングするプロセスです。Topologyの処理を外部から起動させたい場合等に使えます。
■Storm-DRPCServer(backtype.storm.daemon.drpc)

-Dstorm.options= -Dstorm.home=/opt/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -Xmx768m
-Dlogfile.name=drpc.log -Dlogback.configurationFile=/opt/storm/logback/cluster.xml
5.Storm-LogViewer

Storm0.9.0系から追加された、Stormのログの内容をWebから確認することが可能なプロセスです。
ただ、Storm-Installerを使ってから0.9.0系に更新すると諸事情あって動作しません(汗
その対応はまた別途。
■Storm-LogViewer(backtype.storm.daemon.logviewer)

-Dstorm.options= -Dstorm.home=/opt/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -Xmx128m
-Dlogfile.name=logviewer.log -Dlogback.configurationFile=/opt/storm/logback/cluster.xml
6.Storm-Worker

StormでTopologyを動作させるプロセスです。
ExclamationTopologyだと3プロセス起動されるため、3プロセス分。
■Storm-Worker(backtype.storm.daemon.worker)

-Xmx768m -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dlogfile.name=worker-6701.log -Dstorm.home=/opt/storm
-Dlogback.configurationFile=/opt/storm/logback/cluster.xml -Dstorm.id=ExclamationTopology-1-1383168472
-Dworker.id=b0a80c0a-d02f-4286-a57b-bbd16a661d7a -Dworker.port=6701
-Xmx768m -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dlogfile.name=worker-6702.log -Dstorm.home=/opt/storm
-Dlogback.configurationFile=/opt/storm/logback/cluster.xml -Dstorm.id=ExclamationTopology-1-1383168472
-Dworker.id=2783ef0d-9ac4-4666-8174-3193307108de -Dworker.port=6702
-Xmx768m -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dlogfile.name=worker-6703.log -Dstorm.home=/opt/storm
-Dlogback.configurationFile=/opt/storm/logback/cluster.xml -Dstorm.id=ExclamationTopology-1-1383168472
-Dworker.id=2f8ba269-96dd-4eb3-bcdb-5e1f2a69db27 -Dworker.port=6703
オプションは前と何が変わった?

LogViewerはそもそも前は無かったのでそれはおいておくとして、
WorkerにTopologyの情報やWorkerの情報といったJVMオプションが色々と追加されています。
それがどう使えるか・・・ということについてはまた別の場所で。