Hadoop之HDFS的元數據冷備份(CheckPoint)


元數據冷備份

冷備份的起因:
namenode負責HDFS集群的元數據管理,要保證快速檢索,namenode必須將數據放到內存中,但一旦斷電或者故障,元數據會全部丟失,因此還必須在磁盤上做持久化。HDFS集群做元數據持久化的方式是edits.log+FSImage。edits.log存儲近期的操作,FSImage存儲以前的操作,這樣是為了盡可能地保障namenode的啟動速度。

總而言之,原因為:

  • 避免NameNode中的元數據丟失;
  • 盡可能保障NameNode的啟動速度。

前言:
NameNode和SecondaryNameNode觸發進行冷備份的條件:

  • 時間達到你在配置文件中配置的時間(eg:6h);
  • edits.log已經達到的配置文件中配置的指定大小(eg:64M)。
  1. SecondaryNameNode通過周期性(5min)通過getEditLog獲取editLog的大小,當其達到合並的大小時通過RollEditLog進行合並;
  2. NameNode停止使用editLog文件,並生成一個新的臨時文件edit.new;
  3. SecondaryNameNode通過NameNode內建的Http服務器,以get的方法獲取editLog與fsimage文件(get方法中攜帶fsimage與editLog的路徑);
  4. SecondaryNameNode將fsimage載入內存並逐一執行editlog中的操作;
  5. 執結束后,會向NameNode發送Http請求,通知NameNode合並結束,NameNode通過Http get方法獲取新的fsimage.chk文件;
  6. NameNode更新fsimage文件中的記錄檢查點執行的時間,並改名為fsimage文件;
  7. editLog.new文件改名為edit。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM