hadoop 多次执行命令:
hadoop namenode -format
后,发现再次启动hadoop后,datanode节点无法正常启动
查看日志
java.io.IOException: Incompatible clusterIDs in /home/.../hadoop/tmp/dfs/data :namenode clusterID = CID-**** -*****-*****; datanode clusterID = CID -******-******;
当执行文件系统格式化时,会在namenode数据文件夹(即配置文件中dfs.name.dir在本地系统的路径)新生成一个current/VERSION文件,记录clusterID,标识了所格式化的 namenode的版本。
多次格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系统的路径)的current/VERSION文件只是你第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不一致。
所以,我直接将hadoop目录下的data1,data2,datalog1,datalog2,logs共5个文件夹全部删除,这样也就不用再去考虑如何使多个文件夹中的namenode的clusterID保持一致了(会自动生成与namenode一样的ID)
之后执行命令:hadoop namenode -format
之后继续:start-all.sh
运行之后使用jps命令查看,发现datanode节点可以正常启动。