Parallel processing Spark Direct Stream没有为每个kafka分区创建并行流

Parallel processing Spark Direct Stream没有为每个kafka分区创建并行流,parallel-processing,spark-streaming,Parallel Processing,Spark Streaming,我们在集成Spark Kafka streams时面临性能问题 项目设置: 我们使用的Kafka主题有3个分区,每个分区生成3000条消息,并在Spark direct streaming中进行处理 我们面临的问题是: 在处理端,我们使用Spark direct stream方法来处理相同的问题。根据以下文件。Spark应该创建与主题中分区数量相同的并行直接流(本例中为3)。但是在阅读时,我们可以看到来自分区1的所有消息都是先处理后处理的。为什么它不是并行处理?根据我的理解,如果同时从所有分区并

我们在集成Spark Kafka streams时面临性能问题

项目设置: 我们使用的Kafka主题有3个分区,每个分区生成3000条消息,并在Spark direct streaming中进行处理

我们面临的问题是: 在处理端,我们使用Spark direct stream方法来处理相同的问题。根据以下文件。Spark应该创建与主题中分区数量相同的并行直接流(本例中为3)。但是在阅读时,我们可以看到来自分区1的所有消息都是先处理后处理的。为什么它不是并行处理?根据我的理解,如果同时从所有分区并行读取,那么消息输出应该是随机的


是否尝试设置spark.streaming.concurrentJobs参数。 可能在你的情况下,它可以设置为三

sparkConf.set(“spark.streaming.concurrentJobs”,“3”)


谢谢。

但是在阅读时,我们可以看到来自分区1的所有消息都先被处理,然后再被处理。你怎么看?我不确定你是否已经解决了这个问题。但我们使用“spark.streaming.kafka.maxRatePerPartition”标志解决了这个问题。没有设置此标志,默认行为与您提到的完全相同。一旦我们将这个标志设置为100条消息,我们就可以看到分区是并行处理的。