hadoop營運之三datanode被迫的升級

來源:互聯網
上載者:User

       由於最近叢集xcievers錯誤頻頻發生,已經到了影響叢集正常運營的地步,於是決定修改叢集所有的datanode節點的配置,並重啟datanode,欲添加的配置項如下:

   <property>             <name>dfs.datanode.max.xcievers</name>             <value>256</value>     </property> 

       修改完設定檔後,在重啟datanode時發生了麻煩,datanode開機記錄報出了版本不一致錯誤,詳細日誌如下:

2012-07-10 16:39:14,991 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: /************************************************************STARTUP_MSG: Starting DataNodeSTARTUP_MSG:   host = STARTUP_MSG:   args = []STARTUP_MSG:   version = 0.20.203.0STARTUP_MSG:   build = http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203 -r 1099333; compiled by 'oom' on Wed May  4 07:57:50 PDT 2011************************************************************/2012-07-10 16:39:15,244 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties2012-07-10 16:39:15,268 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered.2012-07-10 16:39:15,270 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).2012-07-10 16:39:15,270 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started2012-07-10 16:39:15,412 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered.2012-07-10 16:39:15,557 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Incompatible build versions: namenode BV = ; datanode BV = 10993332012-07-10 16:39:15,662 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible build versions: namenode BV = ; datanode BV = 1099333        at org.apache.hadoop.hdfs.server.datanode.DataNode.handshake(DataNode.java:528)        at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:331)        at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:268)        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1480)        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1419)        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1437)        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1563)        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1573)2012-07-10 16:39:15,663 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: 

         datanode在擷取namenode版本時出錯,無法擷取到namenode的版本。
         分別嘗試了一下解決辦法:

        1)重新安裝hadoop,失敗

        2)對比hadoop datanode檔案儲存體目錄中的storage檔案,對比其中的namespace id和storage id,沒有發現異常,失敗

        3)修改hdfs-site.xml配置,將資料存放區目錄修改為建立檔案夾,啟動datanode,失敗

        4)查看namenode的開機記錄,發現namenode最後一次啟動時,版本升級為:0.20.203.1-snapshot,⊙﹏⊙b汗

              看來是前段時間做hadoop叢集維護時重啟了namenode,且有人自行編譯了hadoop源碼,產生了hadoop 目錄下build檔案夾下面產生了新的hadoop版本,hadoop啟動時會預設優先選擇build目錄下的版本,可能由於203.1版本相對203.0版本改動較小,所以在namenode啟動後一直正常運行,整個hadoop叢集也沒有發生異常,一直到重啟datanode時,datanode 的hadoop版本是203.0和namenode版本不一致,啟動失敗。

       找到了問題的根源,解決辦法也就相應出來了:

      1)降級namenode,缺點:需要停止服務,不確定性因素太多(降級可能會導致所有資料丟失),測試周期長且複雜;優點:只要操作一個節點

      2)升級所有的datanode,缺點:需要操作叢集所有機器(也可以只升級單台機器);優點:測試簡單,風險小

      很明顯,第二種方案是優選方案,測試過程如下:

       1)找一台採集伺服器,上面已經部署了hadoop用戶端,啟動datanode,成功,日誌資訊顯示版本為:203.1

       2)刪除build目錄,再次啟動datanode,失敗

       3)恢複build目錄,再次啟動datanode,成功

       4)將build目錄拷貝到出錯的datanode上,修改hdfs-site.xml配置,將data目錄修改為建立目錄,啟動datanode,成功

       5)將data目錄修改為最原始的配置,啟動datanode,成功

       第二種方案測試成功,在namenode上運行fsck命令,正常輸出。

      於是升級整個叢集,到目前為止,叢集運行正常。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.