Namenode 故障后,可以采用如下兩種方法恢復數據。
方法一:將 SecondaryNameNode 中數據拷貝到 namenode 存儲數據的目錄;
方法 二: 使用 -importCheckpoint 選項 啟動 namenode 守 護 進 程 , 從 而 將SecondaryNameNode 中數據拷貝到 namenode 目錄中。
------------------------------------------------------------------------------------
采用方法一:
1、刪除namenode存儲的數據(/home/hadoop/hadoop_tmp/dfs/name/*)
rm -rf /home/hadoop/hadoop_tmp/dfs/name/*
2、把secondarynamenode中的數據拷到原namenode存儲數據目錄
scp -r hadoop@hadoop102:/home/hadoop/hadoop_tmp/dfs/namesecondary/* /home/hadoop/hadoop_tmp/dfs/name/*
3、重新啟動namenode (在啟動之前可以刪除目錄下的鎖文件)
hadoop-daemon.sh start namenode
----------------------------------------------------------------------------------------
采用方法二:
1、修改hdfs-site.xml文件:
<property> <name>dfs.namenode.checkpoint.period</name> <value>120</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/hadoop_tmp/dfs/name</value> </property>
2、刪除namenode存儲的數據(/home/hadoop/hadoop_tmp/dfs/name/*)
rm -rf /home/hadoop/hadoop_tmp/dfs/name/*
3、將secondarybamenode 存儲數據的目錄拷貝到 namenode 存儲數據的平級目錄,並刪除鎖文件in_use.lock文件
scp -r hadoop@hadoop102:/home/hadoop/hadoop_tmp/dfs/namesecondary/* /home/hadoop/hadoop_tmp/dfs/name/*
rm -rf in_use.lock
4、導入檢查點數據
hdfs namenode -importCheckpoint
5、啟動namenode
hadoop-daemon.sh start namenode
