您的位置:首页 > Web前端 > Node.js

hadoop2.2.0 nodemanager启动后失败分析!!!

2014-04-16 00:00 405 查看
摘要: 在安装好haoop2.2.0后,发现nodemanager启动一段时间后会自动失败。然后检查日志,终于发现原来是与master节点通信失败造成的,然后将配置文件中默认master的ip换成部署环境中的ip地址,解决了问题!!!

在安装好hadoop2.2.0集群后,依次执行start-dfs.sh和start-yarn.sh脚本启动hadoop相关的服务。各个服务均能正常启动。但是过了一段时间后会发现nodemanager会自动失败退出。

检查日志信息发现一直报本机与一个0.0.0.0的连接失败,然后继续与进行通信尝试一段时间后nodemanager失败。具体信息如下:
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.ConnectException: Call From node2/222.18.159.123 to 0.0.0.0:8031 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
Caused by: java.net.ConnectException: Call From node2/222.18.159.123 to 0.0.0.0:8031 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused


通过检查配置文件知道8031端口出现在yarn-site.xml配置文件的yarn.resourcemanager.scheduler.address配置项中。yarn.resourcemanager.scheduler.address 是resourcemanager暴漏给nodemanager的地址和端口。nodermanager利用这个地址通过心跳机制与RM通信。
正常情况下我的NM应该与RM通信,但是NM却一直与0.0.0.0通信.因此查阅官方默认的yarn-site.xml配置文件,发现其中yarn.resourcemanager.hostname的默认值被设置成:0.0.0.0了(怪不得一直与0.0.0.0通信)。发现原来是我设置的主机ip在这里没有生效。
在yarn-site.xml中添加一项新的项,将yarn.resourcemanager.hostname的值修改为master机器的ip地址。



重启hadoop服务,一切正常!!!

注:nodemanager启动后要通过心跳机制定期与RM通信,否则RM会认为NM死掉,会停止NM的服务。
同时通过这次失败提醒出现问题要多去尝试(我几乎把网上的方法试了个遍。。。。。。)多参考官方文档。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息