我在 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 的内存,请看截图:
有人能解释一下为什么分配的内存这么少吗?
最佳答案
UI 中的存储内存列显示用于执行和 RDD 存储的内存量。默认情况下,这等于 (HEAP_SPACE - 300MB) * 75%。其余的内存用于内部元数据、用户数据结构和其他内容。
您可以通过设置 spark.memory.fraction
来控制这个数量。 (不建议)。查看更多 Spark's documentation
关于apache-spark - yarn : Less executor memory than set via spark-submit 上的 Spark ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38347036/