Flume自定义拦截器的编写

本文介绍了如何在Flume中自定义拦截器,通过对Source读取的Event事件的body内容判断是否包含特定关键字(如'Hello'),以此区分不同类型的日志,并利用ChannelSelector将这些Event分配到不同的Channel,实现日志的精细化处理。通过在Event的Header中添加信息,为不同类型的日志指定关键字,从而指导ChannelSelector进行操作。文中还提及了需要引入Flume的相关依赖,并建议参考官网案例编写运行文件。
摘要由CSDN通过智能技术生成

我们Source中读到的数据往往会被分为几个不同的日志种类 然后通过Sink发送到不同的节点去进行处理 。 那么对于同一个Source中读到的不同的数据 我们往往根据读到的数据中的一些特定的字段值或者其他的特征值 来将他们区分为不同的日志种类 在Flume中我们需要自定义拦截器,然后通过ChannelSelector(Channel选择器)来将同一个Source中的不同类型的日志数据 进行一次分类 将他们写入不同的Channel中

拦截器的思想 : Source中读取到的Event事件 我们通过获得这个Event的body部分(也就是该Event的实际数据),通过判定这个body中是否包含某一个关键字(根据不同的业务决定不同的选择方法 这个示例就是通过是否包含“Hello”关键字) 来将他们分为两个不同的种类。 那么Flume的ChannelSelector 是怎么判定这个Event写入哪个Channel中呢 是通过这个Event的Header中包含的信息 (需要我们自己在运行文件中定义) 所以我们对这个Event加入Header信息 对不同类型的日志数据指定不同的关键字 即可

Java代码:

首先需要带入依赖

<dependencies>
        <dependency>
            <groupId>org.apache.flume</groupId>
            <artifactId>flume-ng-core</artifactId>
            <version>1.7.0</version>
        </dependency>
    </dependencies>
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值