Flume正则拦截器(regex_filter) 以及自定义拦截器

前面已经给大家说过flume的简介以及安装,还有不明白的可以再去看看:
Flume简介以及详细安装教程

在当今大数据时代,在处理海量数据之前,收集数据,聚合和转换数据是绝对必要的,并最终将数据移动到那些使用不同分析和数据挖掘工具的存储库中。
执行所有这些步骤的流行工具之一是Apache Flume。 这些数据通常是以事件或日志的形式存储。 Apache Flume有三个主要组件:

Source:数据源可以是企业服务器,文件系统,云端,数据存储库等。
Channel:在事件被sink消耗前由Channel 存储。 Channel 是被动存储。 Channel 支持故障恢复和高可靠性; Channel 示例是由本地文件系统和基于内存的Channel 支持的文件通道。
Sink:Sink是可以存储数据的目标存储库。 它可以是一个集中的地方,如HDFS,像Apache Spark这样的处理引擎,或像ElasticSearch这样的数据存储库/搜索引擎。

Flume是高度可配置的,并且支持许多源,channel,serializer和sink。它还支持数据流。 Flume的强大功能是拦截器,支持在运行中修改/删除事件的功能。支持的拦截器之一是regex_filter。

regex_filter将事件体解释为文本,并将其与提供的正则表达式进行对比,并基于匹配的模式和表达式,包括或排除事件。我们将详细看看regex_filter。

案例:监听文件ss.txt,过滤掉以userid为开头的字段。
要监听的文件放在opt/sofft/datas目录下
ss.txt的文件内容如下:

userid username
hello hadoop
hello hive
hadoop hive
hello world
userid hello
hello cm
hello hadoop
hello hive

编写flume配置文件:
vi /opt/flumeconf/conf_0810_interceptor.properties

a3.channels=c3
a3.sources=s3
a3.sinks=k3

#定义具体的source类型
a3.sources.s3.type=spooldir
#定义监听的文件目录
a3.sources.s3.spoolDir=/opt/soft/datas
a3.sources.s3.interceptors=userid_filter

#定义正则拦截器filter
a3.sources.s3.interceptors.userid_filter.type=regex_filter
#定义正则,要拦截的字段
a3.sources.s3.interceptors.userid_filter.regex=userid.*
#满足正则就过滤掉当定义是true时,默认是false
a3.sources.s3.interceptors.userid_filter.excludeEvents=true

a3.sources.s3.deletePolicy=immediate
a3.sources.s3.pollDelay=500

a3.channels.c3.type
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值