fsimage 和 editlog 的解釋和原理


    fsimage保存來最新的元數據檢查點,包含來整個hdfs文件系統的全部目錄和文件的信息。對於文件來講包括了數據塊描述信息,修改時間,訪問時間等,對於目錄老說包括修改時間,訪問權限控制信息(目錄所屬用戶,所在組)等。Fimage就是在某一時刻,整個hdfs的快照,就是這個時刻的hdfs上全部的文件塊和目錄,分別的狀態,位於哪些個datanode,各自的權限,各自的副本個數。node

    editlog主要是在Namenode已經啓動狀況下對hdfs進行的各類更新操做進行記錄,hdfs客戶端執行全部的寫操做都會被記錄到editlog中。客戶端對hdfs全部的更新操做,好比說移動數據,或者刪除數據,都會記錄在editlog中。爲了不editlog不斷增大,secondary namenode 會週期性合併fsimage和deits 合併成新的fsimage新的操做記錄會寫入新的editlog中,這個週期能夠本身設置(editlog到達必定大小或者定時)。blog

    

    第一步:將hdfs更新記錄寫入一個新的文件--edit.new權限控制

    第二步:將fsimage和editlog經過http協議發送至secondary namenodeit

    第三步:將fsimage與editlog合併,生成一個新的文件--fsimage.ckpt。這步之因此在secondary namenode中進行,是由於比較耗時,若是在namenode進行,或致使整個系統卡頓。權限

    第四步:將生成的fsimage.ckpt經過http協議發送至namenode。im

    第五步:重命名fsimage.ckpt爲fsimage,edits.new爲edit。命名

相關文章
相關標籤/搜索