Strom学习(一)
来源:互联网 发布:小米笔记本安装软件 编辑:程序博客网 时间:2024/06/05 19:04
整理自
http://www.csdn.net/article/2014-08-04/2821018/2
Storm将计算逻辑成为Topology,其中Spout是Topology的数据源,这个数据源可能是文件系统的某个日志,也可能是MessageQueue的某个消息队列,也有可能是数据库的某个表等等;Bolt负责数据的护理。Bolt有可能由另外两个Bolt的join而来。
而Storm最核心的抽象Streaming就是连接Spout,Bolt以及Bolt与Bolt之间的数据流。而数据流的组成单位就是Tuple(元组),这个Tuple可能由多个Fields构成,每个Field的含义都在Bolt的定义的时候制定。也就是说,对于一个Bolt来说,Tuple的格式是定义好的。
Storm的消息传递
对于Storm来说,他的消息分发机制是在定义Topology的时候就显式定义好的。也就是说,应用程序的开发者需要清楚的定义各个Bolts之间的关系,下游的Bolt是以什么样的方式获取上游的Bolt发出的Tuple。Storm有六种消息分发模式:
- Shuffle Grouping: 随机分组,Storm会尽量把数据平均分发到下游Bolt中。
- Fields Grouping:按字段分组, 比如按userid来分组, 具有同样userid的tuple会被分到相同的Bolt。这个对于类似于WordCount这种应用非常有帮助。
- All Grouping: 广播, 对于每一个Tuple, 所有的Bolts都会收到。这种分发模式要慎用,会造成资源的极大浪费。
- Global Grouping: 全局分组, 这个Tuple被分配到storm中的一个bolt的其中一个task。这个对于实现事务性的Topology非常有用。
- Non Grouping: 不分组, 这个分组的意思是说stream不关心到底谁会收到它的tuple。目前这种分组和Shuffle grouping是一样的效果, 有一点不同的是storm会把这个bolt放到这个bolt的订阅者同一个线程里面去执行。
- Direct Grouping: 直接分组, 这是一种比较特别的分组方法,用这种分组意味着消息的发送者指定由消息接收者的哪个task处理这个消息。
0 0
- Strom学习(一)
- <一>Strom实时计算学习笔记
- Strom入门(一)
- strom 学习笔记
- Strom学习随笔
- Strom学习00--介绍
- Strom学习00---ISpout
- Strom学习00---Grouping
- strom入门学习
- strom
- Strom学习01--例子ExclamationTopology
- Strom学习01--例子WordCountTopology
- Strom学习00---ack机制
- Strom Concepts
- Strom Tutorial
- strom grouping
- Strom命令
- Strom配置
- ubuntu之再体验【美化】-- 更改桌面图标大小
- Hibernate_5_老师与学生实例_多对多关联关系
- RTOS的一些重要概念以及代码维护中的相应问题举例
- 通过while实现程序的无限循环
- Unix:安装一个不存在的命令
- Strom学习(一)
- TCP/IP、Http、Socket的区别
- hdu 1231 最大连续子序列 【最大连续子串】
- 编程之美 金刚坐飞机问题
- SOAP信息交换模型
- 《Java性能优化权威指南》
- NYOJ 42 一笔画问题
- 南桥下GPIO驱动开发。
- 快速搭建Android开发环境ADT-Bundle