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

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

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

4、疑問

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

二、Secondary NameNode工作流程:

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

NameNode:
①、存儲(chǔ)文件的metadata,運(yùn)行時(shí)所有數(shù)據(jù)都保存在內(nèi)存中,這個(gè)的HDFS可存儲(chǔ)的文件受限于NameNode的內(nèi)存。
②、NameNode失效則整個(gè)HDFS都失效了,所以要保證NameNode的可用性。
Secondary NameNode:
①、定時(shí)與NameNode進(jìn)行同步,定期的將fsimage映像文件和Edits日志文件進(jìn)行合并,并將合并后的傳入給NameNode,替換其鏡像,并清空編輯日志。如果NameNode失效,需要手動(dòng)的將其設(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è)值就會(huì)進(jìn)行合并即使不到1小時(shí)也會(huì)進(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

謝謝

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

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

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