flume系列之:拦截器和自定义flume拦截器
Flume中的拦截器(interceptor),用户Source读取events发送到Sink的时候,在Event header中加入一些有用的信息,或者对Event的内容进行过滤,完成初步的数据清洗。这在实际业务场景中非常有用,例如通过拦截器可以把数据库名称、表名、Event生成的时间放入Event的header中,用于生成hdfs的文件存放目录。
如下所示是文件sink到hdfs的目录:其中optics_prod是数据库名称,sale_order是表名,这些都是通过flume拦截器获取到的。
/raw/optics_prod/sale_order/1h/20210805/04/bigdata1-flumedata.1628136015077.gz
一、flume的Event数据结构
一行文本内容被反序列化成一个Event。flume中的Event最大定义为2048字节,超过2048字节则会切割放到下一个Event中,默认编码是UTF-8。
查看下Event定义的数据结构
public interface Event