有什么资源可以帮助我为flume ng编写httpsource的定制处理程序吗。我阅读了文档,这里有一个json的示例处理程序,但是我想知道是否有人需要编写一个处理程序来从xml消息体创建flume事件。httpsource现在可以在flume ng1.3.1中使用,但是我们需要处理程序来解释我们的数据。谢谢。
q9rjltbz1#
你看过jsonhandler的源代码了吗?xmlhandler的唯一区别是使用一些xml反序列化程序而不是gson。您只需要转换如下内容:
<dataList> <data> ... </data> <data> ... </data> </dataList>
进入list(或者引入您自己的httpevent,如flume开发人员使用jsonevent所做的那样,如果您需要处理不同的编码)。这些活动的主体将包含您的 <data>..</data> 作为字符串字节表示的块。我不建议在flume中实现解析这些事件的任何附加业务逻辑,因为业务规则往往会经常更改,而flume作为基础设施软件应该是稳定的。最后,将代码打包到jar中,将这个jar放入flume的lib目录(/usr/lib/flume ng/lib,如果是cloudera的rpm发行版),在flume.conf中指定httpsource的“handler”属性为“com.vicky.flume.source.http.xmlhandler”(或类似的内容),重新启动代理,就这样。希望这有帮助。我很乐意回答你的问题。
<data>..</data>
1条答案
按热度按时间q9rjltbz1#
你看过jsonhandler的源代码了吗?xmlhandler的唯一区别是使用一些xml反序列化程序而不是gson。
您只需要转换如下内容:
进入list(或者引入您自己的httpevent,如flume开发人员使用jsonevent所做的那样,如果您需要处理不同的编码)。这些活动的主体将包含您的
<data>..</data>
作为字符串字节表示的块。我不建议在flume中实现解析这些事件的任何附加业务逻辑,因为业务规则往往会经常更改,而flume作为基础设施软件应该是稳定的。
最后,将代码打包到jar中,将这个jar放入flume的lib目录(/usr/lib/flume ng/lib,如果是cloudera的rpm发行版),在flume.conf中指定httpsource的“handler”属性为“com.vicky.flume.source.http.xmlhandler”(或类似的内容),重新启动代理,就这样。
希望这有帮助。我很乐意回答你的问题。