我想将多个Kafka消息加载到Nifi中的多个HDFS文件夹中

时间:2019-05-14 09:17:07

标签: apache-kafka apache-nifi

当前,我正在使用ConsumeKafkaRecord,Merge Content和PutHDFS将数据从kafka加载到Hive。我们需要针对多个kafka主题将其自动化。有什么办法可以在nifi中做到这一点。

例如:如果我给主题名称输入abc,xyz,则来自abc主题的数据应移至/ abc,而来自xyz的数据应移至/ xyz文件夹。

请提出建议。

2 个答案:

答案 0 :(得分:4)

ConsumeKafkaRecord处理器将编写一个名为kafka.topic的属性,其中包含记录来自的主题的名称。

PutHDFS directory 参数支持表达式语言。

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

答案 1 :(得分:0)

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

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

让我知道您是否需要更多帮助!