Storm入门(4)--分组策略

在Topology中,每一层的处理可能包含多个实体组件,storm的分组策略讨论数据从上游流到下游时的按照怎样的规则流到哪一个下游组件中。

Storm提供的分组策略有:

随机分组:shuffle

上游组件的tuple随机分发到下游组件,不会产生分组

field分组:

按照指定field的key进行hash处理,相同的field,一定进入相同的bolt。容易产生数据倾斜,通过二次聚合避免。

如果需要按照字段分组,如何避免数据倾斜?

以wordcount为例,spout和splitBolt之间使用shuffle分组,spliBolt和CounterBolt之间使用fieldGrouping。为了避免在count阶段的数据倾斜。此时,可以增加一层shuffleCounterBolt,在spliBolt和shuffleCounterBolt之间使用shuffleGrouping,再在后面增加一个counterBolt,两个countBolt之间使用fieldGrouping。

猜你喜欢

转载自www.cnblogs.com/Jing-Wang/p/11034801.html