【发布时间】:2019-10-22 16:59:59
【问题描述】:
我有一个 spark 应用程序在出错时一直失败:
“诊断:容器 [pid=29328,containerID=container_e42_1512395822750_0026_02_000001] 运行超出物理内存限制。当前使用情况:使用了 1.5 GB 的 1.5 GB 物理内存;使用了 2.3 GB 的 3.1 GB 虚拟内存。正在杀死容器。”
我看到许多不同的参数被建议更改以增加物理内存。请问下面的参数可以解释一下吗?
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 部署模式运行)。
【问题讨论】: