【问题标题】:Spark configuration, what is the difference of SPARK_DRIVER_MEMORY, SPARK_EXECUTOR_MEMORY, and SPARK_WORKER_MEMORY?Spark配置,SPARK_DRIVER_MEMORY、SPARK_EXECUTOR_MEMORY、SPARK_WORKER_MEMORY有什么区别?
【发布时间】:2015-07-09 09:48:10
【问题描述】:

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

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

  • SPARK_DRIVER_MEMORY,主内存(例如 1000M、2G)(默认:512 Mb)
  • SPARK_EXECUTOR_MEMORY,每个 Worker 的内存(例如 1000M,2G)(默认:1G)
  • SPARK_WORKER_MEMORY,设置worker必须给executors的总内存量(例如1000m,2g)

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

据我了解,DRIVER_MEMORY 是主节点/进程可以请求的最大内存。但是对于司机来说,多机情况如何,例如。 1台master机器2台worker机器,worker机器也应该有一些内存可用于spark driver?

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

非常感谢。

【问题讨论】:

    标签: linux memory apache-spark environment-variables config


    【解决方案1】:

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

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

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

    相比之下,在 YARN 模式下,您将 SPARK_DRIVER_MEMORY 设置为 一个 Executor

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

    【讨论】:

    • 当我和你一样开始学习 Spark 时,我曾经对这些术语感到困惑。更多的理解可以参考我的博客。希望它会有所帮助:) trongkhoanguyen.com/2015/01/…
    猜你喜欢
    • 2013-06-14
    • 2016-04-18
    • 1970-01-01
    • 2016-05-27
    • 2014-12-30
    • 2017-04-05
    • 2014-09-12
    • 1970-01-01
    • 2016-12-14
    相关资源
    最近更新 更多