问题描述:
当搭建好hadoop分布式环境测试运行MapReduce程序时有时会遇到MapReduce任务卡住,shell界面停在RunningJob后不动的情况,这种时候应当如何解决呢?
原因分析:
正常情况下一个Job被提交上去后需要经历资源分配的过程,这往往需要数秒钟的时间,但通常不会过长,在Hadoop2.X中Yarn负责管理资源的分配和调度,那么大概率是Yarn资源分配过程遇到了毛病。
解决方案:
1、查看Hadoop详细日志
可以通过Hadoop前端web页面(一般为50070端口)查看刚才各个节点的日志文件,寻找目前的出错情况。
2、修改yarn-site.xml文件
既然是yarn的问题,那么很有可能是yarn-site.xml文件配置出错,仔细检查每一项配置是否多标点少标点,打错字母等等。
图片仅仅作为示例,根据自己配置情况进行检查。
3、检查Yarn WEB前端
我之前遇到过yarn前端出现了unhealthy node的情况
出现此种情况一般是由于系统资源不足导致yarn无法正常拉起来,可以看到上面的资源情况是异常的,这时候可以清理下各个结点上的空间或者更改下yarn的健康检查判定
<property>
<name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name>
<value>0.0</value>
</property>
<property>
<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
<value>100.0</value>
</property>
通过修改上下限避免它的检查报错。