格式化之后发现datanode无法启动,查看日志信息(hadoop文件夹下的logs中的hadoop-fay-datanode-fay-virtual-machine.log),其中有:
FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-1546255392-127.0.1.1-1438241902177 (storage id DS-891096424-127.0.1.1-50010-1438221870175) service to YARN001/192.168.115.133:8020
java.io.IOException: Incompatible clusterIDs in /tmp/hadoop-fay/dfs/data: namenode clusterID = CID-9849abd3-210c-452c-995c-f306e6928180; datanode clusterID = CID-d3dd080d-bdc7-482b-8081-fa59a9fb9bc6
以上提示信息显示了NameNode和DataNode的namespaceID不一致。
这个问题一般是由于两次或两次以上的格式化NameNode造成的,有两种方法可以解决,第一种方法是删除DataNode的所有资料(及将集群中每个datanode的/hdfs/data/current中的VERSION删掉,然后执行hadoopnamenode-format重启集群,错误消失。<推荐>);第二种方法是修改每个DataNode的namespaceID(位于/hdfs/data/current/VERSION文件中)<优先>或修改NameNode的namespaceID(位于/hdfs/name/current/VERSION文件中),使其一致。