<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    badqiu

    XPer
    隨筆 - 46, 文章 - 3, 評論 - 195, 引用 - 0
    數據加載中……

    hadoop 集群升級失敗記錄

    一.錯誤概述

     

    因為需要使用hadoop與hbase結合使用,所以需要為hadoop hdfs升級使用append寫模式。需要對現有的hadoop 0.20.1 升級至0.20.205.0; 升級過程簡單的使用 hadoop namenode -upgrade 從 -18 version => -32version(這個是dfs/name/current/VERSION).但我們發現0.20.205跟hive不兼容,所以又安裝facebook的hadoop版本(-30版本)。

     

    整個升級流程簡單來說就是: dfs/name/current/VERSION -18 => -32 => -30. 升級再回滾的過程。

     

     

    二. namenode錯誤處理過程

    1。啟動namenode失敗(第一個錯誤):

     

    org.apache.hadoop.hdfs.server.common.IncorrectVersionException: Unexpected version of storage directory /data/hadoop-tmp/hadoop-hadoop/dfs/name. Reported: -32. Expecting = -30.
     at org.apache.hadoop.hdfs.server.common.Storage.getFields(Storage.java:662)
     at org.apache.hadoop.hdfs.server.namenode.FSImage.getFields(FSImage.java:741)
     at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.read(Storage.java:238)
     at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.read(Storage.java:227)
     at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:453)
     at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:158)
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:386)
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:361)
     at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:274)
     at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:385)
     at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1419)
     at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1428)

     

     

    解決辦法:

    在namenode節點運行:

     hadoop namenode -rollback

    將-32版本回滾至 -18版本

     

     

    2。繼續啟動namenode(第二個錯誤):

     

    org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /data/hadoop-tmp/hadoop-hadoop/dfs/name is in an inconsistent state: file VERSION has image MD5 digest when version is -18
     

    解決辦法:

    將dfs/name/current/VERSION中的 imageMD5Digest 注釋掉,不進行MD5完整性檢查。

     

    3。再將升級-18 => -30版本

     

    hadoop namenode -upgrade

     

    這樣namenode已經啟動成功。

    三.datanode錯誤處理過程

    1。啟動datanode

     

    2011-12-12 18:06:18,544 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Failed to start datanode org.apache.hadoop.hdfs.server.common.IncorrectVersionException: Unexpected version of storage directory /data/hadoop-tmp/hadoop-hadoop/dfs/data. Reported: -32. Expecting = -30.
     

    解決辦法:

     

    hadoop datanode -rollback

     

    回滾至 -18版本,再升級至-30版本.

    hadoop datanode -upgrade

    2. 繼續啟動datanode

     

    11/12/12 19:34:26 INFO datanode.DataNode: Failed to start datanode org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /data/hadoop-tmp/hadoop-hadoop/dfs/data is in an inconsistent state: previous and previous.tmp cannot exist together.
     at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:427)
     at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:113)
     at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:332)
     at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:249)
     at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1528)
     at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1477)
     at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1485)
     at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1626)

     

    解決辦法:

    直接查看源碼,發現Storage$StorageDirectory.analyzeStorage()完全是進行相關目錄的狀態檢查。而且跟生產環境的hadoop集群對比,發現沒有previous,previous.tmp 兩個目錄(是升級的備份文件),所以將這兩個目錄重命名。然后繼續啟動datanode成功。

    最后通過  hadoop namenode -finalize 來結束此次升級,以便刪除升級的備份文件

     

    四.本次處理總結:

    1. 對你的hadoop namenode數據及時做好備份,不管是否是測試集群

    2. 查看hadoop源碼吧,有時處理問題還是得看源碼,因為在google上搜索,資料還是相當少的。

     

     

     

     

    posted on 2011-12-12 20:30 badqiu 閱讀(3085) 評論(2)  編輯  收藏

    評論

    # re: hadoop 集群升級失敗記錄  回復  更多評論   

    學習了,方法好
    2011-12-12 22:15 | tbw淘寶

    # re: hadoop 集群升級失敗記錄  回復  更多評論   

    學習了
    2011-12-13 11:01 | tb

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲日本香蕉视频观看视频| 亚洲AV无码第一区二区三区| 亚洲人成图片网站| 狼群影院在线观看免费观看直播| 亚洲AV区无码字幕中文色| 免费无码一区二区三区蜜桃| 精品亚洲永久免费精品| 国产一区二区三区免费| 亚洲专区在线视频| 免费A级毛片av无码| 亚洲熟妇无码爱v在线观看| 99爱在线观看免费完整版| 亚洲成在人线中文字幕| 99久久免费国产精品特黄| 亚洲精品无码永久在线观看男男| 麻豆国产人免费人成免费视频| 色偷偷亚洲第一综合| 亚洲国产精品成人久久蜜臀 | 国产亚洲漂亮白嫩美女在线 | 亚洲剧情在线观看| 男女交性永久免费视频播放| 国产精品无码亚洲精品2021| 国产亚洲人成A在线V网站| 亚洲视频在线免费观看| 国产日本亚洲一区二区三区| 国产成人精品免费视频大全五级| 深夜免费在线视频| 亚洲第一福利视频| 成人毛片18女人毛片免费96| 精品亚洲国产成人av| 好看的亚洲黄色经典| 一二三四在线观看免费高清中文在线观看| 亚洲日本中文字幕天天更新| 4338×亚洲全国最大色成网站| 免费国产污网站在线观看15| 亚洲成av人无码亚洲成av人| 欧洲亚洲国产清在高| 免费观看理论片毛片| 水蜜桃视频在线观看免费播放高清 | 亚洲一区二区女搞男| 曰批全过程免费视频网址|