Flume Agent内部原理及其三大组件
1.Agent内部原理
工作流程:
(1)数据通过Source采集进入Flume,Flume以通过Agent以事件的形式将数据从源头到目的地。
(2)进入事件处理,Event为传输单元,由可选的header和载有数据的body(byte array)构成。
(3)在agent可对数据进行粗步拦截,排除某些不采集的文件,文件类型。
(4)Channel选择器,两种Channel Selector,一种是Replicating channel另一种是Multiplexing Channel,前者将source的event发往左右的channel,适用于数据多副本存储,后者将event发往指定的channel,适用于数据定向发送。
(5)channel的event列表
(6)将event发往配置信息指定的channel。
注:一个channel可对应多个sink,但是一个sink只能对应一个channel。
1.Source
常用的源:包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy,以及自定义。
2.Channel
两种channel:Memory Channel和File Channel。MC是在内存中的队列,速度快,但是宕机数据丢失。FC是将事件落盘到磁盘,速度慢,但是数据安全。
3.Sink
目的地包括hdfs、logger、avro、thrift、ipc、file、null、HBase、solr、自定义。
4.注:数据可能存在重复(事件队列回滚),但一般一会丢失(ganglia监控)。