1. 程式人生 > >NameNode故障處理之資料恢復

NameNode故障處理之資料恢復

NameNode故障處理之資料恢復

1.原理簡介

如果你看了上篇,我相信應該已經不需要我來多做介紹了,不過還是簡單說下吧!!!因為SecondaryNameNode負責合併NameNode中的Fsimage和Edit檔案,所以它也儲存了上次合併的NameNode中Fsimage和Edit檔案

!然後所以我們可以把它拷貝到NameNode上,然後又所以最後一次沒有合併的資料還是會丟失。

方法一:將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