问题描述:
DataNode无法正常启动
通过查看日志(hadoop-2.8.3/logs/hadoop-hadoop-datanode-slave1.log)发现:
WARN org.apache.hadoop.hdfs.server.common.Storage: Failed to add storage directory [DISK]file:/usr/local/hadoop-2.8.3/dfs/datanode/
java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop-2.8.3/dfs/datanode: namenode clusterID = CID-877bad04-07bc-4e36-98c5-21b7d9f62bf0; datanode clusterID = CID-d471383b-fd8a-4669-8c6e-55a013ac052a
问题原因:
多次格式化HDFS导致。当我们执行格式化时,会在生成一个current/VERSION文件,记录namespaceID,标志了所有格式化的namenode版本。如果多次格式化namenode,那么datanode中保存的current/VERSION文件只是第一次格式化时保存的namenode的ID,从而造成namenode和datanode之间的ID不一致。
解决方案
清空所有节点下的current文件夹(在hadoop-2.8.3目录下)
master节点:
rm dfs/namenode/current/*
slave节点:
rm dfs/datanode/current/*
重新进行格式化
bin/hadoop namenode -format
成功解决