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

storm--chuanzhiboke

时间:2018-03-09 20:30:09      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:cto   task   body   tput   text   .com   src   不同的   pre   

技术分享图片

 

技术分享图片

Storm里面有7种类型的stream grouping
1.   Shuffle Grouping: 随机分组, 随机派发stream里面的tuple,保证每个bolt接收到的tuple数目大致相同。
2.    Fields Grouping:按字段分组,比如按userid来分组,具有同样userid的tuple会被分到相同的Bolts里的一个task,而不同的userid则会被分配到不同的bolts里的task。
3.    All Grouping:广播发送,对于每一个tuple,所有的bolts都会收到。
4.    Global Grouping:全局分组, 这个tuple被分配到storm中的一个bolt的其中一个task。再具体一点就是分配给id值最低的那个task。
5.    Non Grouping:不分组,这stream grouping个分组的意思是说stream不关心到底谁会收到它的tuple。目前这种分组和Shuffle grouping是一样的效果, 有一点不同的是storm会把这个bolt放到这个bolt的订阅者同一个线程里面去执行。
6.    Direct Grouping: 直接分组, 这是一种比较特别的分组方法,用这种分组意味着消息的发送者指定由消息接收者的哪个task处理这个消息。只有被声明为Direct Stream的消息流可以声明这种分组方法。而且这种消息tuple必须使用emitDirect方法来发射。消息处理者可以通过TopologyContext来获取处理它的消息的task的id (OutputCollector.emit方法也会返回task的id)。
7.    Local or shuffle grouping:如果目标bolt有一个或者多个task在同一个工作进程中,tuple将会被随机发生给这些tasks。否则,和普通的Shuffle Grouping行为一致。

技术分享图片

 

技术分享图片

 

 技术分享图片

技术分享图片

 

storm--chuanzhiboke

标签:cto   task   body   tput   text   .com   src   不同的   pre   

原文地址:https://www.cnblogs.com/shanhua-fu/p/8535361.html

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