如何使用flume将.txt文件中的XML数据转换为Avro格式并保存到hdfs



XML数据以文本文件形式出现。 将它们摄取到Flume和Kafka到HDFS中,并将它们保存为.txt文件格式。

退出用例: XML 文件通过 Flume →kafka→flumeintercepter 摄取(以验证是否有效的模式(—->发送到有效或无效的 Kafka TPOIC →HDFS 接收器(有效和无效(保存在.txt文件中

新的是:

我需要获取有效的 Kafka 主题,并且需要编写自己的 Flume 拦截器将 XML 数据转换为 Avro 格式并发送到 →HDFS 接收器(HDFS 有效位置( 最终输出需要采用 avro 文件格式。

任何帮助将不胜感激

提前感谢...

您可以使用Apache Kite morphlines拦截器将数据转换为Avro

看看这个

http://community.cloudera.com/t5/Kite-SDK-includes-Morphlines/Morphline-command-to-parse-xml/m-p/9378

https://community.cloudera.com/t5/Kite-SDK-includes-Morphlines/Flume-morphline-sink-to-HDFS/td-p/1787

我希望它对:)有所帮助

您可能有兴趣使用 apache avro JAVA API 将 XML 转换为 AVRO - http://avro.apache.org/docs/1.8.2/gettingstartedjava.html

转换后,您可以在水槽拦截器中使用此代码并编写 AVRO 文件,但您还需要具有可以从 XSD 架构创建的 avro 架构。

我在springxd流中做了类似的事情。

希望这有帮助

最新更新