Flume 定义
Flume是一个高可用、高可靠的,分布式的海量日志采集、聚合和传输的系统。基于流式框架,灵活简单。
Agent
Agent 是一个JVM 进程,以事件的形式将数据从源头送至目的地,是Flume传输的基本单位
Source
负责接收数据到flume agent的组件
Channel
Channel 是位于Source和Sink 之间的缓存区。运行Source和Sink运行在不同的速率上; Channel是线程安全的,同时处理多个Source的写入操作和几个Sink的读取操作
Flume 自带两种Channel:Memory Channel和Source Channel
Sink
不断地轮询Channel中的数据并批量的移除他们,并将这些事件批量写入到存储或索引系统,或者发送到另一个Flume Agent
Sink是完全事务性的.Channel 批量删除数据之前,每个Sink用Channel启动一个事务,批量事件一旦写入存储系统或者送入下一个Agent,Sink就利用Channel提交事务,事务一旦被提交,该Channel从自己的内部缓冲区删除事件
Event
传输单元,以事件的形式将数据从源头送往目的地
重点一.Flume 组成架构
Flume三个主要组件:Source、Channel、Sink
一个flume被称为一个Agent
面试注意的点:
注意flume处理的都是Batch data
注意两种Channel:Memory Channel和File