遇到了一直以来没有解决的问题,今天顺利的解决了:
1 集群启动一段时间Master就失去了和Slave的连接,显示Slave宕机了,ssh Slave1过后恢复正常,查看Slave的日志:显示:Call to ubuntu/192.168.0.1:9000 failed on connection exception: java.net.ConnectException: 拒绝连接,
解决办法:去掉Slave节点的/etc/hosts中 ::1 localhost6 Master 的声明,并且格式化 namenode和datanode,具体步骤如下:
比喻我的Hadoop中core-site中配置存放临时文件目录为:hadoop.tmp.dir:/usr/hadoop/tmp 则输入如下命名:
rm -rf /usr/hadoop/tmp
mkdir /usr/hadoop/tmp
rm -rf /tmp/hadoop*
这几个步骤一定要在每台从服务器上执行,如果只是在namenode上执行,那么就会导致namenode的namespaceID和datanode的namespaceID不一致,这样在使用Hadoop dfsadmin -report的时候会出现dfs不能加载的情况,并且使用Hadoop dfs会提示INFO ipc.Client:Retrying connect to server:localhost/Master.Hadoop :9000.Already tried 0 time(s)的信息,而且还要使用hadoop nomenode -format格式化master,
另外:如果使用hadoop nomenode -format格式化,那么Hadoop会在Hadoop.tmp.dir目录下的/dfs/name/current下面建立一个VERION文件夹,包含namespaceID,就是说会生成一个 新的namespaceID,如果在Slave上也执行hadoop nomenode -format,那么会导致Slave和master的namespaceID,这样会造成Hadoop停止出错!!!