7.1.4Flume拦截器(Interceptor)

数据采集的理想做法是:由数据的生产者再把数据发送到平台之前对数据进行清理,这应当由产生数据的团队来处理,因为他们最了解他们自己的数据。拦截器是数据流中的一个处理点,他可以在源和通道之间插入一个或多个拦截器,来动态检查和修改Flume事件,有点类似Servlet的ServletFilter
数据—–》源——-》事件——》拦截器1———–》拦截器2——–》通道(Flume代理)
下面这个例子添加了4个拦截器(i1,i2,i3,i4,i2接收i1的处理结果,i3接收i2的处理结果,i4接收i3的处理结果,并将结果送给通道选择器),其中i1是一个时间戳拦截器,如果远中没有timestamp头,那么,拦截器会添加之,i2是一个Host拦截器,他会向事件中添加一个Flume代理所在的IP的头,i3是一个static拦截器,可用于添加一对“键值”i4是一个正则表达式过滤拦截器,这会根据“体”(即:传输数据)的内容来过滤事件。在regex上设置模式字符串,如果你设置了excludeEvents的值为false(默认值)那么,只停留与模式匹配的事件;如果为true,那么,过滤掉匹配的事件
agent,sources,s1,interceptors=i1 i2 i3 i4
agent,sources,s1,interceptors,i1,type=timestamp
agent,sources,s1,interceptors,i1,perserveExisting=true
agent,sources,s1,interceptors,i2,type=host
agent,sources,s1,interceptors,i3,type=static
agent,sources,s1,interceptors,i3,key=键
agent,sources,s1,interceptors,i3,key=值
agent,sources,s1,interceptors,i4,type=regex-filter
agent,sources,s1,interceptors,i4,regex=测试数据
agent,sources,s1,interceptors,i4,excludeEvents=true
上面的perserveExisting指定是保留头上的相关信息,还是覆盖之,还有一个拦截器是正则表达式抽取过滤器,他可以抽取事件“体”的内容,并放到Flume头上,以便通道选择器根据这些值路由不同的通道
Flume还允许我们自己定义拦截器,这就需要实现org,apache,flume,interceptor,interceptor和org,apache,flume,interceptor
interceptor,Builder接口,假定你的类名为com,yunsheng,Test
那么,你可以设置为:
agent,sources,s1,interceptors=i5
agent,sources,s1,interceptors,i5,type=com.yunsheng.Test$Builder

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值