Spark 内存开销

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

Spark内存开销相关问题在SO中多次被问到,我经历了其中的大部分。然而,在浏览了多个博客后,我感到困惑。

以下是我的疑问

  • 内存开销是否是执行程序内存的一部分,或者是 分离? 正如很少有博客说内存开销是 执行器内存和其他人说执行器内存+内存 开销(这意味着内存开销不是执行器的一部分 记忆)?
  • 内存开销和堆外开销是一样的吗?
  • 如果我没有提及开销作为开销的一部分,会发生什么? Spark-submit,它会采用默认的18.75还是不会?
  • 如果我们给予比默认值更多的内存开销,会不会有任何副作用?

https://docs.qubole.com/en/latest/user-guide/engines/spark/defaults-executors.html https://spoddutur.github.io/spark-notes/distribution_of_executors_cores_and_memory_for_spark_application.html

下面是我想了解的案例。 我有5个节点,每个节点16个vcore和128GB内存(其中120个可用),现在我想提交spark应用程序,下面是conf,我在想

Total Cores 16 * 5 = 80
Total Memory 120 * 5 = 600GB

情况1:执行器内存的内存开销部分

spark.executor.memory=32G
spark.executor.cores=5
spark.executor.instances=14 (1 for AM)
spark.executor.memoryOverhead=8G ( giving more than 18.75% which is default)
spark.driver.memoryOverhead=8G
spark.driver.cores=5

情况 2:内存开销不属于执行器内存

spark.executor.memory=28G
spark.executor.cores=5
spark.executor.instances=14 (1 for AM)
spark.executor.memoryOverhead=6G ( giving more than 18.75% which is default)
spark.driver.memoryOverhead=6G
spark.driver.cores=5

根据下面的视频,我尝试使用 85% 的节点,即 120GB 中的 100GB 左右,不确定我们是否可以使用更多。

https://www.youtube.com/watch?v=ph_2xwVjCGs&list=PLdqfPU6gm4b9bJEb7crUwdkpprPLseCOB&index=8&t=1281s (4:12)

apache-spark pyspark hadoop-yarn executor memory-overhead
2个回答
12
投票

回答你的问题内存开销是执行器内存的一部分还是单独的内存开销不属于执行器内存。

资源管理器启动容器以在其中执行执行器。所以基本上执行程序内存+内存开销=容器内存..... Spark已将执行程序内存分解为应用程序内存和缓存内存。

执行器内存开销主要包括堆外内存和nio缓冲区以及用于运行容器特定线程(线程堆栈)的内存。 当您不指定内存开销时,资源管理器将使用默认值计算内存开销值并相应地启动容器。

始终建议为操作系统保留核心和内存(1个核心用于nodemanager,1个核心用于其他守护进程,2个核心用于操作系统最佳工作)

您可以像下面提到的那样更改您的计算 12 * 5 = 60 个核心,总内存 116 * 5 = 580GB 是可用资源总量..然后相应地调整其他参数。


0
投票
  1. 内存开销不属于执行器内存的一部分。执行器内存由
    spark.executor.memory
    设置。内存开销是容器内存的一部分。
  2. 内存开销和
    spark.memory.offHeap.size
    定义的内存量都在JVM堆之外分配。下图来自下面提到的媒体文章,清楚地描述了两者的定义和用法。 off-heap mem splitup
  3. 所使用的内存开销量将有一个“默认值”: 最大(执行器内存 * spark.executor.memoryOverheadFactor,384 MiB)
    由于这部分是从堆外内存分配的,因此不会有任何垃圾收集。所以我们在管理内存时可能必须小心。
  4. 参考:
https://medium.com/walmartglobaltech/decoding-memory-in-spark-parameters-that-are-often-confused-c11be7488a24

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