spark.executor.memoryOverhead 和 spark.memory.offHeap.size 之间的区别

difference between spark.executor.memoryOverhead and spark.memory.offHeap.size

当我在Spark configuration中搜索堆外时,有两个相关的属性(spark.executor.memoryOverheadspark.memory.offHeap.size),我不确定这两者之间的关系。

如果我启用 spark.memory.offHeap.enabledspark.memory.offHeap.size 会成为 spark.executor.memoryOverhead 的一部分吗?或者这两种堆外内存是独立的(因此总的堆外内存是两者之和)

在这里查看我的完整答案:

简答:从当前的 Spark 版本 (2.4.5) 开始,如果您指定 spark.memory.offHeap.size,您还应该将此部分添加到 spark.executor.memoryOverhead。例如。你设置spark.memory.offHeap.size为500M,你有spark.executor.memory=2G,那么默认的spark.executor.memoryOverheadmax(2*0.1, 384)=384M,但你最好将memoryOverhead增加到[=17] =].