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

storm分组方式

时间:2014-11-24 14:58:39      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:使用   sp   on   div   log   bs   工作   as   nbsp   

    Storm有 7 种类型的stream分组:

         1.Shuffle Grouping: 

                   随机分组, 随机派发stream 里面的 tuple,保证每个 bolt 接收到的 tuple 数目大致相同。<br>

         2.Fields Grouping:

                   按字段分组,比如按 userid 来分组, 具有同样 userid 的 tuple 会被分到相同的 Bolts 里的一个 task,
                   而不同的userid 则会被分配到不同的 bolts 里的 task。 

         3. All Grouping:

                   广播发送,对于每一个 tuple,所有的bolts 都会收到。<br>

         4.Global Grouping:

                   全局分组, 这个 tuple 被分配 到 storm 中的一个 bolt的其中一个 task。再具体一点就是分配给 id 值最低的 那个 task。<br>

         5. Non 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分组方式

标签:使用   sp   on   div   log   bs   工作   as   nbsp   

原文地址:http://www.cnblogs.com/muzhongjiang/p/4118486.html

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