當前位置:
首頁 > 知識 > Hadoop 之 NameNode 元數據原理

Hadoop 之 NameNode 元數據原理

Hadoop 之 NameNode 元數據原理

在對NameNode節點進行格式化時,調用了FSImage的saveFSImage()方法和FSEditLog.createEditLogFile()存儲當前的元數據。Namenode主要維護兩個文件,一個是fsimage,一個是editlog。

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

注意:Block的位置信息不會保存到fsimage,Block保存在哪個DataNode(由DataNode啟動時上報)。

editlog :主要是在NameNode已經啟動情況下對HDFS進行的各種更新操作進行記錄,HDFS客戶端執行所有的寫操作都會被記錄到editlog中。

讀取元數據:

啟動NameNode節點時,又要從鏡像和編輯日誌中讀取元數據。

寫入元數據:

在NameNode運行時會將內存中的元數據信息存儲到所指定的文件,即${dfs.name.dir}/current目錄下的fsimage文件,此外還會將另外一部分對NameNode更改的日誌信息存儲到${dfs.name.dir}/current目錄下的edits文件中。fsimage文件和edits文件可以確定NameNode節點當前的狀態,這樣在NameNode節點由於突發原因崩潰時,可以根據這兩個文件中的內容恢復到節點崩潰前的狀態,所以對NameNode節點中內存元數據的每次修改都必須保存下來。但是如果每次都保存到fsimage文件中,這樣效率就特別低效,所以引入編輯日誌文件edits,保存對對元數據的修改信息,也就是fsimage文件保存NameNode節點中某一時刻內存中的元數據(即目錄樹),edits保存這一時刻之後的對元數據的更改信息。

鏡像的保存:

Hadoop 之 NameNode 元數據原理

SecondaryNameNode:主要由兩個作用,一是鏡像備份(不是NN的備份,但可以做備份),二是日誌與鏡像的定期合併。

第一步:將hdfs更新記錄寫入一個新的文件——edits.new。

第二步:將fsimage和editlog通過http協議發送至secondary namenode。

第三步:將fsimage與editlog合併,生成一個新的文件——fsimage.ckpt。這步之所以要在secondary namenode中進行,是因為比較耗時,如果在namenode中進行,或導致整個系統卡頓。

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

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

第六步:等待下一次checkpoint觸發SecondaryNameNode進行工作,一直這樣循環操作。

註:checkpoint觸發的條件可以在core-site.xml文件中進行配置。fs.checkpoint.period表示多長時間記錄一次hdfs的鏡像。默認是1小時。fs.checkpoint.size表示一次記錄多大的size,默認64M。例如如下:

<property>

<name>fs.checkpoint.period</name>

<value>3600</value>

<description>The number of seconds between two periodic checkpoints.

</description>

</property>

<property>

<name>fs.checkpoint.size</name>

<value>67108864</value>

<description>The size of the current edit log (in bytes) that triggers

a periodic checkpoint even if the fs.checkpoint.period hasn"t expired.

</description>

</property>


原文鏈接:http://www.cnblogs.com/andy6/p/7353092.html

更多IT精品課程,訪問優學網:http://xue.ujiuye.com

web前端群 345648424

勤工儉學計劃」,給你一個真正0元學習IT技術的機會!

http://www.ujiuye.com/zt/qgjx/?wt.bd=fq37300j

找工作太難?不是你不行,我們來幫你!

http://www.ujiuye.com/zt/jyfc/?wt.bd=fq37300j

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

利用GPGPU計算大規模群落模擬行為
vue學習筆記——組件化實現todoList
前端開發工具Brackets介紹,安裝時踩過的坑
原來,我看的是廣告,順帶插播電視劇而已

TAG:IT優就業 |

您可能感興趣

Veritas收購雲數據管理公司fluid Operations AG
Women in Data Science Beijing:與數據科學的美妙邂逅
Spring Boot與Kotlin使用Spring-data-jpa簡化數據訪問層
Python modbus 浮點型數據處理
阻止Facebook跟蹤數據的Firefox開源插件Facebook Container
Slice數據:HomePod音箱45%的購買者為iPhone X用戶
如果Facebook告訴你 你的數據被Cambridge Analytica使用
淺談大數據Bigtable與MapReduce、GFS有何聯繫
talmo-design-cables數據線品牌與包裝設計
FB及Cambridge Analytica因用戶數據泄露事件面臨訴訟
Illumina收購Edico Genome,加速基因組數據分析
Young Academy:unleash young的群體智慧,解碼26個月長PFS數據背後的真相
WhatsApp在歐洲停止與Facebook分享數據
誰是數據競賽王者?CatBoost vs.Light GBM vs.XGBoost
用戶數據泄露三連彈:Facebook、安德瑪&Panera Bread
Twitter 開源數據分析工具——tinfoleak
Steam限制數據訪問,SteamSpy稱將停運,源於Facebook事件影響
Section 14-Halcon實戰寶典之數據結構
Salesforce數據現在可以導入到Google Analytics 360中了
uCloudlink 推出創新移動數據服務 「GlocalMe Inside」