flume1.8 Interceptors拦截器(五)
1. Flume Interceptors
Flume有能力修改/删除流程中的events。这是在拦截器(interceptor)的帮助下完成的。拦截器(Interceptors)是实现org.apache.flume.interceptor.Interceptor接口的类。一个interceptor可以根据interceptor的开发者选择的任何标准来修改,甚至放弃events。这个可以通过在配置中指定一系列interceptor生成类名来实现。Interceptors在source配置中被指定作为空白分隔符列表。如果interceptor需要放弃events,它不会在它需要返回的列表中返回该events。如果interceptor放弃全部events,然后它返回一个空列表。简单示例:

注意:该interceptor构建是被传递给type配置属性。interceptors本身是可配置的,并且可以像传递给其他可配置组件一样传递配置值。在上述示例中,events先传递到HostInterceptor,并且events被HostInterceptor返回,然后独自传递到TimestampInterceptor。你可以指定完全限定的类名称或者别名 timestamp。如果你有多个收集器写到同一个HDFS路径,然后你也可以使用HostInterceptor。
1.1 Timestamp Interceptor
该interceptor向event headers插入秒级时间,当event被处理时。该interceptor插入一个带有关键timestamp(或者由header属性指定)的header,其值是相关的timestamp。该interceptors可以保留一个已存在timestamp,如果它已经在配置中预先配置。

agent a1示例:

1.2 Host Interceptor
该interceptor插入运行agent的host的hostname或者IP地址。它根据配置插入带有密钥host或配置密钥(其值为host的hostname或IP地址)的header。

agent a1的示例:

1.3 Static Interceptor
静态interceptor运行用户给所有events添加一个带有静态值的静态header。

agent a1的示例:

1.4 Remove Header Interceptor
该interceptor通过移除一个或多个headers来操作Flume event headers。它可以移除一个静态定义的header,基于规则表达式的headers或者在一个列表中的headers。如果这些没有定义,或者如果没有header匹配到标准,Flume events将不会修改。
注意:如果只有一个header需要移除,通过名字指定它可以提供比其他两种方法更好的性能。

1.5 UUID Interceptor
该interceptor在被拦截的所有事件上设置一个通用唯一的标识符。

1.6 Morphline Interceptor
该interceptor通过morphline配置文件过滤events,该配置文件定义了一条从一个命令到另一个命令管道记录的转换命令链。例如,morphline可以忽略某些events,或者通过基于正则表达式的模式匹配来改变或者插入某些event headers,或者它可以通过Apache Tika自动检测和设置一个MIME类型在被拦截的events上。

简单示例flume .conf文件:

1.7 Search and Replace Interceptor
该interceptor提供了基于Java正则表达式的简单的基于字符串的search-and-replace功能。回溯/组捕获也是可用的。这个interceptor使用与Java Matcher.replaceAll()方法相同的规则。

配置示例:

另一个示例:

1.8 Regex Flitering Interceptor
该拦截器通过将event正文解释为文本并将文本与配置的正则表达式进行匹配来选择性地过滤events。

1.9 Regex Extractor Interceptor
此interceptor使用指定的正则表达式提取正则表达式匹配组,并将匹配组附加为event的headers。

该serializers用于将匹配映射到header名称和格式化的header值;默认的,你只需要指定header名称和默认org.apache.flume.interceptor.RegexExtractorInterceptorPassThroughSerializer将会被使用。这个serializer只是将匹配映射到指定的header名称,并传递通过由正则表达式提取的值。
Example 1:
如果Flume event正文包含1:2:3:4foobar5,可以使用下面配置:

提取的event将会包含相同正文,但是以下headers将会附加one=>1,two=>2,three=>3.
Example 2:
如果Flume event正文包含2012-10-18 18:47:57,614 some log line ,可以使用下面的配置:

提取的event将会包含相同的正文,但是以下的headers将会附加timestamp=>1350611220000.
参考资料:
https://flume.apache.org/FlumeUserGuide.html
flume1.8 Interceptors拦截器(五)的更多相关文章
- (vue.js)axios interceptors 拦截器中添加headers 属性
(vue.js)axios interceptors 拦截器中添加headers 属性:http://www.codes51.com/itwd/4282111.html 问题: (vue.js)axi ...
- springMVC之mvc:interceptors拦截器的用法
1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors> <!-- 日志拦截器 --> <mvc:interceptor> ...
- angular之interceptors拦截器
<!DOCTYPE html> <html ng-app="nickApp"> <head> <meta charset="UT ...
- springMVC <mvc:interceptors>拦截器的使用
首先在springMVC.xml配置如下代码 <!-- 拦截器 --> <mvc:interceptors> <bean class="com.base.Acc ...
- angular http interceptors 拦截器使用分享
拦截器 在开始创建拦截器之前,一定要了解 $q和延期承诺api 出于全局错误处理,身份验证或请求的任何同步或异步预处理或响应的后处理目的,希望能够在将请求移交给服务器之前拦截请求,并在将请求移交给服务 ...
- Interceptors - 拦截器
1.概述 Flume有能力在运行阶段修改/删除Event,这是通过拦截器(Interceptors)来实现的. 拦截器需要实现org.apache.flume.interceptor.Intercep ...
- vue interceptors(拦截器)
拦截器 顾名思义: 就是半路个您劫持, 拦截器 其实在项目和自己写demo中,总会遇到请求方面需要在请求头里面做判断或者添加一些东西, 这时候 vue 中应用中axios的 interceptors ...
- CXF实战之自己定义拦截器(五)
CXF已经内置了一些拦截器,这些拦截器大部分默认加入到拦截器链中,有些拦截器也能够手动加入,如手动加入CXF提供的日志拦截器.也能够自己定义拦截器.CXF中实现自己定义拦截器非常easy.仅仅要继承A ...
- kafka producer interceptor拦截器(五)
producer在发送数据时,会经过拦截器和序列化,最后到达相应的分区.在经过拦截器时,我们可以对发送的数据做进步的处理. 要正确的使用拦截器需要以下步骤: 1.实现拦截器ProducerInterc ...
随机推荐
- bzoj 4012: [HNOI2015]开店
Description 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到 人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱.这样的 想法当然非常好啦,但是她们也发现 ...
- nova创建虚拟机源码分析系列之一 restful api
开始学习openstack源码,源码文件多,分支不少.按照学习的方法走通一条线是最好的,而网上推荐的最多的就是nova创建虚机的过程.从这一条线入手,能够贯穿openstack核心服务.写博文仅做学习 ...
- 编译Twitter的Heron时一直报错“heron/bazel_configure.py", line 25, in <module> import semver ImportError: No module named semver”如何处理。
今天编译heron的时候,从官方git到的源码bazel_configure的时候一直报错如下: Traceback (most recent call last): File , in <mo ...
- MHA高可用架构与Atlas读写分离
1.1 MHA简介 1.1.1 MHA软件介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton ...
- 阿里云Centos7 apache配置
其实很简单,主要是有坑. 首先填坑,在阿里云安全策略上开放要访问的端口,然后配置firewall添加对应端口开放. firewall-cmd --zone=public --add-port=8011 ...
- Fiddler中设置断点修改Request和Response
Fiddler中设置断点修改Request Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据.设置断点 ...
- Effective Java 第三版——17. 最小化可变性
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- Micropython教程之TPYBoardv102 DIY蓝牙智能小车实例
1.实验目的 1.学习在PC机系统中扩展简单I/O接口的方法. 2.进一步学习编制数据输出程序的设计方法. 3.学习蓝牙模块的接线方法及其工作原理. 4.学习L298N电机驱动板模块的接线方法. 5. ...
- 命令行替代工具 - Cmder配置
Cmder 可搭配使用cmd here ( cmdhere.reg ) 1. 修改config\aliases文件:添加下列几行 l=ls --show-control-chars la=ls - ...
- 【埃氏筛】洛谷P3383埃氏筛模板
思路: 如果我们要筛出 [1, n] 内的所有素数,使用 [1, √n] 内的素数去筛就可以了 设bool型数组 a,a[i] 表示 i 是否被某个素数筛过 从 2 开始枚举每个数 i: 若 a[i] ...