如何使用flume将正文中的数据拆分为不同的通道?

gijlo24d  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(451)

我想使用一个flume代理,并根据定义的函数拆分主体数据,并将主体数据的一部分发送到一个接收器,另一部分发送到另一个接收器。
我是否需要为此实现一个定制的拦截器,或者是否有我在阅读flume用户指南时错过的默认解决方案?

velaa5lx

velaa5lx1#

是的,你必须写一个自定义的拦截器。
您可以使用interceptor的intercept方法,并根据您的函数拆分每个事件的主体。稍后,您可以为主体的特定部分指定一个有意义的标头,该标头可以用作Flume扇出流的重定向或通道选择器参数。
一旦你的代码准备好了,你就可以在flume中添加以下属性 conf 文件和实现多路复用-
多路复用选择器的Map:

Agent.sources.Source1.selector.type = multiplexing

Agent.sources.Source1.selector.header = someHeader
Agent.sources.Source1.selector.mapping.Value = Channel1
Agent.sources.Source1.selector.mapping.Value2 = Channel1 Channel2
Agent.sources.Source1.selector.mapping.Value3 = Channel2

相关问题