1. 程式人生 > >flume中的攔截器

flume中的攔截器

flume-ng event ip地址 tor 主機 efi 多個 oca 目前

Flume中的攔截器(interceptor),用戶Source讀取events發送到Sink的時候,在events header中加入一些有用的信息,或者對events的內容進行過濾,完成初步的數據清洗。這在實際業務場景中非常有用,Flume-ng 1.6中目前提供了以下攔截器:

Timestamp Interceptor;
Host Interceptor;
Static Interceptor;
UUID Interceptor;
Morphline Interceptor;
Search and Replace Interceptor;
Regex Filtering Interceptor;
Regex Extractor Interceptor;

本文對常用的幾種攔截器進行學習和介紹,並附上使用示例。

對一個Source可以使用多個攔截器。

Timestamp Interceptor

時間戳攔截器,將當前時間戳(毫秒)加入到events header中,key名字為:timestamp,值為當前時間戳。用的不是很多。比如在使用HDFS Sink時候,根據events的時間戳生成結果文件,hdfs.path = hdfs://cdh5/tmp/dap/%Y%m%d

hdfs.filePrefix = log_%Y%m%d_%H

會根據時間戳將數據寫入相應的文件中。

但可以用其他方式代替(設置useLocalTimeStamp = true)。

Host Interceptor

主機名攔截器。將運行Flume agent的主機名或者IP地址加入到events header中,key名字為:host(也可自定義)。

Static Interceptor

靜態攔截器,用於在events header中加入一組靜態的key和value。

UUID Interceptor

UUID攔截器,用於在每個events header中生成一個UUID字符串,例如:b5755073-77a9-43c1-8fad-b7a586fc1b97。生成的UUID可以在sink中讀取並使用。

flume中的攔截器