美文网首页
Stream Groupings

Stream Groupings

作者: louisliaoxh | 来源:发表于2016-05-18 16:54 被阅读225次

Stream Grouping定义了一个流在Bolt任务间该如何被切分。 这里有storm提供的9个Stream Grouping类型
1、shuffleGrouping(随机分组)

随机分发tuple到Bolt的任务,保证每个任务获得相等数量的tuple。
2、fieldsGrouping(字段分组)

根据指定字段分割数据流,并分组。例如,根据"user-id"字段,相同"user-id"的元组总是分发到同一个任务,不同“ user-id”的元组可能分发到不同的任务。

原理是 对某个或几个字段做hash,然后用hash结果求模得出目标taskId。
3、globalGrouping(全局分组)

全部流都分配到bolt的同一个任务。明确地说,是分配给ID最小的那个task。
4、allGrouping(全部分组)

tuple被复制到bolt的所有任务。这种类型需要谨慎使用。
5、directGrouping(直接分组)

这是一个特别的分组类型。元组生产者决定tuple由哪个元组处理者(Blot)任务接收。
6、noneGrouping(无分组)

目前,无分组等效于随机分组。但最终,Storm将把无分组的Bolts放到Bolts或Spouts订阅它们的同一线程去执行(如果可能)。
7、localOrShuffleGrouping(本地或随机分组)

如果目标bolt有一个或多个任务在同一个的worker进程中,tuples会随机发送给这些任务。 否则,就和普通的随机分组一样。
8、PartialKeyGrouping(部分关键字分组) after v1.0.0

这种方式与字段分组很相似,根据定义的字段来对数据流进行分组,不同的是,这种方式会考虑下游 Bolt 数据处理的均衡性问题,在输入数据源关键字不平衡时会有更好的性能。
9、自定义分组

可以实现customGrouping接口来选择出目标task。

相关文章

  • Stream Groupings

    Stream Grouping定义了一个流在Bolt任务间该如何被切分。 这里有storm提供的9个Stream ...

  • storm细节

    Stream groupings Shuffle grouping: Tuples 随机分配到bolt中,可以保证...

  • Storm入门中关于Stream Groupings的问题

    Stream Groupings定义了一个流在bolt中该如何被切分,以下为六种常用的类型: 1. Shuffle...

  • storm grouping 分组介绍

    Stream groupings 流分组 定义一个拓扑部分是指定了每个bolt门闩的流都应该作为输入被接收。一个流...

  • JAVA8新特性: Stream-集合流操作

    Stream类全路径为:java.util.stream.Stream Stream简介 Stream原理 Str...

  • Stream流

    一、创建流 Arrays.stream Stream.of Collection.stream Stream.it...

  • JDK8新特性之Stream流

    是什么是Stream流 java.util.stream.Stream Stream流和传统的IO流,它们都叫流,...

  • 2018-04-03

    Stream初探 一:stream.Readable & stream.Writable 1:模拟实现 strea...

  • 异步 Stream

    flutter 异步方式 Future Async/await Stream Stream stream 是一个事...

  • Java8新特性

    java.util.stream.Stream 注意事项 使用java.util.stream.Collector...

网友评论

      本文标题:Stream Groupings

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