我是否正确理解客户端模式的文档?
spark.driver.memory
+ spark.yarn.am.memory
必须小于机器的内存?答案 0 :(得分:8)
客户端模式是否与群集模式相对,驱动程序在应用程序主服务器中运行?
是,在
中通过YARN部署Spark应用程序时
如果Spark应用程序在其自己的资源管理器(独立)上以集群模式提交,则驱动程序进程将位于其中一个工作节点中。
图片和内容的参考文献:
在客户端模式下,驱动程序和应用程序主机是独立的进程,因此
spark.driver.memory
+spark.yarn.am.memory
必须小于机器的内存?
否,在客户端模式中,驱动程序和AM 单独的进程并存在于不同的计算机中,因此内存不需要组合,但spark.yarn.am.memory
+ some overhead
应小于YARN容器内存(yarn.nodemanager.resource.memory-mb
)。如果超过YARN,资源管理器将终止容器。
在客户端模式下,驱动程序内存是否包含在应用程序主内存设置中?
此处spark.driver.memory
必须小于启动spark应用程序的机器中的可用内存。
但是,在群集模式下,使用
spark.driver.memory
代替spark.yarn.am.memory
。
spark.yarn.am.memory
:512米(默认值)在客户端模式下用于YARN Application Master的内存量,格式与JVM内存相同 字符串(例如
512m, 2g
)。在群集模式下,使用spark.driver.memory
代替。使用小写后缀,例如对于kibi-,k, m, g, t
和p
, mebi-,gibi-,tebi-和pebibytes分别。
答案 1 :(得分:3)
在客户端模式下,驱动程序直接在spark-submit即客户端程序中启动。要在群集中的任何一个节点中创建的应用程序主服务器。 spark.driver.memory(+内存开销)小于机器的内存。
在群集模式下,驱动程序在群集中任何节点的应用程序主服务器内运行。
https://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/