?
理解這兩個概念,對于理解Hadoop是如何管理備份,Secondary Namenode、Checkpoint Namenode和Backup Node如何工作的很重要。
- fsimage: 文件是文件系統元數據的一個永久性檢查點,包含文件系統中的所有目錄和文件idnode的序列化信息。
- edits: 文件系統的寫操作首先把它記錄在edit中
將文件系統個元數據操作分開操作,是為了提升內存的處理效率。如果不分開處理,即所有的寫操作均記錄在一個文件中,比 如,fsimage中,那么每個操作都會對這個文件進行修改,因為這個文件可能會很大,所以每次進行寫操作的時候就會很慢,隨著fsimage越來越大, 速度便會越來越低。
Hadoop的解決方案是輔助Namenode節點,文件系統的寫操作不是直接被修改到fsimage中,二是edits中,輔助Namenode 節點負責將兩者在自己的內存中整合然后進行相應的替換操作,這樣會頻繁的對edits進行修改而不是fsimage,而edits文件的大小是可以接受 的,而且大小也不會不斷增加。具體的checkpoint執行過程如下:
?
以下即是checkpoint過程:
- 輔助Namenode請求主Namenode停止使用edits文件,暫時將新的寫操作記錄到一個新文件中,如edits.new。
- 輔助Namenode節點從主Namenode節點獲取fsimage和edits文件(采用HTTP GET)
- 輔助Namenode將fsimage文件載入到內存,逐一執行edits文件中的操作,創建新的fsimage文件
- 輔助Namenode將新的fsimage文件發送回主Namenode(使用HTTP POST)
- 主Namenode節點將從輔助Namenode節點接收的fsimage文件替換舊的fsimage文件,用步驟1產生的edits.new文件替換舊的edits文件(即改名)。同時更新fstime文件來記錄檢查點執行的時間
注:從Hadoop0.21.0開始,輔助Namenode已經放棄不用,由checkpoint節點取而代之,功能不變。新版本同時引入一種新的Namenode,名為BackupNode。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
