【问题标题】:Convert Xml to Avro from Kafka to hdfs via spark streaming or flume通过火花流或水槽将 Xml 转换为 Avro 从 Kafka 到 hdfs
【发布时间】:2016-09-29 18:49:37
【问题描述】:

我想将 xml 文件转换为 avro。数据将是xml格式,将首先命中kafka主题。然后,我可以使用 flume 或 spark-streaming 来摄取并从 xml 转换为 avro 并将文件放在 hdfs 中。我有一个 cloudera 环境。

当 avro 文件命中 hdfs 时,我希望以后能够将它们读入 hive 表。

我想知道最好的方法是什么?我尝试过自动模式转换,例如 spark-avro(这是没有 spark-streaming),但问题是 spark-avro 转换数据但配置单元无法读取它。 Spark avro 将 xml 转换为数据帧,然后从数据帧转换为 avro。 avro 文件只能由我的 spark 应用程序读取。我不确定我是否正确使用它。

我想我需要为 avro 模式定义一个显式模式。不确定如何处理 xml 文件。它有多个命名空间并且非常庞大。

【问题讨论】:

    标签: apache-spark apache-kafka spark-streaming avro spark-avro


    【解决方案1】:

    如果你在 cloudera 上(因为你有水槽,你可以拥有它),你可以使用 morphline 进行记录级别的转换。您可以使用批处理/流式传输。您可以查看here 了解更多信息。

    【讨论】:

    • 不知道morphline能不能读取xml然后转换成avro?
    • Morphline 可以读取 xml 内容,并且可以写入 avro。您的用例没有直接转换命令。您可以研究 morphline 的使用情况,也可以计划一个 map reduce/spark 作业来读取每个文件/记录并转换为 avro。 Morphline 可随时用于批处理方式和水槽使用。
    猜你喜欢
    • 2016-01-23
    • 1970-01-01
    • 2015-05-15
    • 2019-09-20
    • 2017-04-27
    • 2018-10-08
    • 2018-07-27
    • 2018-11-01
    • 2017-11-17
    相关资源
    最近更新 更多