<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无码网址| 日本一道一区二区免费看| 亚洲三区在线观看无套内射| 爱情岛论坛免费视频| 亚洲A∨精品一区二区三区| WWW亚洲色大成网络.COM| 免费国产怡红院在线观看| 美女黄网站人色视频免费| 亚洲高清视频一视频二视频三| 水蜜桃视频在线观看免费| 亚洲国产精品一区二区第一页免| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 免费看国产一级特黄aa大片| 国产午夜亚洲精品不卡免下载| 国产免费看插插插视频| 日韩精品视频在线观看免费 | 国产大片91精品免费观看男同| 亚洲日韩国产欧美一区二区三区| 国产成人免费a在线资源| 美女视频免费看一区二区| 在线观看亚洲天天一三视| 国产情侣久久久久aⅴ免费| 亚洲黄色免费观看| 四虎影院在线免费播放| 青青草97国产精品免费观看| 亚洲精品成人无限看| 免费毛片a在线观看67194| 国产精品亚洲一区二区三区| 亚洲国产另类久久久精品黑人| 18女人腿打开无遮掩免费| 春暖花开亚洲性无区一区二区| 亚洲中文字幕不卡无码| 青青青免费国产在线视频小草| 日韩精品亚洲专区在线影视| 亚洲AV人无码综合在线观看| 无码专区永久免费AV网站| 岛国岛国免费V片在线观看 | 免费一看一级毛片| 日本在线看片免费| 99亚洲精品卡2卡三卡4卡2卡| 亚洲国产精品特色大片观看完整版|