“ spark.yarn.executor.memoryOverhead”与“ spark.memory.offHeap.size之间的差异”

问题描述 投票:1回答:1

我在纱线上生出火花。我不明白以下设置spark.yarn.executor.memoryOverheadspark.memory.offHeap.size之间有什么区别。两者似乎都是用于分配堆外内存以激发执行程序的设置。我应该使用哪一个?另外,对执行程序堆内存的推荐设置是什么?

非常感谢!

apache-spark yarn
1个回答
0
投票
  1. spark.yarn.executor.memoryOverhead在StaticMemoryManager中使用。在较旧的Spark版本(如1.2)中使用。

每个执行者要分配的堆外内存量(以兆字节为单位)。这是内存,用于解决VM开销,内部字符串,其他本机开销等问题。随着执行程序大小的增加(通常为6%至10%),该内存通常会增加。

您可以在较旧的Spark文档中找到此文档,例如Spark1.2文档:

https://spark.apache.org/docs/1.2.0/running-on-yarn.html

  1. [spark.memory.offHeap.size用于UnifiedMemoryManager,在版本1.6之后默认使用]

可用于堆外分配的绝对内存量(以字节为单位)。此设置对堆内存使用没有影响,因此,如果执行者的总内存消耗必须在某个硬限制内,那么请确保相应地缩小JVM堆大小。当spark.memory.offHeap.enabled = true时,必须将此值设置为正值。

您可以在最新的Spark文档中找到此文档,例如Spark2.4文档:

https://spark.apache.org/docs/2.4.4/configuration.html
© www.soinside.com 2019 - 2024. All rights reserved.