2

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

谢谢。

4

1 回答 1

2

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

您只需要转换如下内容:

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

进入 List< SimpleEvent > (或者引入你自己的 HTTPEvent,就像 Flume 开发者对JSONEvent所做的那样,如果你需要处理不同的编码)。这些事件的主体将包含您的<data>..</data>块作为String 的字节表示

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

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

希望这可以帮助。将很高兴回答您的问题。

于 2013-01-28T19:40:17.920 回答