Spark配置,SPARK_DRIVER_MEMORY、SPARK_EXECUTOR_MEMORY、SPARK_WORKER_MEMORY有什么区别?

Spark configuration, what is the difference of SPARK_DRIVER_MEMORY, SPARK_EXECUTOR_MEMORY, and SPARK_WORKER_MEMORY?

我完成了我的工作,请阅读 https://spark.apache.org/docs/latest/configuration.html

上的文档

in spark-folder/conf/spark-env.sh:

以上3个参数是什么关系?

据我了解,DRIVER_MEMORY 是主机 node/process 可以请求的最大内存。但是对于驱动程序,多机情况如何,例如。 1 master 机器和 2 worker 机器,worker 机器应该也有一些内存可以用于 spark driver?

EXECUTOR_MEMORY 和 WORKER_MEMORY 对我来说是一样的,只是不同的名字,这也能解释一下吗?

非常感谢。

首先,您应该知道 1 个 Worker(可以说是 1 台机器或 1 个工作节点)可以启动多个 Executors(或多个 Worker 实例 - 他们在文档中使用的术语)。

  • SPARK_WORKER_MEMORY仅用于独立部署模式
  • SPARK_EXECUTOR_MEMORY用于YARN部署模式

在独立模式下,您将 SPARK_WORKER_MEMORY 设置为 一台机器上可以使用的内存总量 (本机上的所有执行程序)到 运行 你的 spark 应用程序。

相反,在YARN模式下,你将SPARK_DRIVER_MEMORY设置为一个Executor

的内存
  • SPARK_DRIVER_MEMORY 用于 YARN 部署模式,指定驱动程序的内存,运行 是您的应用程序并与集群管理器通信。