我正在尝试运行一个简单的 pig 脚本,该脚本在 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 中可用
最佳答案
看起来该集群上 YARN 容器的默认大小(1 GB RAM)对于您的工作来说太小了。
但不清楚显示的 YARN 错误是与 Shell 操作(运行 grunt)有关还是与子 MapReduce 执行有关。
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,如果它有帮助......
关于hadoop - pig : Container is running beyond physical memory limits in cdh 5 using oozie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31921990/