之前不懂犯了个低级错误,导致datanode只能启动一个;很是奇怪;
首先,之前多次将namenode格式化,导致namenode和datanode的clusterID不一致无法启动datanode
注:clusterID在/usr/local/hadoop/hdfs/name/current目录下;
解决方案:修改Shadoop1 和 Shadoop2 的data/current目录下的VERSION文件,将clusterID修改一致即可;
结果呢我胡乱修改一通,将 storageID和 datanodeUuid也改成一样的了,结果会怎么样?
你上传文件至hdfs会报错误:Exception in createBlockOutputStream java.io.IOException
.....Excluding datanode 192.168.85.11:50010最后告诉你有一个datanode成功了
这我就不明白为什么有一个节点被exclude了,输入命令 bin/hdfs dfsadmin -report 看到只有一个datanode,分别登录两个datanode发现都是启动的。
登录50070查看这一个活动的datanode不断的切换。http://192.168.85.10:50070/dfshealth.html#tab-datanode(不断刷新可以看到)有时候datanode会死掉,但是绝不会显示在dead nodes这一栏。
苦寻答案无果,我就这么处理了:
1、删除了tmp,logs,hdfs/data,hdfs/name 目录下的所有文件;
2、重新格式化namenode: bin/hdfs namenode -format;重启集群OK;
SO:只要修改storageID和 datanodeUuid这两个ID不一样就可以了吧。如果你也遇到上面的情况,不妨试试。