Spark Driver内存和Application Master内存

时间:2018-05-18 00:03:33

标签: apache-spark hadoop yarn

我是否正确理解客户端模式的文档?

  1. 客户端模式是否与群集模式相对,其中驱动程序在应用程序主服务器中运行?
  2. 在客户端模式下,驱动程序和应用程序主机是独立的进程,因此spark.driver.memory + spark.yarn.am.memory必须小于机器的内存?
  3. 在客户端模式下,驱动程序内存不包含在应用程序主内存设置中吗?

2 个答案:

答案 0 :(得分:8)

  

客户端模式是否与群集模式相对,驱动程序在应用程序主服务器中运行?

,在

中通过YARN部署Spark应用程序时
  • 客户端模式,驱动程序将在已提交应用程序的计算机中运行,并且必须在网络中提供该计算机,直到应用程序完成。
  • 群集模式,驱动程序将在应用程序主服务器(每个spark应用程序一个)节点中运行,提交应用程序的计算机无需在提交后进入网络

客户端模式

Client mode

群集模式

Cluster mode

如果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, tp,     mebi-,gibi-,tebi-和pebibytes分别。

  
     

检查more about these properties here

答案 1 :(得分:3)

在客户端模式下,驱动程序直接在spark-submit即客户端程序中启动。要在群集中的任何一个节点中创建的应用程序主服务器。 spark.driver.memory(+内存开销)小于机器的内存。

在群集模式下,驱动程序在群集中任何节点的应用程序主服务器内运行。

https://blog.cloudera.com/blog/2014/05/apache-spark-resource-management-and-yarn-app-models/