Storm starter - SingleJoinExample 【轉】

轉自:http://www.51studyit.com/html/notes/20140403/52.html



Topology

  

1.定義兩個spout, 分別是genderSpout, ageSpout   
  Fields, ("id", "gender"), ("id", "age"), 最終join的結果應該是("id", "gender", "age")

  

2. 在設置SingleJoinBolt需要將outFields作爲參數, 即告訴bolt, join完的結果應該包含哪些fields   
   並且對於兩個spout都是以Fields("id")進行fieldsGrouping, 保證相同id都會發到同一個task

  
   
public class SingleJoinExample {
    public static void main(String[] args) {
        FeederSpout genderSpout = new FeederSpout(new Fields("id", "gender"));
        FeederSpout ageSpout = new FeederSpout(new Fields("id", "age"));
        
        TopologyBuilder builder = new TopologyBuilder();
        builder.setSpout("gender", genderSpout);
        builder.setSpout("age", ageSpout);
        builder.setBolt("join", new SingleJoinBolt(new Fields("gender", "age")))
                .fieldsGrouping("gender", new Fields("id"))
                .fieldsGrouping("age", new Fields("id"));
}

SingleJoinBolt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章