啟動日志信息如下:
2018-03-25 17:33:28,100 WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Incompatible clusterIDs in /home/hadoop/app/tmp/dfs/data: namenode clusterID = CID-db3967a5-76bb-4c76-81db-568a85b1919f; datanode clusterID = CID-a00a7911-de1c-43c4-83ce-d29cc681a7ee
2018-03-25 17:33:28,101 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool (Datanode Uuid unassigned) service to hadoop000/192.168.1.9:8020. Exiting.?java.io.IOException: All specified directories are failed to load.
從日志中可以看出,原因是因為datanode的clusterID 和 namenode的clusterID 不匹配。
解決辦法:打開hdfs-site.xml里配置的datanode和namenode對應(yīng)的目錄炒瘟,分別打開current文件夾里的VERSION,可以看到clusterID項正如日志里記錄的一樣盖灸,確實不一致盟榴,修改datanode里VERSION文件的clusterID 與namenode里的一致酬诀,再重新啟動dfs(執(zhí)行start-dfs.sh)再執(zhí)行jps命令可以看到datanode已正常啟動脏嚷。
原因:在第一次格式化dfs后,啟動并使用了hadoop瞒御,后來又重新執(zhí)行了格式化命令(hdfs namenode -format)父叙,這時namenode的clusterID會重新生成,而datanode的clusterID 保持不變