【摘要】:Flume 中的拦截器是插件式的组件,作用在Source 与Channel 之间,可以实现Source 接收的事件在写入Channel 之前,进行转换或者删除。Flume 拦截器具体流程如图8.7 所示。图8.7Flume 拦截器具体流程图Flume 提供并支持的Flume 拦截器有很多,以下选取其中常用的几种进行介绍。时间戳拦截器时间戳拦截器是Flume 中一个经常使用的拦截器,该拦截器的作用是将流程执行的时间插入Flume 的事件报头中。在实际开发中,官方提供的这些拦截器也许不能满足开发需求,这时需要自定义Flume 拦截器。
Flume 在传输数据过程中可以对数据进行简单的过滤和清洗,也可以去掉不关心的数据;同时,如果需要对复杂的数据过滤,则需要用户根据自己的数据特殊性开发过滤插件。
Flume 中的拦截器是插件式的组件,作用在Source 与Channel 之间,可以实现Source 接收的事件在写入Channel 之前,进行转换或者删除。Flume 官方提供了一些常用的拦截器,也可以自定义拦截器对日志进行处理。Flume 拦截器具体流程如图8.7 所示。
图8.7 Flume 拦截器具体流程图
Flume 提供并支持的Flume 拦截器有很多,以下选取其中常用的几种进行介绍。
(1)时间戳拦截器(www.xing528.com)
时间戳拦截器是Flume 中一个经常使用的拦截器,该拦截器的作用是将流程执行的时间插入Flume 的事件报头中。此拦截器插入带有时间戳键的键名,其值为对应的时间戳。当配置中已经存在时间戳时,此拦截器可以保留现有的时间戳。
(2)静态拦截器
静态拦截器允许用户将具有静态值的静态头附加到所有的事件中。当前实现不支持一次指定多个头,但用户可以定义多个静态拦截器来为每一个拦截器都追加一个头。
(3)查询和替换拦截器
查询和替换拦截器基于Java 正则表达式提供了简单的用于字符串的搜索和替换功能,同时还具有进行回溯或者群组捕捉的功能。此拦截器的使用与Java Matcher. replaceAll()方法具有相同的规则。
在实际开发中,官方提供的这些拦截器也许不能满足开发需求,这时需要自定义Flume 拦截器。在自定义拦截器中定义相关属性和拦截方法,同时在采集方案中引入配置即可。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。