Spark 执行器内存开销

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

从这个博客中,我了解到每个执行器内都有保留的内存,相当于恒定的300MB。在 Spark 1.6 的文章中,该保留内存的值据说是可变的,但需要重新编译 Spark。在 Spark 配置 docs 中,有

spark.executor.memoryOverhead
,此配置是从 Spark 2.3 开始引入的。这个配置是否决定了Spark 1.6+版本中很难更改的保留内存的大小?如果不是的话这个配置是用来做什么的?

apache-spark pyspark apache-spark-sql
1个回答
0
投票
  1. spark.executor.memoryOverhead 并不决定保留内存的大小。
  2. Spark执行器的总堆外内存由spark.executor.memoryOverhead控制。直到Spark 3.x,总堆外内存由该配置确定,这包括spark用于缓存的空间数据框。从 Spark 3.x 开始,情况并非如此。该配置仅确定用于字符串驻留、JVM 开销和资源管理的堆外空间,但不确定可用于缓存数据帧的堆外空间。

参考资料: https://medium.com/walmartglobaltech/decoding-memory-in-spark-parameters-that-are-often-confused-c11be7488a24 “spark.yarn.executor.memoryOverhead”和“spark.memory.offHeap.size”之间的区别

© www.soinside.com 2019 - 2024. All rights reserved.