有没有任何资源可以帮助我为Flume-ng编写一个自定义的HTTPSource处理程序。我阅读了文档,有一个用于Json的示例处理程序,但我想知道是否有人需要编写一个处理程序来从XML消息体创建Flume事件。HttpSource现在在Flume-ng 1.3.1中可用,但是我们需要处理程序来解释我们的数据。
谢谢。
发布于 2013-01-29 03:40:18
你看过JSONHandler source吗?XMLHandler的唯一区别是使用了一些XML反序列化程序,而不是Gson。
您只需要转换如下内容:
<dataList>
<data>
...
</data>
<data>
...
</data>
</dataList>添加到List[SimpleEvent](https://git-wip-us.apache.org/repos/asf?p=flume.git;a=blob;f=flume-ng-sdk/src/main/java/org/apache/flume/event/SimpleEvent.java;h=a7ac36fbe4d4d9e61752d3bf4cf66c96145f2911;hb=HEAD)中(或者引入您自己的HTTPEvent,如果您需要处理不同的编码,就像Flume开发人员对JSONEvent所做的那样)。这些事件的主体将包含您的byte representation of String形式的<data>..</data>块。
我不建议在Flume中实现解析这些事件的任何额外业务逻辑,因为业务规则往往经常更改,而作为基础设施软件的Flume应该是稳定的。
最后,将您的代码打包到jar中,将此jar放入flume的lib目录(在Cloudera发行版中为/usr/lib/flume-ng/lib),在HTTPSource的flume.conf "handler“属性中指定为"com.vicky.flume.source.http.XMLHandler”(或类似的内容),重新启动代理,然后就完成了所有的工作。
希望这能有所帮助。很乐意回答你的问题。
https://stackoverflow.com/questions/14275153
复制相似问题