"spark.yarn.executor.memoryOverhead"设置的值?

The value of "spark.yarn.executor.memoryOverhead" setting?

使用 YARN 的 Spark 作业中 spark.yarn.executor.memoryOverhead 的值应该分配给 App 还是仅分配最大值?

spark.yarn.executor.memoryOverhead

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

--executor-memory/spark.executor.memory

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

价值spark.yarn.executor.memoryOverhead 属性 被添加到执行器内存中,以确定每个执行器对 YARN 的完整内存请求。它默认为 max(executorMemory * 0.10,最小值为 384)。

执行程序将使用基于 spark.executor.memory 的 属性 加上 spark.yarn.executor.memoryOverhead

定义的开销的内存分配