NameNode工作機制
阿新 • • 發佈:2018-12-20
NameNode
是整個檔案系統的管理節點。他維護這整個檔案系統的檔案目錄樹,檔案/目錄的元資訊和每個檔案對應的資料塊列表。接受使用者的操作請求。
檔案包扣:
fsimage:元資料映象檔案。儲存某一時段NameNode記憶體元資料資訊。
edits:操作日誌檔案
fstime:儲存最近一次checkpoint的時間
NameNode的工作特點
NameNode始終在記憶體中儲存metedata,用於處理“讀請求”
到有“寫請求到來時”,namenode會首先寫editlog到磁碟,即向edits檔案中寫日誌,成功返回後,才會修改記憶體,並且向客戶端返回
Hadoop會維護一個fsimage檔案,也就是namenode中metedata的映象,但是fsimage不會隨時與namenode記憶體中的metedata保持一致,而是每隔一段時間通過合併edits檔案來更新內容。Secondary namenode就是用來合併fsimage和edits檔案來更新namenode的metedata的。
Secondary NameNode
HA的一個解決方案。但不支援熱備。配置即可
執行過程:從NameNode上下載元資料資訊(fsimage,edits),然後把二者合併,生成新的fsimage,在本地儲存,並將其推送到NameNode,替換舊的fsimage
預設安裝在NameNode節點上,但這樣...不安全!
secondary namenode的工作流程
1.secondary通知namenode切換edits檔案
2.secondary從namenode獲得fsimage和edits(通過http)
3.secondary將fsimage載入記憶體,然後開始合併edits
4.secondary將新的fsimage發揮給namenode
5.namenode用新的fsimage替換舊的fsimage