为Flume-ng编写自定义HTTPSource Handler

时间:2013-01-11 09:31:22

标签: flume

是否有任何资源可以帮助我为Flume-ng的HTTPSource编写自定义处理程序。我阅读了文档并且有一个Json的示例处理程序,但我想知道是否有人需要编写一个处理程序来从XML消息体创建Flume事件。 HttpSource现在可以在Flume-ng 1.3.1中使用,但我们需要处理程序来解释我们的数据。

感谢。

1 个答案:

答案 0 :(得分:2)

你看过JSONHandler source了吗? XMLHandler的唯一区别是使用一些XML反序列化器而不是Gson。

您只需要转换类似的内容:

<dataList>
  <data>
     ...
  </data>
  <data>
     ...
  </data>      
</dataList>

到列表&lt; SimpleEvent&gt; (或者引入您自己的HTTPEvent,如Flume开发人员对JSONEvent所做的那样,如果您需要处理不同的编码)。这些活动的正文将<data>..</data>块包含为byte representation of String

我不建议在Flume中实现解析这些事件的任何其他业务逻辑,因为业务规则往往会发生变化,而Flume作为基础架构软件应该是稳定的。

最后,将代码打包到jar中,将此jar放入Flume的lib目录(在Cloudera的rpm分发情况下为/ usr / lib / flume-ng / lib),在HTTPSource的flume.conf“handler”属性中指定为“com.vicky.flume.source.http.XMLHandler”(或类似的东西),重新启动代理,就是这样。

希望这会有所帮助。很乐意回答你的问题。

相关问题