NameNode數據管理機制

NameNode是整個文件系統的管理節點。它維護着整個文件系統的文件目錄樹,文件/目錄的元信息和每個文件對應的數據塊列表。接收用戶的操作請求
文件包括:
①fsimage:元數據鏡像文件。存儲某一時段NameNode內存元數據信息。
②edits:操作日誌文件。
③fstime:保存最近一次checkpoint的時間
以上這些文件是保存在linux的文件系統中.
NameNode的工作特點
1、客戶端上傳文件,NN首先往edits.log文件中記錄數據操作日誌。
2、客戶端開始上傳文件,完成後返回成功信息給NN,NN就在內存中寫入這次上傳操作的新產生的數據信息。
3、每當edits.log寫滿時需要將這段時間的新的原數據寫到fsimage文件中去。Hadoop會維護一個fsimage文件,也就是namenodemetedata的鏡像,但是fsimage不會隨時與namenode內存中的metedata保持一致,而是每隔一段時間通過合併edits文件來更新內容。Secondary namenode就是用來合併fsimage和edits文件來更新NameNode的metedata的。
secondary namenode的工作流程:
1.secondary通知namenode切換edits文件
2.secondary從namenode獲得fsimage和edits(通過http)
3.secondary將fsimage載入內存,然後開始合併edits
4.secondary將新的fsimage發回給namenode
5.namenode用新的fsimage替換舊的fsimage

觸發checkpoint條件:
l、fs.checkpoint.period 指定兩次checkpoint的最大時間間隔,默認3600秒。
2、fs.checkpoint.size    規定edits文件的最大值,一旦超過這個值則強制checkpoint,不管是否到達最大時間間隔。默認大小是64M。

發佈了42 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章