How/Where 设置限制以避免错误容器 运行 超出物理内存限制

How/Where to set limits to avoid error container running beyond physical memory limits

我知道此类问题已在一些帖子中得到解决,但我找不到提供具体 "how" 或 "where"

的答案

我正在使用 CDH5.2,运行ning 一个执行 shell 命令的 oozie 工作流。每次我 运行 它时,nodemanager 都会终止作业并显示错误:

Container [pid=6757,containerID=container_1424206993158_0001_01_000002] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 2.3 GB of 2.1 GB virtual memory used. Killing container

这是我的配置文件中的相关属性。不过,我显然遗漏了一些东西,所以我正在寻求有关此设置必须驻留的具体位置的指导。

纱-site.xml:

  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>2048</value>
  </property>

  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>8196</value>
  </property>

  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>8196</value>
  </property>

mapred-site.xml:

 <property>
    <name>mapreduce.map.memory.mb</name>
    <value>4096</value>
  </property>
  <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>8196</value>
  </property>
 <property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx3072m</value>
  </property>
  <property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx6144m</value>
  </property>

在 Cloudera Manager 5 中,您可以在以下位置修改这些 YARN 资源设置:

YARN > Configuration > Gateway > Resource Management
YARN > Configuration > ResourceManager > Resource Management
YARN > Configuration > NodeManager > Resource Management

记得在保存更改后重新启动服务并部署客户端配置(使用“配置”屏幕上的“操作”按钮)。

我遇到了同样的问题并解决了它,增加了两个内存分配:

YARN / Configuration / CATEGORY / Resource Management:

映射任务内存:

mapreduce.map.memory.mb

减少任务内存:

mapreduce.reduce.memory.mb