兩個flume的攔截器(interceptor)

flume支持攔截器(interceptors)機制,是在source這個層面上工做,這裏有兩個攔截器java

1,支持將日誌體(event body)裏面的字符串替換成另外一個字符串。配置文件http://git.oschina.net/atuchow/flume-additional/blob/master/src/test/resources/local2hdfs.confgit

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

只支持兩個功能,第一次替換和所有替換。替換的字符串必須用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 部分。code

時間戳轉換成以 年 月 日 時 分 秒 (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.javaunicode

相關文章
相關標籤/搜索