的价值spark.yarn.executor.memoryOverhead在带有 YARN 的 Spark 作业中,应该分配给 App 还是只分配最大值?

答案

spark.yarn.executor.memoryOverhead

只是最大值。目标是将 OVERHEAD 计算为 RDD 和 DataFrame 所使用的实际执行程序内存的百分比

--executor-memory/spark.executor.memory

控制执行器堆大小,但 JVM 也可以使用堆外的一些内存,例如用于内部字符串和直接字节缓冲区。

的价值spark.yarn.executor.memoryOverhead属性被添加到执行器内存中,以确定每个执行器对 YARN 的完整内存请求。

执行器将根据以下属性使用内存分配spark.executor.memory加上由以下定义的开销spark.yarn.executor.memoryOverhead

来自: stackoverflow.com