一、Flume高级组件
1、Source Interceptors
Source可以指定一个或者多个拦截器按先后顺序依次对采集到的数据进行处理。
2、Channel Selectors
Source发往多个Channel的策略设置,如果source后面接了多个channel,到底是给所有的channel都发,还是根据规则发送到不同channel,这些是由Channel Selectors来控制的
3、Sink Processors
Sink 发送数据的策略设置,一个channel后面可以接多个sink,channel中的数据是被哪个sink获取,这个是由Sink Processors控制的
补充一个小知识点:Event
在具体分析这些高级组件之前,我们先插播一个小知识点,这个知识点在高级组件中会用到。
Event是Flume传输数据的基本单位,也是事务的基本单位,在文本文件中,通常一行记录就是一个Event
Event中包含header和body;
body是采集到的那一行记录的原始内容
header类型为Map<String, String>,里面可以存储一些属性信息,方便后面使用
我们可以在Source中给每一条数据的header中增加key-value,在Channel和Sink中使用header中的值了。