如何设置Spark执行器内存?

4

我已将 spark.executor.memory 设置为 2048m,在 UI 的 "Environment" 页面中,我可以看到这个值已经正确设置。但是在 "Executors" 页面中,我看到只有一个执行器,其内存为 265.4MB。非常奇怪的值。为什么不是 256MB,或者就像我设置的那样呢?

我在这里错过了什么吗?


你使用的调度器是什么?独立模式、Mesos还是YARN?你能发布你的提交脚本和你设置的Spark环境变量吗? - Mikel Urkia
听起来你正在独立模式下运行。请查看@devrimbaris的答案。 - Roger Huang
2个回答

6
UI界面上的“执行器”选项卡中,驱动程序也包含在列表中。它的“执行器ID”列出为<driver>。这个进程不是由Spark启动的,因此不受spark.executor.memory的影响。
  • 如果您使用spark-submit启动驱动程序,则其最大内存可以通过spark.driver.memory--driver-memory来控制。
  • 如果您将其作为普通的Java程序启动,请使用常规的-Xmx Java标志。

好的回答。不过,你确定驱动程序不是由Spark启动的吗?如果不是,那么是谁或什么启动它? - Mikel Urkia
驱动程序是您的应用程序。您可以使用普通的java命令启动它。Spark提供了spark-submit工具,也可以用于启动您的应用程序。 - Daniel Darabos
这正是我所想的。由于我通常使用spark-submit来启动Spark作业,你的肯定让我感到惊讶。感谢你的澄清。 - Mikel Urkia
谢谢。我已经改写了最后一句话,以使清楚哪些标志/设置适用于启动的哪个方法。 - Daniel Darabos
@DanielDarabos,非常感谢。我没有注意到你回答的第二部分,在IDE中设置值时遇到了困难。-Xmx救了我的一天。 - David S.

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接