我想使用一个flume代理,并根据定义的函数拆分主体数据,并将主体数据的一部分发送到一个接收器,另一部分发送到另一个接收器。我是否需要为此实现一个定制的拦截器,或者是否有我在阅读flume用户指南时错过的默认解决方案?
velaa5lx1#
是的,你必须写一个自定义的拦截器。您可以使用interceptor的intercept方法,并根据您的函数拆分每个事件的主体。稍后,您可以为主体的特定部分指定一个有意义的标头,该标头可以用作Flume扇出流的重定向或通道选择器参数。一旦你的代码准备好了,你就可以在flume中添加以下属性 conf 文件和实现多路复用-多路复用选择器的Map:
conf
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
1条答案
按热度按时间velaa5lx1#
是的,你必须写一个自定义的拦截器。
您可以使用interceptor的intercept方法,并根据您的函数拆分每个事件的主体。稍后,您可以为主体的特定部分指定一个有意义的标头,该标头可以用作Flume扇出流的重定向或通道选择器参数。
一旦你的代码准备好了,你就可以在flume中添加以下属性
conf
文件和实现多路复用-多路复用选择器的Map: