flume flume自定义拦截器

flume自带拦截器

  • timestamp 拦截器:在Event Header中添加时间戳。
  • Host 拦截器:在Event Header中添加agent运行机器的Host或IP。
  • Static 拦截器:在Event Header中添加自定义静态属性。
  • Remove Header拦截器:可移除Event Header中指定属性。
  • UUID拦截器:在Event Header中添加全局唯一UUID。
  • Search and Replace拦截器:基于正则搜索和替换字符串等。
  • Regex Filtering拦截器:基于正则过滤或反向过滤Event。
  • Regex Extractor拦截器:基于正则在Event Header添加指定的Key,并将匹配到的内容作为对应的Value。

当以上flume自带拦截去不能实现复杂需求时,可以考虑自定义拦截器

flume自定义拦截器

整体流程

  • 编写java代码
  • 打包上传到flume的lib目录下
  • 编写flume配置文件

flume Interceptor源码

在这里插入图片描述

  • public void initialize()运行前的初始化,一般不需要实现

  • public Event intercept(Event event)处理单个event;

  • public List intercept(List events)批量处理event,内部调用单个的event逻辑即可;

  • public void close()可以做一些清理工作,可以不实现

  • public interface Builder extends Configurable 构建Interceptor对象,外部使用这个Builder来获取Interceptor对象。

综上所述,实现Interceptor,自定义flume拦截器主要实现以下3个方法、接口

  • 实现Interceptor接口中intercept(Event event)方法
  • intercept(List<Event> events)方法。
  • 创建内部类Builder实现Interceptor.Builder接口

示例

需求:实现过滤某个不需要的字段,并加密另外一个字段

原始数据格式

# 加密 |不处理|不处理|过滤|不处理
13504245101,male,11,chifan,bei
13717457125,female,22,shuijue,shang
18451762413,male,33,dadoudou,guang

处理后的数据

xxxxxxxxxxx,male,11,bei
xxxxxxxxxxx,female,22,shang
xxxxxxxxxxx,male,33,guang

第一个flume代码(自定义flume拦截器)

pom文件

 <dependencies>
        <dependency>
            <groupId>org.apache.flume</groupId>
            <artifactId>flume-ng-core</artifactId>
            <version>1.6.0-cdh5.14.2</version>
        </dependency
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值