spark.executor.memoryOverhead 和 spark.memory.offHeap.size 之间的区别
difference between spark.executor.memoryOverhead and spark.memory.offHeap.size
当我在Spark configuration中搜索堆外时,有两个相关的属性(spark.executor.memoryOverhead
和spark.memory.offHeap.size
),我不确定这两者之间的关系。
如果我启用 spark.memory.offHeap.enabled
,spark.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.memoryOverhead
是max(2*0.1, 384)=384M
,但你最好将memoryOverhead
增加到[=17] =].
当我在Spark configuration中搜索堆外时,有两个相关的属性(spark.executor.memoryOverhead
和spark.memory.offHeap.size
),我不确定这两者之间的关系。
如果我启用 spark.memory.offHeap.enabled
,spark.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.memoryOverhead
是max(2*0.1, 384)=384M
,但你最好将memoryOverhead
增加到[=17] =].