夢とガラクタの集積場

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

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の質問が増えた・・・という感じでしょうか。