FLume是一个高可用的高可靠的分布式的海量日志采集,聚合和传输的系统.
flume最主要的作用就是实时读取服务器本地磁盘的数据,将数据写入到hdfs中.
flume的主要架构
Source 数据输入端的常见类型有 spooling directory exec ,syslog avro等
put事物流程
doput 将批数据先写入到缓冲区putlist中,
doCommit 检查channel内存队列是否足够合并
doRollback channel内存队列空间不足,回滚数据
Channel自带两种Channel Memeory Channel 和File Channel
Memory Channel 是基于内存缓存,在不需要关心数据丢失的情景下使用.
File Channel 是flume持久化Channel系统宕机不会丢失数据
Take 事务
doTake:先将数据取到临时缓冲区takeList•
doCommit:如果数据全部发送成功,则清除临时缓冲区takeList•
doRollback:数据发送过程中如果出现异常,rollback将临时缓冲区takeList中的数据归还给channel内存队列
Sink 组建常见的目的地包括HDFS,kafka