gpt4 book ai didi

apache-spark - Spark Yarn 内存配置

转载 作者:行者123 更新时间:2023-12-04 16:08:14 24 4
gpt4 key购买 nike

我有一个 spark 应用程序,它总是因错误而失败:

"Diagnostics: Container [pid=29328,containerID=container_e42_1512395822750_0026_02_000001] is running beyond physical memory limits. Current usage: 1.5 GB of 1.5 GB physical memory used; 2.3 GB of 3.1 GB virtual memory used. Killing container."

我看到许多不同的参数被建议更改以增加物理内存。能否请我对以下参数进行一些解释?

  • mapreduce.map.memory.mb(当前设置为 0,所以假设采用默认值 1GB,所以我们将其视为 1.5 GB,更改它也会影响数字)

  • mapreduce.reduce.memory.mb(当前设置为 0,所以假设采用默认值 1GB,所以我们将其视为 1.5 GB,更改它也会影响数字)

  • mapreduce.map.java.opts/mapreduce.reduce.java.opts 设置为之前数字的 80%

  • yarn.scheduler.minimum-allocation-mb=1GB(当改变这个时我看到对最大物理内存的影响,但是对于值 1 GB 它仍然是 1.5G)

  • yarn.app.mapreduce.am.resource.mb/spark.yarn.executor.memoryOverhead 在配置中根本找不到。

我们正在使用 cloudera CDH 5.12.1 定义 YARN(以 yarn-cluster 部署模式运行)。

最佳答案

spark.driver.memory
spark.executor.memory

这些控制 spark 将尝试为其驱动程序和所有执行程序分配的基本内存量。如果内存不足,这些可能是您想要增加的。

// options before Spark 2.3.0
spark.yarn.driver.memoryOverhead
spark.yarn.executor.memoryOverhead

// options after Spark 2.3.0
spark.driver.memoryOverhead
spark.executor.memoryOverhead

此值是在 yarn 上运行 Spark 时请求的额外内存量。它旨在考虑托管 Spark 执行器的 yarn 容器所需的额外 RAM。

yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb

当 Spark 要求 Yarn 为执行程序保留一 block RAM 时,它会询问基本内存加上开销内存的值。然而,Yarn 可能不会返回一个恰好那个尺寸的。这些参数控制 YARN 将授予的最小容器大小和最大容器大小。如果您只将集群用于一项工作,我发现最简单的方法是将它们设置为非常小和非常大的值,然后使用上面提到的 spark 内存设置来设置真正的容器大小。

mapreduce.map.memory.mb
mapreduce.map.memory.mb
mapreduce.map.java.opts/mapreduce.reduce.java.opts

我认为这些对您的 Spark/Yarn 工作没有任何影响。

关于apache-spark - Spark Yarn 内存配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47701102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com