hadoop偽分散式DataNode無法啟動
阿新 • • 發佈:2019-02-09
start-dfs.sh一直啟動不了DataNode,仔細檢查了幾遍配置檔案都沒有發現什麼問題,有format了好幾次也不行。看DataNode的日誌發現這個:
java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop/tmp/dfs/data: namenode clusterID = CID-a9dce729-7647-41bb-8ec1-503d1525b774; datanode clusterID = CID-157f0edd-80b0-47f2-931a-f86bc947db23 at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:722) at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadStorageDirectory(DataStorage.java:286) at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadDataStorage(DataStorage.java:399) at org.apache.hadoop.hdfs.server.datanode.DataStorage.addStorageLocations(DataStorage.java:379) at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:544) at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1690) at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1650) at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:348) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:280) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816) at java.lang.Thread.run(Thread.java:748)
看樣子像是DataNode和NameNode的clusterID不匹配導致的,最後在hdfs-site.xml裡配置的dfs.datanode.data.dir路徑下有個VERSION檔案,把裡面的clusterID修改成和dfs.namenode.name.dir路徑下的VERSION裡的clusterID一致。OK!啟動成功。
原因呢,在網上查了下,是因為執行格式化命令(hdfs namenode -format)時會重新生成namenode的clusterID,而datanode的clusterID還是舊的沒有改變。