【发布时间】:2017-05-02 07:42:43
【问题描述】:
在 google dataproc 上,我想知道 spark 设置是如何确定的?就我而言,我正在运行一个 3 节点 n1-standard-4 集群,自动生成的 spark-defaults.conf 如下所示:
# User-supplied properties.
#Fri Dec 16 12:01:47 UTC 2016
spark.yarn.am.memoryOverhead=558
spark.executor.memory=5586m
spark.executor.cores=2
spark.driver.memory=3840m
spark.yarn.executor.memoryOverhead=558
spark.driver.maxResultSize=1920m
spark.yarn.am.memory=5586m
我想知道为什么要这样设置配置,尤其是为什么 spark.yarn.am.memory 设置那么高?据我了解,此设置仅在客户端模式下生效,驱动程序在提交机器(主机)上运行。此外,AM“仅”负责为工作进程请求资源并协调这些资源。为什么 am.memory 应该那么高?在我的场景中,这个默认设置实际上意味着我只能在客户端模式下启动一个 spark 进程,因为集群中的任何地方都没有可用的 RAM 用于第二个 AM。 (这实际上是我观察到的,也是我首先查看配置的原因)。
那么,我的问题又来了:dataproc 启动脚本如何决定如何设置这些值,其背后的原因是什么,以及为什么 am.memory 应该特别高?
【问题讨论】:
标签: apache-spark hadoop-yarn google-cloud-dataproc