天天看點

Storm累計求和中使用各種分組Grouping

 Shuffle Grouping: 随機分組, 随機派發stream裡面的tuple, 保證bolt中的每個任務接收到的tuple數目相同.(它能實作較好的負載均衡)

       Fields Grouping:按字段分組, 比如按userid來分組, 具有同樣userid的tuple會被分到同一任務, 而不同的userid則會被配置設定到不同的任務

       All Grouping: 廣播發送,對于每一個tuple,Bolts中的所有任務都會收到.

       Global Grouping: 全局分組,這個tuple被配置設定到storm中的一個bolt的其中一個task.再具體一點就是配置設定給id值最低的那個task.

       Non Grouping: 随機分派,意思是說stream不關心到底誰會收到它的tuple.目前他和Shuffle grouping是一樣的效果,

       Direct Grouping: 直接分組,這是一種比較特别的分組方法,用這種分組意味着消息的發送者具體由消息接收者的哪個task處理這個消息.隻有被聲明為Direct Stream的消息流可以聲明這種分組方法.而且這種消息tuple必須使用emitDirect方法來發射.消息處理者可以通過TopologyContext來或者處理它的消息的taskid (OutputCollector.emit方法也會傳回taskid)

 Fields Grouping 的代碼

Storm累計求和中使用各種分組Grouping
Storm累計求和中使用各種分組Grouping

ShuffleGrouping代碼

Storm累計求和中使用各種分組Grouping
Storm累計求和中使用各種分組Grouping

本文轉自SummerChill部落格園部落格,原文連結:http://www.cnblogs.com/DreamDrive/p/5793975.html,如需轉載請自行聯系原作者

繼續閱讀