两个flume的拦截器(interceptor)

flume支持拦截器(interceptors)机制,是在source这个层面上工作,这里有两个拦截器

1,支持将日志体(event body)里面的字符串替换成另一个字符串。配置文件http://git.oschina.net/atuchow/flume-additional/blob/master/src/test/resources/local2hdfs.conf

中的a1.sources.r1.interceptors.i3 部分。

只支持两个功能,第一次替换和全部替换。替换的字符串必须用unicode编办的方式编写。代码:http://git.oschina.net/atuchow/flume-additional/blob/master/src/main/java/com/fone/flumeExt/interceptor/RegexReplaceAllInterceptor.java

2,将 event header中的时间戳和日志名称作转换。配置文件local2hdfs.conf中的a1.sources.r1.interceptors.i4 部分。

时间戳转换成以 年 月 日 时 分 秒 (fy fm fd fh fmin fs 为key)的方式,直接用 enevnt.getHeaders().get(“fy”)就可以取得年

另外,还提供转换 log name的功能,通过继承AvroHeaderInterceptor就可以扩展提供log name的转换,给公司写的组件提供通过配置文件的方式转换,这里只有一个default的功能,不做任何转换直接输出。代码:http://git.oschina.net/atuchow/flume-additional/blob/master/src/main/java/com/fone/flumeExt/interceptor/DefaultAvroHeaderInterceptor.java

你可能感兴趣的:(log,Flume,拦截器,header,过滤器,name,event,字符转换)