storm的流分组策略
关于storm的基础,参照我这篇文章:流式计算storm
关于并发和并行,参照我这篇文章:并发和并行
关于storm的并行度解释,参照我这篇文章:storm的并行度解释
关于storm的流分组策略,参照我这篇文章:storm的流分组策略
关于storm的消息可靠机制,参照我这篇文章:storm的消息可靠机制
storm中有多个bolt和多个spout,他们之间会有多种连接方式,他们之间的tuple也是多种传递方式,正是有了这些灵活的分组策略,才使得storm可以分层处理,每层bolt都只做自己的事情,做完就通过分组策略传给下一层bolt
storm里面有7种 stream grouping
github上有源码:https://github.com/apache/storm
最好是下载到本地,对着下面提供的看.
这7中storm对应的接口是:
org.apache.storm.topology.InputDeclarer<T extends InputDeclarer>
1.shuffle grouping
org.apache.storm.grouping.ShuffleGrouping
随机分组,保证每个bolt任务被均匀的分配tuple
2.fields grouping
org.apache.storm.trident.partition.IndexHashGrouping
按字段分组,相同字段的tuple总是被分到相同的bolt中的一个task上,一般用在计数等
3.all grouping
广播发送tuple,tuple会被发给所有bolt,常用来发送信号
4.global grouping
org.apache.storm.trident.partition.GlobalGrouping
全局分组,所有的tuple被发到一个bolt的一个task上,一般用来汇总
5.none grouping
org.apache.storm.testing.NGrouping
不分组,效果和随机分组一样,
有点不一样的是storm会使用none grouping的这一个bolt放到这个bolt的订阅者同一个线程里面去执行 ( 这个暂时没明白有什么好处之类的 )
6.direct grouping
org.apache.storm.trident.partition.IdentityGrouping
直接分组消息发送者指定消息接收者的哪个task处理这个消息,只有被表名direct stream的消息流可以处理这个方法
消息处理者可以通过topologyContext来获取处理它消息的task id
7.local or shuffle grouping
org.apache.storm.grouping.LoadAwareShuffleGrouping
自定义分组,需实现customStreamGrouping接口
storm的流分组策略相关推荐
- 大数据技术之_17_Storm学习_Storm 概述+Storm 基础知识+Storm 集群搭建+Storm 常用 API+Storm 分组策略和并发度
大数据技术之_17_Storm学习 一 Storm 概述 1.1 离线计算是什么? 1.2 流式计算是什么? 1.3 Storm 是什么? 1.4 Storm 与 Hadoop 的区别 1.5 Sto ...
- Storm(流计算)技术原理
流计算概述 什么是流数据: 数据有静态数据和流数据. 静态数据: 很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量历史数据就是静态数据.技术人员可以利用数据挖掘和OLAP(On-Line ...
- java8流分组 性能_Java性能教程– Java 8流有多快?
java8流分组 性能 在此JAX Magazine的预览预览中,JAX伦敦发言人Angelika Langer为使用Java流的任何人回答了最重要的问题:它们真的更快吗? Java 8是JDK收集框 ...
- Stream流-分组操作
Stream流-分组操作 文章目录 Stream流-分组操作 方法1-- groupingBy(Function) 方法2-- groupingBy(Function,Collector) 方法3-- ...
- 【Storm】【二】Storm和流处理简介
Storm和流处理简介 一.Storm 1.1 简介 1.2 Storm 与 Hadoop对比 1.3 Storm 与 Spark Streami ...
- 猜想 QQ好友分组 (微信好友)多层次分组策略 QQ好友过多
猜想 QQ好友过多 QQ好友分组 (微信好友)多层次分组策略 问题: 在QQ好友比较多的好友分组,一大堆不同的好友简单的堆叠在一起,翻看一次一个分组里数百个的好友要花费较长的时间,而且一大排头像文字 ...
- Storm部分:Storm Grouping -- 数据流分组(各种数据分发策略的练习)【Java版纯代码】
1.源数据 www.taobao.com XXYH6YCGFJYERTT834R52FDXV9U34 2017-02-21 12:40:49 www.taobao.com XXYH6YCGFJYERT ...
- Storm之——流组件简单串行编程实践
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/78447229 Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象, ...
- Apache Storm 实时流处理系统ACK机制以及源码分析
1.ACK机制简介 Storm的可靠性是指Storm会告知用户每一个消息单元是否在一个指定的时间(timeout)内被完全处理.完全处理的意思是该MessageId绑定的源Tuple以及由该源Tupl ...
最新文章
- 我焦躁,并不只是心里承受,还是因为我上面担着。
- go语言中append函数的使用
- ubuntu下python thrift安装
- 使用带有OAuth2的Web应用程序和使用JWT来调用API – WSO2 API Manager
- java获取C盘下的隐藏目录文件名称
- Array flat
- 【电商系统】—项目梳理(一)
- python简单代码-用Python代码实现5种最好的、简单的数据可视化!
- 笔试编程题常用的一些技巧方法
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用6
- ios 卡片切换效果
- sql生成(查询数据的存储过程)代码的存储过程
- Java练习题2-基础(含解析)
- 【ES实战】ES上的安全性运行方式
- 使用Python+Appuim 清理微信
- e4e反演框架:Designing an Encoder for StyleGAN Image Manipulation
- 腾讯抖音搬运视频如何消重
- 熟读100句英文,记7000单词
- 使用树莓派制作一套“NAS+私有云盘+下载机”
- 猎聘网的第二次面试之路