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

 

flume-拦截器、channel选择器、sink组合sink处理器的更多相关文章

  1. Hadoop生态圈-Flume的组件之拦截器与选择器

      Hadoop生态圈-Flume的组件之拦截器与选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客只是配置的是Flume主流的Interceptors,想要了解更详细 ...

  2. Flume 拦截器(interceptor)详解

    flume 拦截器(interceptor)1.flume拦截器介绍拦截器是简单的插件式组件,设置在source和channel之间.source接收到的事件event,在写入channel之前,拦截 ...

  3. 大数据学习——flume拦截器

    flume 拦截器(interceptor)1.flume拦截器介绍拦截器是简单的插件式组件,设置在source和channel之间.source接收到的事件event,在写入channel之前,拦截 ...

  4. Flume拦截器、监控器

    一.拦截器 1.拦截器:拦截器主要作用在source和channel之间,用于给event设置header消息头,如果没有设置拦截器,则event中只有message. 常见的拦截器有: Timest ...

  5. 大数据学习day36-----flume02--------1.avro source和kafka source 2. 拦截器(Interceptor) 3. channel详解 4 sink 5 slector(选择器)6 sink processor

    1.avro source和kafka source 1.1 avro source avro source是通过监听一个网络端口来收数据,而且接受的数据必须是使用avro序列化框架序列化后的数据.a ...

  6. 【SpringMVC】 4.3 拦截器

    SpringMVC学习记录 注意:以下内容是学习 北京动力节点 的SpringMVC视频后所记录的笔记.源码以及个人的理解等,记录下来仅供学习 第4章 SpringMVC 核心技术 4.3 拦截器   ...

  7. [转载] Spring MVC - 处理器拦截器

    5.1.处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.   ...

  8. Spring+SpringMVC+MyBatis深入学习及搭建(十七)——SpringMVC拦截器

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7098753.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十六)--S ...

  9. springmvc拦截器的简单了解

    1.定义一个拦截器 2.在springmvc.xml中配置拦截器. (1)拦截器拦截的请求是建立在前端控制器配置之下的,若DispatcherServlet拦截的是*.action,则拦截器即使配置 ...

随机推荐

  1. npm常规命令行集合

    最近在摸索vue-cli脚手架的安装,中间用到了一些node的npm命令行,进行了一些整理,并且这个会一直搜集整理更新! 1,常规文件操作命令 cd..                   返回当前文 ...

  2. java路径

    System.out.println(ResourceUtils.getURL("classpath:").getPath());

  3. C++学习(三十)(C语言部分)之 栈和队列

    数据结构1.保存数据 2.处理数据数组+操作增查删改 栈和队列是一种操作受限的线性表 栈 是先进后出 是在一端进行插入删除的操作--->栈顶 另一端叫做栈底(栈和栈区是两个概念)(是一种数据结构 ...

  4. java依赖注入(injection)

    和SpringSource分别通过其开源项目Guice及Spring Framework提供了依赖注入的功能.然而直到现在开发者也没有一种标准的.独立于供应商的方式从而无需修改其源文件就能在这些框架之 ...

  5. C# to IL 6 Reference and Value Types(引用类型和值类型)

    An interface is a reference type, in spite of the fact that it has no code at all. Thus, wecannot in ...

  6. Winform里面的缓存,MemoryCache使用

    缓存在很多情况下需要用到,合理利用缓存可以一方面可以提高程序的响应速度,同时可以减少对特定资源访问的压力.本文主要针对自己在Winform方面的缓存使用做一个引导性的介绍,希望大家能够从中了解一些缓存 ...

  7. webpack常用配置

    webpack --help或webpack -h 列出命令行所有可用的配置选项 webpack --config example.config.js 指定其他的配置文件.配置默认文件为webpack ...

  8. YUICompressor的安装及使用(一)

    step1:下载ant和YUICompressor    1) Ant:   http://ant.apache.org/bindownload.cgi   打开页面后,下拉滚动条,找到如下图所示,单 ...

  9. firefox extension教程

    https://developer.mozilla.org/zh-CN/docs/Add-ons/Overlay_Extensions/XUL_School/The_Essentials_of_an_ ...

  10. 逻辑回归(logic regression)的分类梯度下降

    首先明白一个概念,什么是逻辑回归:所谓回归就是拟合,说明x是连续的:逻辑呢?就是True和False,也就是二分类:逻辑回归即使就是指对于二分类数据的拟合(划分). 那么什么是模型呢?模型其实就是函数 ...