Pig : 容器在 cdh 5 中使用 oozie 运行超出物理内存限制

Posted

技术标签:

【中文标题】Pig : 容器在 cdh 5 中使用 oozie 运行超出物理内存限制【英文标题】:Pig : Container is running beyond physical memory limits in cdh 5 using oozie 【发布时间】:2015-08-10 14:17:31 【问题描述】:

我正在尝试运行一个简单的猪脚本,该脚本在 grunt shell 中运行 f9 但不能与 oozie 一起使用,得到如下错误:

容器 [pid=2617,containerID=container_1438923434512_12103_01_000002] 运行超出物理内存限制。当前使用情况:已使用 1.0 GB 的 1 GB 物理内存;使用了 2.9 GB 的 2.1 GB 虚拟内存。杀死容器。 container_1438923434512_12103_01_000002 的进程树转储..

实际上我正在通过 oozie 调用 shell 脚本,实习生调用 pig 脚本并得到类似的错误。

我怎样才能让它在 oozie 中可用

【问题讨论】:

【参考方案1】:

看起来该集群上 YARN 容器大小的默认值(1 GB RAM)对于您的工作来说太小了。

但尚不清楚显示的 YARN 错误是否与 Shell 操作(运行 grunt)或子 MapReduce 执行有关。

Plan A -假设是子 MapReduce 执行需要更多 RAM,在 grunt 脚本之上添加

set mapreduce.map.memory.mb    5120
set mapreduce.reduce.memory.mb 5120

参考:Pig documentation,YARN documentation

Plan B -如果真的是Shell动作需要更多RAM,在workflow.xml中添加一些配置

<action name="PiggyBack">
    <shell xmlns="uri:oozie:shell-action:0.2">
      <job-tracker>$jobTracker</job-tracker>
      <name-node>$nameNode</name-node>

      <configuration>
         <property>
            <name>oozie.launcher.mapreduce.map.memory.mb</name>
            <value>5120</value>
         </property>
      </configuration>

等等

参考:几个月前我自己从this question 发现了这个提示,所以我建议你给它一个+1 如果它有帮助......

【讨论】:

以上是关于Pig : 容器在 cdh 5 中使用 oozie 运行超出物理内存限制的主要内容,如果未能解决你的问题,请参考以下文章

Oozie pig action 更改工作 jar 的番石榴依赖项

安装Oozie4.1.0-cdh5.5.2

大数据平台搭建 - cdh5.11.1 - oozie安装

Oozie Spark on YARN requirement failed

在 Oozie 或 pig 运行时重命名文件夹

如何在 oozie 中将 pig 选项作为参数传递?