Flume Agent内部原理及其三大组件

1.Agent内部原理

Flume 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监控)。