1.引入
0.7版本:多条记录封装成批量,引入事务控制。
0.9版本:丢弃事务API,开始基于Storm之上的框架。
2.介绍
3.批次划分与事务实现
二:事务管理
4.事务处理机制
不透明事务:增加了容错机制。
5.Spout的API
Spout保留
Bolt没有,将原有的Storm写在Bolt中的逻辑,抽象封装成一系列的API。
操作:
Filter,Function,Aggregate
功能:
从数据源采集数据
对数据进行简单的处理
封装成tuple,将多个tuple组装成一个个批次,并且给每一个批次一个事务ID
重试机制,事务控制级别
6.完全事务Spout
7.不透明事务Spout
8.非事务Spout
9.自定义实现Spout
三:状态管理
1. 存储状态
内存
数据库存储
2.不透明事务状态管理
存储三个值:
之前的批次,结果值,当前批次
3.完全事务状态管理
存储两个值:
结果值,当前批次
4.非事务状态管理
只存一个值:
结果值
5.Spount与State组合使用关系
Spout决定失败的Tuple是如何重试,三种事务级别的重试
State决定如何批次更新结果
四:编程开发
1.操作
Mareduce中的分区:Reduce
Storm分区:Task执行线程
局部聚合:只在一个批次内进行聚合操作
全局聚合:从topology启动开始,一直累计操作,一个批次一个批次进行累计
全局聚合需要状态管理,以前的加上当前的状态。