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 的番石榴依赖项