HDFS之namenode管理元數(shù)據(jù)機(jī)制及一些問題

一、NameNode啟動時(shí)如何維護(hù)元數(shù)據(jù):

1、概念介紹:
Edits文件:NameNode在本地操作hdfs系統(tǒng)的文件都會保存在Edits日志文件中。也就是說當(dāng)文件系統(tǒng)中的任何元數(shù)據(jù)產(chǎn)生操作時(shí),都會記錄在Edits日志文件中。eg:在HDFS上創(chuàng)建一個(gè)文件,NameNode就會在Edits中插入一條記錄。同樣如果修改或者刪除等操作,也會在Edits日志文件中新增一條數(shù)據(jù)。
FsImage映像文件:包括數(shù)據(jù)塊到文件的映射,文件的屬性等等,都存儲在一個(gè)稱為FsImage的文件中,這個(gè)文件也是放在NameNode所在的文件系統(tǒng)中。

2、流程介紹:

①、加載fsimage映像文件到內(nèi)存
②、加載edits文件到內(nèi)存
③、在內(nèi)存將fsimage映像文件和edits文件進(jìn)行合并
④、將合并后的文件寫入到fsimage中
⑤、清空原先edits中的數(shù)據(jù),使用一個(gè)空的edits文件進(jìn)行正常操作

3、流程圖分析:

image.png

4、疑問

因?yàn)镹ameNode只有在啟動的階段才合并fsimage和edits,那么如果運(yùn)行時(shí)間長了,edits文件可能會越來越大,在下一次啟動NameNode時(shí)會花很長的時(shí)間,請問能否讓fsimage映像文件和edits日志文件定期合并呢?
答案肯定是可以的,為了解決這個(gè)問題我們就要用到Secondary NameNode了,Secondary NameNode主要的作用是什么呢?他是如何將fsimage和edits進(jìn)行合并的呢?帶著疑問再次進(jìn)行分析。

二、Secondary NameNode工作流程:

1、Secondary NameNode和NameNode的區(qū)別:

NameNode:
①、存儲文件的metadata,運(yùn)行時(shí)所有數(shù)據(jù)都保存在內(nèi)存中,這個(gè)的HDFS可存儲的文件受限于NameNode的內(nèi)存。
②、NameNode失效則整個(gè)HDFS都失效了,所以要保證NameNode的可用性。
Secondary NameNode:
①、定時(shí)與NameNode進(jìn)行同步,定期的將fsimage映像文件和Edits日志文件進(jìn)行合并,并將合并后的傳入給NameNode,替換其鏡像,并清空編輯日志。如果NameNode失效,需要手動的將其設(shè)置成主機(jī)。
②、Secondary NameNode保存最新檢查點(diǎn)的目錄和NameNode的目錄結(jié)構(gòu)相同。所以NameNode可以在需要的時(shí)候應(yīng)用Secondary NameNode上的檢查點(diǎn)鏡像。

2、什么時(shí)候checkpoint
①、連續(xù)兩次的檢查點(diǎn)最大時(shí)間間隔,默認(rèn)是3600秒,可以通過配置“fs.checkpoint.period”進(jìn)行修改
②、Edits日志文件的最大值,如果超過這個(gè)值就會進(jìn)行合并即使不到1小時(shí)也會進(jìn)行合并。可以通過“fs.checkpoint.size”來配置,默認(rèn)是64M;

3、Secondary NameNode的工作流程
①、NameNode通知Secondary NameNode進(jìn)行checkpoint。
②、Secondary NameNode通知NameNode切換edits日志文件,使用一個(gè)空的。
③、Secondary NameNode通過Http獲取NmaeNode上的fsimage映像文件(只在第一次的時(shí)候)和切換前的edits日志文件。
④、Secondary NameNode在內(nèi)容中合并fsimage和Edits文件。
⑤、Secondary NameNode將合并之后的fsimage文件發(fā)送給NameNode。
⑥、NameNode用Secondary NameNode 傳來的fsImage文件替換原先的fsImage文件。
4、流程圖分析:

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容