【问题标题】:How can I use flume to split the data in the body into different channels?如何使用 Flume 将 body 中的数据拆分到不同的通道中?
【发布时间】:2016-01-12 16:44:06
【问题描述】:

我想使用一个flume代理,根据定义的函数拆分body的数据,将body数据的一部分发送到一个sink,另一部分发送到另一个sink。

我是否需要为此实现自定义拦截器,或者是否有我错过阅读 Flume 用户指南的默认解决方案?

【问题讨论】:

    标签: java hadoop flume


    【解决方案1】:

    是的,你必须编写一个自定义拦截器。

    您可以使用 Interceptor 的拦截方法并根据您的功能拆分每个事件的主体。稍后您可以为主体的特定部分分配一个有意义的标头,该标头可用作水槽扇出流的重定向或通道选择器参数。

    一旦你准备好你的代码,你可以在你的水槽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
    

    【讨论】:

      猜你喜欢
      • 2018-11-15
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多