HDFS 筆記二

 

1.HDFS元數據管理機制

計算機中存儲數據兩種:內存或者是磁盤
元數據存儲磁盤:存儲磁盤無法面對客戶端對元數據信息的任意的快速低延遲的響應,但是安全性高
元數據存儲內存:元數據存放內存,可以高效的查詢以及快速響應客戶端的查詢請求,數據保存在內存,如果斷點,內存中的數據全部丟失。

權衡:內存+磁盤;NameNode內存+FsImage的文件(磁盤)

 

兩個合併=完整數據:NameNode引入了一個edits文件(日誌文件:只能追加寫入)edits文件記錄的是client的增刪改操作

2.元數據管理流程圖

第一階段:NameNode啓動
     1.第一次啓動NameNode格式化後,創建FsimageEdits文件。如果不是第一次啓動,直接加載編輯日誌和鏡像文件到內存。
     2.客戶端對元數據進行增刪改的請求。
     3.NameNode記錄操作日誌,更新滾動日誌。 NameNode在內存中對數據進行增刪改。

第二階段:Secondary NameNode工作
     1.Secondary NameNode
詢問NameNode是否需要CheckPoint。直接帶回NameNode是否執行檢查點操作結果。
      2.Secondary NameNode
請求執行CheckPoint。
      3.NameNode
滾動正在寫的Edits日誌。
      4.將滾動前的編輯日誌和鏡像文件拷貝到
Secondary NameNode。
      5.Secondary NameNode加載編輯日誌和鏡像文件到內存,併合並。
      6.生成新的鏡像文件
fsimage.chkpoint。
      7.拷貝
fsimage.chkpoint到NameNode
      8.NameNode
fsimage.chkpoint重新命名成fsimage

問題:
1.Fsimage中爲什麼沒有記錄塊所對應DataNode?
  在集羣啓動後,
NameNode要求DataNode上報數據塊信息,並間隔一段時間後再次上報。
2.NameNode啓動時如何確定加載哪些Edits文件呢?
  
需要藉助fsimage文件最後數字編碼,來確定哪些edits之前是沒有合併到fsimage中,啓動時只需要加載那些未合併的edits文件即可。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章