NameNode故障處理之資料恢復
阿新 • • 發佈:2018-12-28
NameNode故障處理之資料恢復
1.原理簡介
如果你看了上篇,我相信應該已經不需要我來多做介紹了,不過還是簡單說下吧!!!因為SecondaryNameNode負責合併NameNode中的Fsimage和Edit檔案,所以它也儲存了上次合併的NameNode中Fsimage和Edit檔案
方法一:將SecondaryNameNode中資料拷貝到NameNode儲存資料的目錄
1 kill -9 NameNode程序
2 刪除NameNode儲存的資料(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
[[email protected] hadoop-2.7.2]$ rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
3 拷貝啟動SecondaryNameNode的DataNode中資料到原NameNode儲存資料目錄
[[email protected] dfs]$ scp -r [email protected]:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary/* ./name/
4.重新啟動NameNode
[[email protected] hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
方法二:使用-importCheckpoint選項啟動NameNode守護程序,從而將SecondaryNameNode中資料拷貝到NameNode目錄中。
1.修改hdfs-site.xml
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>120</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp/dfs/name</value>
</property>
2.kill -9 NameNode程序
3.刪除NameNode儲存的資料(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)
[[email protected] hadoop-2.7.2]$ rm -rf /opt/module/hadoop-2.7.2/data/tmp/dfs/name/*
4 如果SecondaryNameNode不和NameNode在一個主機節點上,需要將SecondaryNameNode儲存資料的目錄拷貝到NameNode儲存資料的平級目錄,並刪除in_use.lock檔案
[[email protected] dfs]$ scp -r [email protected]:/opt/module/hadoop-2.7.2/data/tmp/dfs/namesecondary ./
[[email protected] namesecondary]$ rm -rf in_use.lock
[[email protected] dfs]$ pwd
/opt/module/hadoop-2.7.2/data/tmp/dfs
[[email protected] dfs]$ ls
data name namesecondary
**5.**匯入檢查點資料(等待一會ctrl+c結束掉)
[[email protected] hadoop-2.7.2]$ bin/hdfs namenode -importCheckpoint
6 啟動NameNode
[[email protected] hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
版權宣告:本部落格為記錄本人自學感悟,轉載需註明出處!
https://me.csdn.net/qq_39657909