【问题标题】:Pig programs just get stuck at a stage for no reason猪程序只是无缘无故地卡在一个阶段
【发布时间】:2016-05-20 13:24:09
【问题描述】:
我正在处理大小为 400 MB 的数据,该脚本有 5 个不同的部分并有 5 个存储命令,如果我一次只切换一个存储命令并评论所有其他命令,猪脚本的效果非常好。
但是如果所有 5 个存储命令都打开,则作业浏览器(色调)会卡在没有特定的阶段,然后它只是不断地重新尝试一个没有进度的作业。
没有错误,日志也没有错误和警告。
我认识到的问题可能是由于环境问题,因为脚本曾经使用 -M 属性也可以正常工作,但另一次失败了。
【问题讨论】:
标签:
hadoop
mapreduce
apache-pig
bigdata
【解决方案1】:
如果每个 STORE 数据都依赖于之前的 STORE,那么您可以在每个 STORE 之后使用 exec 命令。这将确保您的 STORE 命令在下一组命令 /STORE 之前完全执行。
A = ...
STORE A;
exec;
B = FOREACH A GENERATE ...
【解决方案2】:
错误是由于纱线使用的资源分配策略。
当您的磁盘已满时,它会导致您的节点变得不健康,从而减少内存。
目前,纱线调度程序(公平调度程序)只是将总可用内存平均分配给所有可用作业,并且没有检查在我的情况下确实发生的死锁。
解决方案是通过yarn改变调度,使用容量调度。