Flume事务
在整个Flume采集数据的过程中,内部发生了很多的事务,在Source阶段有一个Put事务,在sink阶段有一个Take阶段,他们的任务分别是推送时间和拉取事件。
Put事务流程:
- doPut:将批数据先写入临时缓冲区putList
- doCommit:检查channel内存队列是否足够合并
- doRollback:channel内存对垒事务不足进行回滚数据
Take事务:
- doTake:将数据拉取到临时缓冲区takeList,并将数据发送到HDFS
- doCommit:如果数据全部发送成功,则清除临时缓冲区takeList
清除临时缓冲区takeList - doRollback:数据发送过程中如果出现异常,rollback将临时缓冲区takeList中的数据归还给channel内存队列