出现其中任何一个问题,另一个问题大概率也会出现,也就是说二者出现问题的原因是一样的。
一般来说,到这一步其他的配置因该是没有问题的。
网上有很多办法:1.更改 /etc/host 下的映射
2.更改 core-site.xml 文件路径
3.更改 yarn-site.xml 里面的运行内存
4.更改集群分布式为本地模式(可以运行,但没有意义)
等等。。。。。
上面的办法我都有试过,虽然没有解决问题,但并不能说是错的,可以尝试,如果没有解决的话可以试试下面的办法。
造成这样问题的原因是:
hadoop 默认检查磁盘状况,一旦超过默认的90%就会导致数据节点拒绝执行mapreduce,通过在yarn-site.xml 设置更大的阈值,延迟节点拒绝mapreduce的情况。
解决办法
在 yarn-site.xml文件中添加以下内容:
<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>
可以重起集群,不重启也能立即生效
更多细节问题可以参考原作者 重磅 解决 hadoop job 卡死 根源问题 - 简书 (jianshu.com)