首页 > 解决方案 > 使用 Nifi 从多个来源读取,在 Kafka 中分组主题并使用 Spark 订阅

问题描述

我们使用 Apache Nifi 在特定时间间隔(例如 30 秒)从多个来源(如 Twitter 和 Reddit)获取数据。然后我们想将它发送到 Apache Kafka,它可能应该以某种方式将 Twitter 和 Reddit 消息分组到 1 个主题中,以便 Spark 总是会在给定的时间间隔内同时从两个源接收数据。

有没有办法做到这一点?

在此处输入图像描述

标签: apache-sparkapache-kafkaapache-nifi

解决方案


@Sebastian 您所描述的是基本的 NiFI 路由。您只需将 Twitter 和 Redis 路由到相同的下游 Kafka 生产者和相同的主题。从每个服务获取数据到 NiFi 后,您应该将其运行到 UpdateAttribute 并将属性 topicName 设置为您想要的每个源。如果每个数据源有其他步骤,请在更新属性之后和 PublishKafka 之前执行。

如果您对所有上游路由进行编码,则可以使用 ${topicName} 动态地将所有不同的数据源路由到 PublishKafka 处理器。


推荐阅读