美文网首页
storm的八种Grouping策略

storm的八种Grouping策略

作者: 6cc89d7ec09f | 来源:发表于2018-03-26 14:48 被阅读38次

    转载:(http://www.cnblogs.com/UUhome/p/4298755.html)

    在这里,将会提到storm的七种grouping策略,并且编码逐一实现。

    首先,需要一个集群(希望尽量模仿真实环境,故就不用本地模式了)。

    现在有三个节点。一个作为nimbus,两个作为supervisor。到这里先介绍一下storm逻辑上有两个component,一个是Spout,另一个是Bolt。stream由Spout发出,在不同的Bolt之间进行处理,在其中传递的是storm的基本处理单位:Tuple。由Spout发出一个一个Tuple,然后Bolt接收Tuple进行各种各样的处理。这一整个过程构成一个DAG。在storm里面叫做Topology。当使用远程模式向集群提交一个Topology之后,如果不kill掉的话,将会一直运行到。。。我也不知道尽头。。貌似没有尽头。
    好了,来看一个简单的Topology。将使用这个Topology来实现那几种Grouping策略。


    image

    上图中spout的处理逻辑是将一句话发出给下一个Bolt,然后下一个Bolt做句子的单词分割,下一个做计数,最后的Bolt做汇总显示。这里可以有多个Bolt或者Spout进行并行处理。这是关于并行度的设置。

    所谓的grouping策略就是在Spout与Bolt、Bolt与Bolt之间传递Tuple的方式。总共有七种方式:

      1)shuffleGrouping(随机分组)
    
      2)fieldsGrouping(按照字段分组,在这里即是同一个单词只能发送给一个Bolt)
    
      3)allGrouping(广播发送,即每一个Tuple,每一个Bolt都会收到)
    
      4)globalGrouping(全局分组,将Tuple分配到task id值最低的task里面)
    
      5)noneGrouping(随机分派)
    
      6)directGrouping(直接分组,指定Tuple与Bolt的对应发送关系)
    
      7)Local or shuffle Grouping
    
      8)customGrouping (自定义的Grouping)
    

    相关文章

      网友评论

          本文标题:storm的八种Grouping策略

          本文链接:https://www.haomeiwen.com/subject/ordrcftx.html