我使用以下设置在YARN群集(HDP 2.4)中使用Spark:
当我使用命令spark-submit --num-executors 10 --executor-cores 1 --executor-memory 5g ...
运行我的spark应用程序时,Spark应该为每个执行程序提供5 GB的RAM(由于某些开销内存约为10%,我将内存仅设置为5g)。
但是当我查看Spark UI时,我看到每个执行程序只有3.4 GB内存,请参见截图:
有人可以解释为什么分配的内存会减少吗?
答案 0 :(得分:3)
UI中的存储内存列显示用于执行和RDD存储的内存量。默认情况下,这等于(HEAP_SPACE - 300MB)* 75%。内存的其余部分用于内部元数据,用户数据结构和其他内容。
您可以通过设置spark.memory.fraction
(不推荐)来控制此金额。请参阅Spark's documentation