Apache spark 纱线火花:纱线客户机与纱线簇:火花驱动器内存差异

Apache spark 纱线火花:纱线客户机与纱线簇:火花驱动器内存差异,apache-spark,memory-management,yarn,heap-memory,hortonworks-data-platform,Apache Spark,Memory Management,Yarn,Heap Memory,Hortonworks Data Platform,我正在做一些基准测试,我还研究了Spark中的内存问题。运行Spark应用程序时,我发现Spark驱动程序进程的内存有所不同,这取决于运行该应用程序的部署模式 下表显示了我的Spark UI在应用程序的executors->driver部分显示的不同值。我设置了每个spark submit参数的驱动程序内存——驱动程序内存 --driver-memory parameter | yarn-client | yarn-cluster ========================

我正在做一些基准测试,我还研究了Spark中的内存问题。运行Spark应用程序时,我发现Spark驱动程序进程的内存有所不同,这取决于运行该应用程序的部署模式

下表显示了我的Spark UI在应用程序的executors->driver部分显示的不同值。我设置了每个spark submit参数的驱动程序内存——驱动程序内存

--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
我在互联网上找到一个计算结果(),说

driverMemory = (driver.memory * scalaOverhead - SystemReserved) * memoryFraction
             = (driver.memory * ~0.96 - 300) * 0.75
估计实际用于驱动程序进程的内存(没有用户内存的Spark内存)

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

我错过什么了吗