Abstract - acromusashi/acromusashi-stream-example GitHub Wiki
AcroMUSASHI Stream Exampleプロジェクトは
下記のようなプロセス構成におけるサンプルTopology(=HadoopにおけるJobに相当)と、
Topologyと通信を行うプロセスの設定をまとめたものです。
上記の図中で記述されている各プロセスについては下記URLを確認してください。
プロセス | プロセスの役割 | Source URL / Note |
---|---|---|
SnmpToolkit | イベントルーティングプロセスに対してSNMP Trapを送信する送信元プロセス | http://code.google.com/p/snmptoolkit/ |
Camel | 受信したイベントを次プロセスに投入するイベントルーティングプロセス | http://camel.apache.org/ |
Kestrel | 受信したイベントの永続化が可能な、メッセージキュー | https://github.com/robey/kestrel |
Storm Topology | データを連続的に処理し続けるストリーム処理プロセス | http://storm-project.net/ |
Exampleプロジェクトで提供しているサンプルTopology一覧は下記の通りです。
利用方法についてはシングルプロセスでの利用方法、Camelの利用方法、Kestrelの利用方法、SnmpToolkitの利用方法、Javadocを参照してください。
下記のサンプルTopologyを実行する際にはacromusashi-example-X.X.X.jarとyamlファイルを
StormクラスタのNimbusノードに配置し、一覧にあるコマンドを実行してください。
その際yamlファイルのKestrel.Hostsのポート番号部分にはKestrelの利用方法で設定しているthriftListenPortの値を設定してください。
Topology名称 | 機能 |
---|---|
HbaseStoreTopology |
HBase DataStore用のTopologyを起動する。
Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.HbaseStoreTopology conf/HbaseStoreTopology.yaml false |
HdfsStoreTopology |
HDFS DataStore用のTopologyを起動する。 Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.HdfsStoreTopology conf/HdfsStoreTopology.yaml false |
LocalConsolePrintTopology |
StormTopologyから外部には接続せず、共通メッセージをコンソール出力するTopology Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.LocalConsolePrintTopology conf/LocalConsolePrintTopology.yaml false |
LocalJdbcStoreTopology |
StormTopologyから外部には接続せず、Snmp型共通メッセージをH2データベースに保存するTopology Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.LocalJdbcStoreTopology conf/LocalJdbcStoreTopology.yaml false |
Snmp2HbaseHdfsStoreTopology |
HBase/HDFS DataStore用のTopologyを起動する。 Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.Snmp2HbaseHdfsStoreTopology conf/Snmp2HbaseHdfsStoreTopology.yaml false |
Snmp2HbaseStoreTopology |
HBase DataStore用のTopologyを起動する。 Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.Snmp2HbaseStoreTopology conf/Snmp2HbaseStoreTopology.yaml false |
Snmp2HdfsStoreTopology |
HDFS DataStore用のTopologyを起動する。 Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.Snmp2HdfsStoreTopology conf/Snmp2HdfsStoreTopology.yaml false |
Snmp2JdbcStoreTopology |
データベース用のTopologyを起動する。 Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.Snmp2JdbcStoreTopology conf/Snmp2JdbcStoreTopology.yaml false |
TwitterJsonConsolePrintTopology |
TwitterJSON形式で取得したデータを共通メッセージに変換し、コンソール出力するTopology Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.TwitterJsonConsolePrintTopology conf/TwitterJsonConsolePrintTopology.yaml false |
KafkaEsTopology |
KafkaからJSON文字列を取得し、ElasticSearchに投入するTopology Topologyの動作フローは下記の通り。
bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.topology.KafkaEsTopology conf/KafkaEsTopology.yaml false |
KmeansTopology |
KMeansクラスタリングを行うTopology ファイルから点データを読み込み、KMeans++アルゴリズムを使用してクラスタリングを行う。 クラスタリングを行った結果の学習データをInfinispanに保存する。 設定時間間隔で学習モデルのマージを行い、複数スレッド間で発生した差分の補正を行う。 DRPCで判定用データを受信し、クラスタリングを行った結果を返す。 Topologyの動作フローは下記の通り。 入力Stream
クラスタモード起動コマンド例(1行で記述してください): bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.ml.topology.KmeansTopology conf/KmeansTopology.yaml false |
LofTopology |
LOFスコア算出を行うTopology ファイルから点データを読み込み、LOFアルゴリズムを使用してスコア算出を行う。 LOFスコア算出を行った結果の学習データをInfinispanに保存する。 設定時間間隔で学習モデルのマージを行い、複数スレッド間で発生した差分の補正を行う。 DRPCで判定用データを受信し、クラスタリングを行った結果を返す。 Topologyの動作フローは下記の通り。 入力Stream
クラスタモード起動コマンド例(1行で記述してください): bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.ml.topology.LofTopology conf/LofTopology.yaml false |
EndoSnipeTridentTopology |
ENdoSnipeに統計結果を通知するTridentTopology KafkaからApacheログ(JSON形式)を読み込み、Apacheホスト毎にグルーピングをかけてレスポンスタイムに対するChangeFinderアルゴリズムによる変化点検出を行う。 変化点検出後、ホスト毎に統計を行い、結果をENdoSnipe(DataCollector)に通知する。 Topologyの動作フローは下記の通り。
クラスタモード起動コマンド例(1行で記述してください): bin/storm jar acromusashi-example-X.X.X.jar acromusashi.stream.example.ml.topology.EndoSnipeTridentTopology conf/EndoSnipeTridentTopology.yaml false |