文章還沒寫好,哈哈哈。先別看喔--------------------
一、flume自定義攔截器步驟如下
- 1)繼承接口:org.apache.flume.interceptor.Interceptor
- 2)實現接口中的4個抽象方法:
初始化 initialize()、單個事件攔截 intercept(Event event)、批量事件攔截 intercept(List<Event> events)、關閉io流 close()
- 3)創建一個靜態內部類Builder,並實現接口
implements Interceptor.Builder
。【我們自定義的攔截器這個類,沒有辦法直接new,而是在flume的配置文件中進行配置,通過配置文件調用靜態內部類,來間接地調用自定義的攔截器對象。
】
攔截器是攔截一條一條的事件、啓動時會初始化,會存在數據流,initialize開啓數據流、close關閉數據流,event包括header+body
二、實現抽象方法 intercept(Event event)
public Event intercept(Event event) {
return null;
}
intercept(Event event)
是單個事件攔截,方法中的參數類型爲Event ,該數據類型是一個接口,可以看這個接口裏面有get和set方法,一般在流程處理時就使用getBody()、getHeaders()
,getBody返回的是byte列表,getHeaders()返回的是map