Flume 事务过程详解
主要事务处理过程:
1、Web Server :读数据,通过端口,本地文件读入数据。读取文件时有单个上传、批量上传以及断点续传模式。
2、Source :读数据,并将数据封装成事件。Source 将事务主动推入 Channel 中,而 Sink 是拉取事务。
3、Put 事务流程
- doPut : 将批数据先写入临时缓冲区 putList
- doCommit : 检查 channel 内存队列是否足够合并
- doRollBack : channel 内存队列空间不足,回滚数据
4、Take 事务
- doTake : 将数据取到临时缓冲区 takeList,并将数据发送到 HDFS
- doCommit : 如果数据全部发送成功,则清除临时缓冲区 takeList
- doRollback : 数据发送过程中如果出现异常,rollback 将临时缓冲区 takeList 中的数据归还给 channel 内存队列。