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

stream grouping

时间:2015-12-24 22:08:43      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

stream grouping就是用来定义一个stream应该如果分配给Bolts上面的多个Tasks

 

storm里面有6种类型的stream grouping:

1. Shuffle Grouping: 随机分组, 随机派发stream里面的tuple保证每个bolt接收到的tuple数目相同。轮询,平均分配。

2. Fields Grouping:按字段分组, 比如按userid来分组, 具有同样userid的tuple会被分到相同的Bolts而不同的userid则会被分配到不同的Bolts

3. All Grouping广播发送, 对于每一个tuple所有的Bolts都会收到。

4. Global Grouping: 全局分组, 这个tuple被分配到storm中的一个bolt的其中一个task。再具体一点就是分配给id值最低的那个task

5. Non Grouping: 不分组, 这个分组的意思是说stream不关心到底谁会收到它的tuple。目前这种分组和Shuffle grouping是一样的效果,不平均分配。

6. Direct Grouping: 直接分组, 这是一种比较特别的分组方法,用这种分组意味着消息的发送者举鼎由消息接收者的哪个task处理这个消息。 只有被声明为Direct Stream的消息流可以声明这种分组方法。而且这种消息tuple必须使用emitDirect方法来发射。消息处理者可以通过TopologyContext来或者处理它的消息的taskid (OutputCollector.emit方法也会返回taskid)

stream grouping

标签:

原文地址:http://www.cnblogs.com/thinkpad/p/5074303.html

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