Flume流式处理
Flume中有两类事务
- Source -> Channel 是put事务
内部事务实现方法
-
Source对接外部的一个数据源
-
通过Source采集过来 封装到event中进行分发 每次的大小不能太小
-
在其中有一个可以调节数据发送大小“batchsize”
-
当从Source中发送数据是突然断掉
-
先通过调用doput的方法吧数据方法内存中一个叫putlist中
-
提交的时候是由putlist进行提交提交到docommit方法中
-
通过docommit向Channel中发送
-
如果调用docommit方法向传输channel不了的话
-
docommit中的数据无法提交 就要进行回滚到putlist中
-
等过一段时间后再进行调用docommit进行提交
- Channel -> Sink 是take事务
- 首先调用一个doTake方法一次性发送一批数据上去
- 将数据先存到一个takelist中再调用docommit方法向Sink进行提交
- 当调用docommit方法向HDFS中发数据 如果HDFS是安全模式情况的话数据无法进行传输
- 他就会将数据回滚到channle中



