Spark连续处理模式不会读取所有kafka主题分区

M-D*_*oru 2 apache-kafka apache-spark spark-structured-streaming spark-streaming-kafka

我正在结构化流中试验 Spark 的连续处理模式,并且正在读取具有 2 个分区的 Kafka 主题,而 Spark 应用程序只有一个具有 1 个核心的执行器。

该应用程序很简单,它只是从第一个主题中读取并在第二个主题上发布。问题是我的控制台消费者从第二个主题读取数据,它只看到来自第一个主题的一个分区的消息。这意味着我的 Spark 应用程序仅读取来自主题的一个分区的消息。

如何使我的 Spark 应用程序从主题的两个分区读取?

笔记

我向可能遇到与我相同问题的人问这个问题

M-D*_*oru 5

我在 Spark 结构化流文档的注意事项部分找到了问题的答案

基本上,在连续处理模式下,spark 会启动从主题的一个分区读取数据的长时间运行任务,因此,由于每个核心只能运行一个任务,因此 Spark 应用程序需要拥有与其读取的 kafka 主题分区一样多的核心。