有時(shí)候因?yàn)樽约旱囊恍╁e(cuò)誤修改,導(dǎo)致Hadoop集群總是有些節(jié)點(diǎn)啟動(dòng)不起來(lái)。
這是就需要重新格式化HDFS,在重啟。
但是重新格式化會(huì)導(dǎo)致一個(gè)問(wèn)題,就是以前的namenode中已經(jīng)記錄了datanode的namespaceId了,重新啟動(dòng)會(huì)給datanode另一個(gè)Id,導(dǎo)致最終啟動(dòng)集群的時(shí)候,datanode總是啟動(dòng)不起來(lái)。
解決辦法:
先刪除namenode歷史的文件,再格式化重啟。
直接刪除namenode的配置文件目錄,在重新format
1,rm -rf ../hdfs/na*
2,./hadoop namenode -format
這時(shí)還需要將現(xiàn)在的新的datanode的namespaceId修改為以前的id。即和namenode的namespaceId一致。
可以在重啟直接先記下來(lái)。在hdfs.site.xml配置了datanode的目錄
找到current/version就可以看到namenode了。
或者可以先直接運(yùn)行 bin/start-all.sh命令,啟動(dòng)完,在hadoop/logs目錄下查看namenode的log文件,里面會(huì)報(bào)錯(cuò),指出來(lái)namenode里面的datanode對(duì)不上。
再回到current/version,將datanode的namespaceId修改和namenode一致即可。