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

key*_*int 5 linux memory config environment-variables apache-spark

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

在spark-folder/conf/spark-env.sh中:

  • SPARK_DRIVER_MEMORY,主存储器(例如1000M,2G)(默认值:512 Mb)
  • SPARK_EXECUTOR_MEMORY,每个工人的内存(例如1000M,2G)(默认值:1G)
  • SPARK_WORKER_MEMORY,设置工作人员必须给执行程序的总内存量(例如1000m,2g)

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

据我了解,DRIVER_MEMORY是最大内存主节点/进程可以请求的.但对于驾驶员来说,多机情况如何,例如.1台主机和2台工作机,工作机还应该有一些可用于火花机的内存?

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

非常感谢你.

ngt*_*hoa 7

首先,您应该知道1个Worker(可以说是1个机器或1个Worker Node)可以启动多个Executor(或多个Worker实例 - 他们在文档中使用的术语).

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

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

相反,在YARN模式下,您设置SPARK_DRIVER_MEMORY一个Executor的内存

  • SPARK_DRIVER_MEMORY 在YARN部署模式下使用,指定运行应用程序并与Cluster Manager通信的驱动程序的内存.