Changes between Initial Version and Version 1 of Hinet110303/Demo1


Ignore:
Timestamp:
Mar 3, 2011, 1:23:41 PM (13 years ago)
Author:
jazz
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Hinet110303/Demo1

    v1 v1  
     1[[PageOutline]]
     2
     3== 狀況一:名稱空間不一致(namespaceID mismatch) ==
     4
     5 * [主因] 通常發生於不正確操作 !NameNode,多次重新 format !NameNode,導致 !NameNode 與 !DataNode 的 namespaceID 不一致。
     6 * [現象] 在 NameNode 管理介面(50070埠)看不到 Live Node。執行 jps 時看不到 !DataNode 或者 !DataNode 有跑,過一陣子就不見了。
     7 * [診斷] 觀察 ${hadoop.log.dir} 的 hadoop-${user.id}-datanode-${hostname}.log 應會出現錯誤訊息如下:
     8{{{
     9#!text
     102011-03-03 13:06:46,312 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode:
     11java.io.IOException: Incompatible namespaceIDs in C:\var\hadoop\dfs\data: namenode
     12namespaceID = 773481889; datanode namespaceID = 174598545
     13}}}
     14 * [解法] (1) 手動修改 ${hadoop.tmp.dir}/dfs/name/current/VERSION 改成跟現存 !DataNode 的namespaceID 一致,並重新啟動 !NameNode
     15 * [解法] (2) 手動修改 ${hadoop.tmp.dir}/dfs/data/current/VERSION 逐一把每個 !DataNode 的 namespaceID 改成跟新的 !NameNode 一致,並逐一重新啟動 !DataNode
     16{{{
     17#!diff
     18- namespaceID=773481889
     19+ namespaceID=174598545
     20}}}
     21
     22=== 在 hadoop4win 環境中模擬錯誤產生 ===
     23
     24 * 首先停掉目前正在運行中的 hadoop
     25{{{
     26~$ stop-hadoop
     27}}}
     28 * 接著確認切換至 hadoop 安裝目錄
     29{{{
     30~$ cd /opt/hadoop
     31}}}
     32 * 重新 format !NameNode
     33{{{
     34$ bin/hadoop namenode -format
     3511/03/03 13:04:25 INFO namenode.NameNode: STARTUP_MSG:
     36/************************************************************
     37STARTUP_MSG: Starting NameNode
     38STARTUP_MSG:   host = ${HOSTNAME}/${IP}
     39STARTUP_MSG:   args = [-format]
     40STARTUP_MSG:   version = 0.20.2
     41STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/b
     42ranch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
     43************************************************************/
     44Re-format filesystem in \var\hadoop\dfs\name ? (Y or N) Y
     4511/03/03 13:04:32 INFO namenode.FSNamesystem: fsOwner=chtti,None,root,Administra
     46tors,Users,Debugger,Users
     4711/03/03 13:04:32 INFO namenode.FSNamesystem: supergroup=supergroup
     4811/03/03 13:04:32 INFO namenode.FSNamesystem: isPermissionEnabled=true
     4911/03/03 13:04:32 INFO common.Storage: Image file of size 95 saved in 0 seconds.
     50
     5111/03/03 13:04:32 INFO common.Storage: Storage directory \var\hadoop\dfs\name ha
     52s been successfully formatted.
     5311/03/03 13:04:32 INFO namenode.NameNode: SHUTDOWN_MSG:
     54/************************************************************
     55SHUTDOWN_MSG: Shutting down NameNode at ${HOSTNAME}/${IP}
     56************************************************************/
     57}}}
     58 * 重新啟動 hadoop
     59{{{
     60/opt/hadoop $ start-hadoop
     61}}}
     62 * 隔幾秒後,執行 jps 確認 !DataNode 是否還活著
     63{{{
     64$ jps
     655960 TaskTracker
     662836 SecondaryNameNode
     673400 JobTracker
     683252 NameNode
     695512 Jps
     70}}}
     71 * 觀察 !DataNode 的錯誤訊息
     72{{{
     73$ cygstart wordpad logs/hadoop-${USER}-datanode-${HOSTNAME}.log
     74}}}
     75 * 嘗試跟據解法(1),修復 !NameNode 的 namespaceID。 - 修改 ${hadoop.tmp.dir}/dfs/name/current/VERSION 並使用以下指令重新啟動 namenode 與 datanode
     76{{{
     77$ /opt/hadoop/bin/hadoop-daemon.sh stop namenode
     78$ /opt/hadoop/bin/hadoop-daemon.sh start namenode
     79$ /opt/hadoop/bin/hadoop-daemon.sh start datanode
     80}}}
     81
     82== 狀況二:進入安全模式(safe mode) ==
     83== 狀況三:區塊遺失(missing blocks)  ==