2012-03-15 166 views
5

場景1:恢復Hadoop NameNode失敗

HDFS fsimage和editlog寫入多個位置,包括NFS掛載。

A)的NameNode守護程序崩潰: 解決方案: 剛剛重新啓動的Namenode過程

B)主機關閉命名節點運行的位置。

解決方案:

  1. 與空dfs.name.dir
  2. 點dfs.name.dir到NFS掛載,我們有元數據的副本開始在不同的主機名稱節點。 或
  3. 使用--importCheckpoint選項同時指出fs.checkpoint.dir後開始的NameNode從二級NameNode的
  4. 更改fs.default.name到備份主機名URI檢查點目錄並重新啓動集羣與所有的奴隸IP在從屬文件中。

注 - 我們可能會錯過上次檢查點後可能發生的編輯。

方案2:

的HDFS的FsImage被寫入一個目錄中。

A)的NameNode守護程序崩潰: 解決方案:未知

B)主機已關閉命名節點運行的位置。

解決方案:

  1. 創建指向dfs.name.dir在目錄中的一個空白目錄(1)
  2. 啓動的Namenode與-importCheckpoint指向fs.checkpoint.dir從二級目錄設置檢查點後NameNode的
  3. 更改fs.default.name到備份主機名URI並重新啓動集羣的所有從IP的奴隸文件。

這種方式,我們會再次錯過最後一個檢查點之後編輯的文件。

請讓我知道,如果這是我們如何能夠手動恢復集羣。

+0

你可以編輯你的文章,包括一個正確的問題嗎?我不確定你在問什麼。如果您有它們,發佈一些日誌文件片段也會很有幫助。它會幫助我診斷你的問題。謝謝 – 2012-03-15 02:00:53

+0

我正在給一些生產場景。在情景1和情景2的情況下要做什麼。爲了獲得不同的名稱節點恢復技術 – Jagaran 2012-03-15 03:30:47

+0

現在改變了問題 – Jagaran 2012-03-15 03:51:45

回答

1

在生產中,您應該在HA模式下運行NameNode,編輯日誌事務文件的編號爲quorum of journalling nodes,或共享HA-NFS storage。如果您不需要或不使用HA,則需要運行NN至少有兩個存儲目錄用於映像和編輯日誌,其中最好有一個作爲軟安裝的NFS掛載點,以實現名稱系統的機器外自動持久性。

如果您只有一個存儲目錄並且沒有HA配置,那麼您可以得到的最好結果就是過去的檢查點 - 如果您丟失了所有文件。如果你沒有丟失文件,你可以嘗試一個hadoop namenode -recover選項,如post所示,以便能夠恢復圖像加上一些(或全部)編輯。

+0

在失敗Namenode上執行hadoop namenode -recover選項有什麼風險。 – 2016-07-26 07:27:08

+0

風險正在失去您要求恢復模式跳過的更改。這些可以是文件或目錄創建的任何內容,也可以是訪問時間更新等屬性修改。 – 2016-08-07 22:19:36