hadoop學習筆記肆--元數據管理機制

一、首先,認識幾個名詞oop

    (1)、NameNode中讀、寫、以及DataNode映射等信息叫作「元數據」 ,NameNode元數據存放位置有、內存、fsimage、edits log三個位置。blog

    (2)、edits log:記錄當前最新的元數據。內存

       (3)、元數據內存:實際在用的元數據。hadoop

    (4)、fsimage:元數據內存實體文件,fsimage與NameNode內容是是同樣的(最全元數據)開發

          當edits log文件大小達到閾值,會將edits log元數據寫入到fsimage文件,並清除edits log中的元數據。同步

二、NameNode管理元數據方式it

    (1)、客戶端上傳文件時NameNode首先會向edits log文件中記錄元數據信息。io

    (2)、客戶端上傳文件,完成後返回成功信息到NameNode,NameNode將本次上傳操做產生新的元數據信息寫入到內存中。 test

    (3)、每當editslog文件寫滿時,SecondeNameNode會將editslog中的元數據同步合併到fsimage中,且清空editslog下載

    (4)、同步數據(checkpiont)觸發方式:fs.checkpoint.period  指定兩次checkpoit的最大時間間隔,默認爲3600秒

                       :fs.checkpoint.size    規定ediits文件最大值,一旦超過這個值則強制checkpoint,無論是否到最大時間間隔,默認爲64M

三、SecondeNameNode對editslog、fsimage文件同步合併方式

    (1)、當editslog文件寫滿時,NameNode向SecondeNameNode發出請求,通知SecondeNameNode進行文件editslog與fsimage合併。

    (2)、SecondeNameNode作出響應,並通知NameNode建立新文件edits.new,且向edits.new文件寫入元數據

    (3)、SecondeNameNode下載editslog、fsimage文件到SecondeNameNode主機

    (4)、SecondeNameNode將下載editslog、fsimage文件作同步合併合併文件爲:fsimage.chkpoint

    (5)、將合併文件fsimage.chepoint上傳到NameNode中fsimage同目錄

    (6)、重命名fsimage.chepoint文件爲fsimage

    (7)、重命名edits.new爲edits

 四、nameNode 元數據存儲格式

    nameNode(FileName、replicas、block-ids、id2host。。。)

    名詞解釋:FileName:文件名稱

         replicas:副本個數

           block-ids:blockid

         後面是文件在dataNode位置

    列:/home/test.log,3,{blk_1,blk_2},[{blk_1:[h0,h1,h2]},{blk_2:[h0,h1,h2]}]

 

                      不得不說,爲了保證元數據的完整性,可靠性hadoop開發者沒少下功夫

相關文章
相關標籤/搜索