gpt4 book ai didi

performance - 为什么 Spark 不将作业分配给所有执行程序,而是仅分配给一个执行程序?

转载 作者:行者123 更新时间:2023-12-04 12:40:33 24 4
gpt4 key购买 nike

我的 Spark 集群有 1 个 master 和 3 个 worker(在 4 台独立的机器上,每台机器有 1 个核心),其他设置如下图,其中 spark.cores.max 设置为 3 , 和 spark.executor.cores 还有 3 (在 pic-1 中)

但是当我将我的工作提交给 Spark 集群时,从 Spark web-UI 我可以看到只使用了一个执行程序(根据 使用的内存 RDD 块 in pic- 2 ),但不是所有的执行者。在这种情况下,处理速度比我预期的要慢得多。

既然我已经把最大核心数设置为 3,那么所有的执行者不应该都习惯这个工作吗?

如何配置 Spark 将当前作业分发给所有执行程序,而不是只有一个执行程序运行当前作业?

非常感谢。

------------------图片1 :
spark settings

------------------图片2 :
enter image description here

最佳答案

你说你正在运行两个接收器,它们是什么类型的接收器(Kafka、Hdfs、Twitter ??)

您使用的是哪个 Spark 版本?

根据我的经验,如果您使用文件接收器以外的任何接收器,那么它将永久占用 1 个核心。
因此,当您说您有 2 个接收器时,那么 2 个内核将永久用于接收数据,因此您只剩下 1 个正在执行工作的内核。

请同时发布 Spark master 主页屏幕截图。和 Job 的 Streaming 页面截图。

关于performance - 为什么 Spark 不将作业分配给所有执行程序,而是仅分配给一个执行程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30246963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com