夢とガラクタの集積場

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

Twitter Stormの機能まとめメモ(Boltによるデータ処理、中身)

Boltのまとめその2です。

とりあえず、おそらく最も単純であろうBolt、
PrinterBolt(storm-startar プロジェクト)を用いて確認します。
とりあえず、メソッドの現状わかっている用途についてはJavaDocを参照ください。

public class PrinterBolt implements IBasicBolt {

  /**
   * 処理開始前の下処理を行う。
   * executeの前には呼ばれるが、それ以外のタイミングについては詳細不明。
   * 全メソッドで常時使用したい要素はコンストラクタの中で実施すること。
   * 
   * @param conf 設定値
   * @param context トポロジの構成設定
   */
    @Override
    public void prepare(Map conf, TopologyContext context) 
    {
    }

    /**
     * データ受信時の処理を記述する。
     * 次のBoltにデータを引き渡したい場合、BasicOutputCollectorにデータを投入する。
     * 
     * @param tuple 受信したデータ(タプル単位)
     * @param collector 再度Stormの中に処理データを戻す場合のコレクタ
     */
    @Override
    public void execute(Tuple tuple, BasicOutputCollector collector) 
    {
        System.out.println(tuple);
    }

    /**
     * 終了時のクリーンアップ処理
     */
    @Override
    public void cleanup() 
    {
    }

    /**
     * カラムへの名前付け。
     * 本メソッドでカラムへ名前をつけることでカラムに対する名前によるアクセスが可能となる。
     */
    @Override
    public void declareOutputFields(OutputFieldsDeclarer ofd) 
    {
    }
}

こういう風に実際にコードになっていると結構イメージつきますね。
とりあえず、Boltがどういう流れで初期化され、実行されるかはこれで十分かな。

では、次はSpoutとBoltの構成を示すトポロジについて書きます。それでは。