java - kafka 与 Apache Spark 的集成
问题描述
我正在学习 apache spark 与 kafka 的集成,这样每当新消息到达 Kafka 的主题时,我的代码就可以自动运行。
我也读过官方文档
https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html
但我仍然很困惑它是如何工作的。我在 java spark 中编写了我的字数统计程序,而另一边 Kafka 正在运行。
结构化流是 kafka 和 spark java 代码之间的桥梁吗?它是否一直在听 kafka 并且每当消息到达时,它会从 kafka 中提取并将其传递给 spark java 代码..?这是对的吗 ..?
如果没有,任何人都可以与我分享,它是如何用简单的话来工作的..?任何其他参考将不胜感激。
我应该如何将我的 java spark 代码集成到 Kafka,以便每当新消息到达 kafka 时它会自动触发..?
谢谢
解决方案
Spark 委托给基本的 Kafka 消费者 API,这些 API 在消息到达主题时分批轮询消息。
在这方面,结构化流和常规 Spark 流的工作方式相同。
如果您有兴趣了解 Kafka 记录传递的工作原理,您可能希望从 Kafka 基本消费者或 Kafka Streams 开始,因为 Spark 可能会过大,具体取决于任务
推荐阅读
- c - 存储在 SRAM 中的变量的默认值
- php - Laravel 活动记录中的 Mysql 查询
- c# - 使用 C# 中的参数从 JQuery 调用 WebMethod
- python - 列表理解与将生成器表达式传递给列表
- ios - iOS 12 上的 PWA 不再与 Safari 共享 Service Worker 缓存?
- android - 检查服务是否已在运行
- node.js - 错误 TS2305:模块“/node_modules/rxjs/Rx”没有导出的成员“可订阅”
- wpf - WPF X:名称导致类型名称“ViewModel”编译错误
- android - 无法在两个不同的微调器 android 中设置单个数组列表数据
- python - 获取 Numpy MaskedArray 的最小值和最大值引发 AttributeError