StormのMLで流れていた情報まとめ(2013/07〜2013/08)
こんにちは。
情報が確定では無かったり、内部の話になってすぐどうという話ではない情報をちょくちょくMLから拾ってきていますが、
このまま死蔵するのも何なので、記事として残しておきます。
・・・さすがに、最近は新規の情報は減ってきたのでペースは以前に比べて落ちますが^^;
あと、議論を追っているものも混ざっているため情報ごとにソースとなるGoogle Groupsのアドレスも残しています。
参考になる方がいらっしゃったら幸いです。
■https://groups.google.com/forum/?hl=ja#!topic/storm-user/jnwEDgqEMeU
Trident topology on a Storm cluster of 4 computersの状況では以下のようにかなりのペースで
ZooKeeperのトランザクションログが蓄積される。注意。
total 8.5G
- rw-r--r-- 1 root root 3.0G Jul 23 01:11 log.200046fe6
- rw-r--r-- 1 root root 1.7G Jul 23 03:15 log.20005f0cf
- rw-r--r-- 1 root root 2.9G Jul 23 06:56 log.20006c1e2
- rw-r--r-- 1 root root 1.1G Jul 23 09:36 log.20008361b
- rw-r--r-- 1 root root 715K Jul 23 01:11 snapshot.20005f0cd
- rw-r--r-- 1 root root 708K Jul 23 03:15 snapshot.20006c1e0
- rw-r--r-- 1 root root 722K Jul 23 06:56 snapshot.200083619
■ trident doesn't work with tick tuples!
TridentはTickTupleとは同時動作しない。
https://groups.google.com/forum/?hl=ja#!topic/storm-user/frbeA-GLte8
■TridentのsetMaxSpoutPendingの調整方法についての話
まずは小さな値からはじめて、大きくして問題ないか・・・という流れになる。
https://groups.google.com/forum/?hl=ja#!topic/storm-user/GQOf3VgDZYc
■TridentStreamは分割することが可能
Streamを途中で変数にキャストして、そこからつなげればいい。
OpaqueTransactionalでも可能な模様
https://groups.google.com/forum/?hl=ja#!topic/storm-user/8RQ63fhklnE
■Trident事例:ID毎に流れてくるイベントを取得し、最終状態を算出
https://groups.google.com/forum/?hl=ja#!topic/storm-user/TASr2zWyzKs
http://svendvanderveken.wordpress.com/2013/07/30/scalable-real-time-state-update-with-storm/
■Storm用Juju Charm
https://groups.google.com/forum/?hl=ja#!topic/storm-user/pQ4ZKAJpCL0
■Trident State VS Map State およびそのサンプル
https://groups.google.com/forum/?hl=ja#!topic/storm-user/TASr2zWyzKs
■Tridentで使うIBatchSpoutは件数、時間を制御して実装可能
http://www.datasalt.com/2013/04/an-storms-trident-api-overview/
https://github.com/pereferrera/trident-hackaton/blob/master/src/main/java/com/datasalt/trident/FakeTweetsBatchSpout.java
■Storm-Kafkaの組み合わせバージョンについての話
https://groups.google.com/forum/?hl=ja#!topic/storm-user/V_j_JZmFsb4
■Storm-KafkaのSpoutのコネクション並列度についての話
https://groups.google.com/forum/?hl=ja#!topic/storm-user/Vgyl7AT8dZo
■Storm-Kafka-Tridentにおいて複数のTopologyを動作させる場合、SpoutIdを被らないように設定する必要がある
合わせて、KafkaTridentSpoutのZooKeeper上にトランザクション保存をする階層についても記述されている。
/transactional/{spoutid}/coordinator/currtx に現在のトランザクションIDが保持されている
/transactional/{spoutid}/user/{partition}/{txid} にトランザクション実行時のメタデータが保持されている
https://groups.google.com/forum/?hl=ja#!topic/storm-user/HkrRSHJP3l4
■stormconf.ser does not exist の話
やはり、Storm0.8.3等では解消している模様。
https://groups.google.com/forum/?hl=ja#!topic/storm-user/f_92YdijmJQ
■Kafkaから取得するSpoutの並列度の話
Kafkaからメッセージを取得する際、Topicに設定されたパーティションの数しかSpoutを用意することはできない。
#おそらく、Consumerが各々どこのメッセージを取得するかの切り分けをパーティションで行っているため。
https://groups.google.com/forum/?hl=ja#!topic/storm-user/Vgyl7AT8dZo
https://groups.google.com/forum/?hl=ja#!topic/storm-user/O48VymHtr6k
■TridentのAggregateは「バッチ単位」で集計するもの
そのため、前回のバッチの結果とは分離して実行される。Aggregatorで集計される結果もバッチ単位となる。
https://groups.google.com/forum/?hl=ja#!topic/storm-user/6r7Q6Okc3CE
http://svendvanderveken.wordpress.com/2013/07/30/scalable-real-time-state-update-with-storm/
■Kafka-0.8.0向け
徐々にKafka0.8.0向けのSpoutも出てきている。関連情報記事は以下。
https://groups.google.com/forum/?hl=ja#!topic/storm-user/cGBiFzApYdk
■Storm-Nettyの話
有効化とチューニングの話。まだきちんと動くまでには時間がかかりそうに見えます。
https://groups.google.com/forum/?hl=ja#!topic/storm-user/Wde7H1Btfw0
■Storm-Kakfaのチェックポイントの話
一定時間ごとにチェックポイントを更新する形になるため、失敗したら即巻き戻しというわけではない?
https://groups.google.com/forum/?hl=ja#!topic/storm-user/E0MM2-mxk7o
■通知待ちのTupleが大量にあると、Ackerが遅くなる
当然ではありますが、情報ソースとして。
https://groups.google.com/forum/?hl=ja#!topic/storm-user/MMyD0po_pX8
あとは最近の印象としてTridentに関する質問が増えてきたというのがあります。
通常のTopologyは皆さん使えるようになったので、相対的にTridentの質問が増えた・・・という感じでしょうか。