storm分组策略

1、Stream Grouping概述
随机分组:元组以一定方式随机分布在螺栓任务上,从而确保每个螺栓都具有相等数量的元组。
字段分组:流按分组中指定的字段进行分区。例如,如果流按“ user-id”字段分组,则具有相同“ user-id”的元组将始终执行相同的任务,但是具有不同“ user-id”的元组可能会执行不同的任务。
部分密钥分组:流按分组中指定的字段进行分区(如“字段”分组),但在两个下游螺栓之间进行负载平衡,当输入数据倾斜时,可以更好地利用资源。本文对它的工作原理和优点提供了很好的解释。
全部分组:流在螺栓的所有任务之间复制。请谨慎使用此分组。
全局分组:整个流进入螺栓任务中的单个任务。具体来说,它将转到ID最低的任务。
无分组:此分组指定您不关心流的分组方式。当前,没有分组等效于随机分组。不过,最终,Storm会向下推没有分组的螺栓,以与其订阅的螺栓或喷嘴在同一线程中执行(如果可能)。
直接分组:这是一种特殊的分组。以这种方式分组的流意味着元组的生产者决定消费者的哪个任务将接收此元组。直接分组只能在已经声明为直接流的流上声明。发出到直接流的元组必须使用emitDirect方法之一发出。螺栓可以使用提供的TopologyContext或通过emit在OutputCollector中跟踪方法的输出(返回元组发送到的任务ID)来获取其使用者的任务ID。
本地或随机分组:如果目标螺栓在同一工作进程中具有一个或多个任务,则元组将被随机转换为那些正在进行的任务。否则,这就像常规的随机分组。
2、Shuffle Grouping开发详解
在这里插入图片描述
在这里插入图片描述
我们可以看到差不多每个线程分配到的任务基本都是差不多的

3、FieldGrouping开发详解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、AllGrouping开发详解
在这里插入图片描述

5、Stream Grouping其他
http://storm.apache.org/releases/2.2.0/javadocs/org/apache/storm/grouping/CustomStreamGrouping.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值