1. 隨機分組(Shuffle grouping):隨機分發(fā)tuple到Bolt的任務(wù),保證每個任務(wù)獲得相等數(shù)量的tuple。
2. 字段分組(Fields grouping):根據(jù)指定字段分割數(shù)據(jù)流,并分組。例如,根據(jù)“user-id”字段,相同“user-id”的元組總是分發(fā)到同一個任務(wù),不同“user-id”的元組可能分發(fā)到不同的任務(wù)。
3. 全部分組(All grouping):tuple被復(fù)制到bolt的所有任務(wù)。這種類型需要謹(jǐn)慎使用。
4. 全局分組(Global grouping):全部流都分配到bolt的同一個任務(wù)。明確地說,是分配給ID最小的那個task。
5. 無分組(None grouping):你不需要關(guān)心流是如何分組。目前,無分組等效于隨機分組。但最終,Storm將把無分組的Bolts放到Bolts或Spouts訂閱它們的同一線程去執(zhí)行(如果可能)。
6. 直接分組(Direct grouping):這是一個特別的分組類型。元組生產(chǎn)者決定tuple由哪個元組處理者任務(wù)接收。
當(dāng)然還可以實現(xiàn)CustomStreamGroupimg接口來定制自己需要的分組。
項目實施