./start-dsf.sh(启动hdsf)失败

启动日志信息如下:

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对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致,修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-dfs.sh)再执行jps命令可以看到datanode已正常启动。

原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变

你可能感兴趣的:(./start-dsf.sh(启动hdsf)失败)