开发者学堂课程【数据采集系统 Flume 快速入门:Flume 组成架构】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/99/detail/1625
Flume 组成架构
Flume 组成架构如图:
Source 数据输入端的常见类型有:
spooling directory、exec 、 syslog、
avro、netcat 等。
Channel 是位于 Source 和 Sink 之间的缓冲区。
Flume 自带两种 Channel : Memory Channel 和 File Channel。
Memory Channel 是基于内存缓存,在不需要关心数据丢失的情景下适用。
File Channel 是 Flume 的持久化 Channel。系统宕机不会丢失数据。
Sink 组件常见的目的地包括:
HDFS 、Kafka 、 logger 、avro、File、自定义。
Put 事务流程:
l doPut :将批数据先写入临时缓冲区 putList
l doCommit:检查 channel 内存队列是否足够合并。
l doRollback: channel 内存队列空间不足,回滚数据
Take 事务:
l doTake:先将数据取到临时缓冲区 takeList
l doCommit:如果数据全部发送成功,则清除临时缓冲区 takeList
l doRollback:数据发送过程中如果出现异常,rollback 将临时缓冲区 takeList 中的数据归还给 channel 内存队列。