【问题标题】:Spark continuous processing mode does not read all kafka topic partitionSpark连续处理模式不读取所有kafka主题分区
【发布时间】:2019-01-10 14:22:39
【问题描述】:

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

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

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

注意

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

【问题讨论】:

    标签: apache-spark apache-kafka spark-structured-streaming spark-streaming-kafka


    【解决方案1】:

    我在 caveats section 的 Spark Structured Streaming 文档中找到了我的问题的答案

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

    【讨论】:

    • 核心还是执行者?一个执行器可以占用一个核心。您的集群需要有那么多可用的内核,并且您的应用程序可以配置为最多占用cores * executors
    • 感谢您的提问!我不是很明确,我的意思是应用程序的核心总数,这意味着分配给应用程序的#cores/executor * #executors
    • 好的,很高兴知道,谢谢。只是感兴趣,您是否测量了连续处理的延迟?
    猜你喜欢
    • 2016-10-27
    • 1970-01-01
    • 2016-10-15
    • 2016-04-18
    • 2021-06-11
    • 2016-06-09
    • 2019-11-04
    • 2016-03-29
    • 1970-01-01
    相关资源
    最近更新 更多