apache-spark - 使用 Nifi 从多个来源读取,在 Kafka 中分组主题并使用 Spark 订阅
问题描述
我们使用 Apache Nifi 在特定时间间隔(例如 30 秒)从多个来源(如 Twitter 和 Reddit)获取数据。然后我们想将它发送到 Apache Kafka,它可能应该以某种方式将 Twitter 和 Reddit 消息分组到 1 个主题中,以便 Spark 总是会在给定的时间间隔内同时从两个源接收数据。
有没有办法做到这一点?
解决方案
@Sebastian 您所描述的是基本的 NiFI 路由。您只需将 Twitter 和 Redis 路由到相同的下游 Kafka 生产者和相同的主题。从每个服务获取数据到 NiFi 后,您应该将其运行到 UpdateAttribute 并将属性 topicName 设置为您想要的每个源。如果每个数据源有其他步骤,请在更新属性之后和 PublishKafka 之前执行。
如果您对所有上游路由进行编码,则可以使用 ${topicName} 动态地将所有不同的数据源路由到 PublishKafka 处理器。
推荐阅读
- java - 为什么 negate() 需要显式强制转换为 Predicate?
- javascript - 如何从 javascript 访问打印对话窗口中的元素
- r - 如何在多个列中对相同的值进行分组并对后续值求和?
- amazon-web-services - 如何将多个用户添加到 S3 上许多文件的访问控制列表
- c++ - 我似乎在使用基本 if/else 语句时遇到问题:/
- azure - Connect-AzureAD -Confirm throwing AADSTS900144:请求正文必须包含以下参数:'code'。错误
- vue.js - Socket.io 将不接受连接
- ios - 使用 AVKit for Swift 设置 AVLayerVideoGravity 时遇到问题
- angular - .Net Core 3 和 Angular 没有 HTTPS?
- nativescript - nativescript 无法运行,退出代码为 0