標籤:
Hadoop2.2.0啟動異常 – Incompatible clusterIDs2014年08月29日 ⁄ 綜合 ⁄ 共 2399字 ⁄ 字型大小 小 中 大 ⁄ 評論關閉今天啟動Hadoop2.2.0叢集後,發現datanode進程沒啟動,查看日誌發現如下報錯: 2014-05-15 14:46:50,788 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-2020521428-192.168.0.166-1397704506565 (storage id DS-432251277-192.168.0.166-50010-1397704557407)
service to singlehadoop/192.168.0.166:8020java.io.IOException: Incompatible clusterIDs in /home/casliyang/hadoop2/hadoop-2.2.0/metadata/data: namenode clusterID
= CID-2cc69ada-3730-4c79-8384-c725fa85859a; datanode clusterID
= CID-3e649eb6-cdb3-4a0c-aad8-5948c66bf282at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:391)at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:191)at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:219)at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:837)at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:808)at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:280)at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:222)at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:664)at java.lang.Thread.run(Thread.java:722) 上網查了下,有些文章說的解決辦法是刪掉資料檔案,格式化,重啟叢集,但這辦法實在太暴力,根本無法在生產環境實施,所以還是參考另一類文章的解決辦法,修改clusterID: step1:查看hdfs-site.xml,找到存namenode中繼資料和datanode中繼資料的路徑:<property> <name>dfs.namenode.name.dir</name> <value>file:///home/casliyang/hadoop2/hadoop-2.2.0/metadata/name</value></property><property> <name>dfs.datanode.data.dir</name> <value>file:///home/casliyang/hadoop2/hadoop-2.2.0/metadata/data</value></property> step2:開啟namenode路徑下的current/VERSION檔案:[email protected]:~/hadoop2/hadoop-2.2.0/metadata/name/current$ cat VERSION #Thu May 15 14:46:39 CST 2014namespaceID=1252551786clusterID=CID-2cc69ada-3730-4c79-8384-c725fa85859acTime=0storageType=NAME_NODEblockpoolID=BP-2020521428-192.168.0.166-1397704506565layoutVersion=-47 開啟datanode路徑下的current/VERSION檔案:[email protected]:~/hadoop2/hadoop-2.2.0/metadata/data/current$ cat VERSION #Thu Apr 17 11:15:57 CST 2014storageID=DS-432251277-192.168.0.166-50010-1397704557407clusterID=CID-3e649eb6-cdb3-4a0c-aad8-5948c66bf282cTime=0storageType=DATA_NODElayoutVersion=-47 我們可以看到,name節點中繼資料的clusterID和data節點中繼資料的clusterID不一致了,並且和報錯資訊完全對應上!接下來將data節點的clusterID修改成和name節點的clusterID一致,重啟叢集即可。
執行start-dfs.sh後,datenode沒有啟動