flume中的组件及作用

**

flume中的组件及作用

**
1、client:client是客户端(运行agent的地方)
2、source:数据源,负责接收数据
3、channel:管道,负责接收source中的数据,将数据推送到sink端
4、sink:负责拉取channel端的数据,并将其持久化到文件系统
5、interceptor:拦截器,flume运行使用拦截器和拦截链,它作用于source阶段、sink阶段,拦截的内容会写在header里,其他内容写在body中。
6、selector:选择器,作用于source阶段,决定数据的发送方式(如以kafka、Hbase形式、网络信息等的形式)
7、agent:flume的客户端,一个agent运行在一个JVM虚拟机里,它是flume的最小运行单元
8、event:flume的事件,相当于一条数据,flume内部封装的数据结构,是数据传输的最小单元。
注意:event内部封装的数据结构有:
header()底层用的hashMap,以key value的形式存储
body()底层用的byte数组

flume采集系统的结构图:
1、简单结构
单个agent采集数据

flume中的组件及作用

2、复杂结构
多个agent之间的串联
flume中的组件及作用