parallel-processing - Spark Direct Stream 不会为每个 kafka 分区创建并行流

标签 parallel-processing spark-streaming

我们在集成 Spark-Kafka 流时面临性能问题。

项目设置:
我们使用具有 3 个分区的 Kafka 主题,并在每个分区中生成 3000 条消息,并在 Spark 直接流中对其进行处理。

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

http://spark.apache.org/docs/latest/streaming-kafka-0-8-integration.html#approach-2-direct-approach-no-receivers

最佳答案

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

sparkConf.set("spark.streaming.concurrentJobs", "3")。

谢谢。

关于parallel-processing - Spark Direct Stream 不会为每个 kafka 分区创建并行流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41031930/

相关文章:

apache-spark - Spark 结构化流应用程序中的死亡执行者

apache-spark - AWS EMR Spark 应用程序 - CPU 和内存利用率不佳

c# - 在 C# 中创建加密随机数的最快、线程安全的方法?

在 OpenCL C 中计算内核代码的运行时间

scala - 使用 Spark Streaming 上下文时如何将 Seq 转换为 RDD

java - Yarn 分布式缓存,无映射器/ reducer

java - Apache Spark——Java,组直播流数据

jenkins - 在具有相同工作空间的同一节点中并行运行多个阶段

r - 如何使用 r 并行运行 knn 算法进行多分类

xml - XSLT - 适合任务吗?