Spark on YARN:yarn-client vs yarn-cluster:Spark Driver内存差异

时间:2017-05-12 06:53:21

标签: apache-spark memory-management yarn heap-memory hortonworks-data-platform

我正在做一些基准测试,而且我也关注Spark中的内存问题。在运行我的Spark应用程序时,我看到Spark驱动程序进程的内存不同,具体取决于我运行应用程序的部署模式。

下表显示了我的Spark UI在执行程序中显示的不同值 - >应用程序的驱动程序部分。我按照spark-submit参数设置驱动程序内存--driver-memory。

--driver-memory parameter   | yarn-client       | yarn-cluster
==================================================================
1g                          | 511.1 MB          | 511.9 MB
2g                          | 1247.3 MB         | 1140.4 MB
5g                          | 3.4 GB            | 3.1 GB
10g                         | 7.0 GB            | 6.4 GB
20g                         | 14.2 GB           | 13.1 GB

我在互联网上找到了一个计算(https://0x0fff.com/spark-memory-management/),说,

driverMemory = (driver.memory * scalaOverhead - SystemReserved) * memoryFraction
             = (driver.memory * ~0.96 - 300) * 0.75

估计实际用于驱动程序进程的内存(没有用户内存的Spark内存)。

这个计算非常适合我的纱线客户端模式!但是,正如您在表中看到的那样,两种模式之间的值不同,当我增加--driver-memory值时,差距会增大。

我在这里错过了什么吗?

0 个答案:

没有答案