前言
namenode启动了,但是datanode没有启动,查看日志文件logs的datanode
查看到warn警告,仔细阅读后发现日志报错原因是
2020-10-08 04:15:46,298 WARN org.apache.hadoop.hdfs.server.common.Storage: Failed to add storage directory [DISK]file:/export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas/
java.io.IOException: Incompatible clusterIDs in /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas: namenode clusterID = CID-2f09afac-b688-4da5-b214-b44b5195fb62; datanode clusterID = CID-3bdc9d55-c3c8-4849-84ca-5021ef795ee7
namenode的id和datanode的id不一致,猜测可能是因为格式化了多次namenode,因为每次格式化namenode会更新clusterID,但是datanode只会在首次格式化时确定,所以导致两个ID不一致,解决方法有多种如下:
解决方案
第一种:根据日志找到clusterID
先将
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas/current/VERSION
的clusterID复制替换到
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas/current/VERSION
下,然后再重启hadoop相关节点服务,最后DataNode可以正常运行
第二种:删除所有节点里的临时文件
删除
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas/
目录下的的current
1:cd到
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/datanodeDatas/
2:找到并rm -rf current
3:再进入到
/export/servers/hadoop-2.6.0-cdh5.14.0/sbin
启动hadoop相关节点服务,最后DataNode可以正常运行
下为运行正常后的效果图:
总结
提示:以上两种方法需要各位酌情使用
复制粘贴ID可能会有遗漏
第二种方法是直接删除文件,会导致数据丢失
所以不要轻易就格式化hadoop哦