码迷,mamicode.com
首页 > 其他好文 > 详细

storm之9:分组

时间:2015-06-17 15:27:40      阅读:490      评论:0      收藏:0      [点我收藏+]

标签:


Storm通过分组来指定数据的流向,主要指定了每个bolt消费哪个流,以及如何消费。

storm内置了7个分组方式,并提供了CustomStreamGrouping来创建自定义的分组方式。

1、随机分组 shuffleGrouping
这种方式会随机分发tuple给bolt的各个task,每个task接到到相同数量的tuple。

2、字段分组 fieldGrouping
按照指定字段进行分组,该字段具有相同组的会被发送到同一个task,具体不同值的可能会被发送到不同的task。

3、全复制分组 allGrouping(或者叫广播分组)
每一个tuple都会发送给所有的task,必须小心使用。

4、全局分组 globlaGrouping
将所有tuple均发送到唯一的task,会选取task ID最小的task。这种分组下,设置task的并行度是没有意义的。另外,这种方式很有可能引起瓶颈。

5、不分组 noneGrouping
留作以后使用,目前也随机分组相同。

6、指向型分组 directGrouping(或者叫直接分组)
数据源会调用emitDirect()方法来判断一个tuple应该由哪个storm组件来接收,只能在声明了是指向型的数据流上使用。

7、本地或随机分组 localOrShuffleGrouping
如果接收bolt在同一个进程中存在一个或者多个task,tuple会优先发送给这个task。否则和随机分组一样。相对于随机分组,此方式可以减少网络传输,从而提高性能。


storm之9:分组

标签:

原文地址:http://blog.csdn.net/jinhong_lu/article/details/46532729

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!