文章还没写好,哈哈哈。先别看喔--------------------
一、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