【问题标题】:I want to load the multiple Kafka messages to multiple HDFS folders in Nifi我想将多个 Kafka 消息加载到 Nifi 中的多个 HDFS 文件夹中
【发布时间】:2019-05-14 09:17:07
【问题描述】:

目前我正在使用 ConsumeKafkaRecord、Merge Content 和 PutHDFS 将数据从 kafka 加载到 Hive。我们需要为多个 kafka 主题自动执行此操作。有没有办法在nifi中做到这一点。

例如:如果我将主题名称指定为 abc,xyz,则来自 abc 主题的数据应移至 /abc,而来自 xyz 的数据应移至 /xyz 文件夹。

请提出建议。

【问题讨论】:

    标签: apache-kafka apache-nifi


    【解决方案1】:

    ConsumeKafkaRecord 处理器写入一个名为 kafka.topic 的属性,其中包含记录所在主题的名称。

    并且PutHDFS目录参数支持表达式语言。

    所以,您可以在其中指定 /${kafka.topic} 之类的内容

    【讨论】:

    • 感谢达格特。我们能够将数据传输到多个文件夹,但它会在 hdfs 中创建非常小的文件。有什么办法可以避免。我们尝试使用合并内容,但它正在合并所有主题数据。
    • 听起来像是另一个问题。您必须提出一个新问题:显示小文件的属性,合并内容处理器的参数以及预期的行为。
    【解决方案2】:

    关于问题的第二部分,您可以基于“kafka.topic”属性合并文件(使用mergeContent)。这样,您可以使用一个处理器合并不同主题的内容。 (每个主题的数据只会与该特定主题的数据合并)

    然后,您可以通过将路径称为“hdfs://${your-hdfs-path}/${kafka.topic}”将文件路由到 HDFS 中的不同目录

    如果您需要更多帮助,请告诉我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      • 2023-03-11
      • 2019-08-31
      • 2019-02-16
      相关资源
      最近更新 更多