更新時(shí)間:2021年06月25日17時(shí)44分 來源:傳智教育 瀏覽次數(shù):
HDFS磁盤上元數(shù)據(jù)文件分為兩類,用于持久化存儲:
fsimage 鏡像文件:是元數(shù)據(jù)的一個(gè)持久化的檢查點(diǎn),包含Hadoop文件系統(tǒng)中的所有目錄和文件元數(shù)據(jù)信息,但不包含文件塊位置的信息。文件塊位置信息只存儲在內(nèi)存中,是在 datanode加入集群的時(shí)候,namenode詢問datanode得到的,并且間斷的更新。
Edits 編輯日志:存放的是Hadoop文件系統(tǒng)的所有更改操作(文件創(chuàng)建,刪除或修改)的日志,文件系統(tǒng)客戶端執(zhí)行的更改操作首先會被記錄到edits文件中。
fsimage和edits文件都是經(jīng)過序列化的,在NameNode啟動的時(shí)候,它會將fsimage文件中的內(nèi)容加載到內(nèi)存中,之后再執(zhí)行edits文件中的各項(xiàng)操作,使得內(nèi)存中的元數(shù)據(jù)和實(shí)際的同步,存在內(nèi)存中的元數(shù)據(jù)支持客戶端的讀操作,也是 完整的元數(shù)據(jù)。
當(dāng)客戶端對HDFS中的文件進(jìn)行新增或者修改操作,操作記錄首先被記入edits日志文件中,當(dāng)客戶端操作成功后,相應(yīng)的元數(shù)據(jù)會更新到內(nèi)存元數(shù)據(jù)中。因?yàn)閒simage文件一般都很大(GB級別的很常見),如果所有的更新操作都往fsimage文件中添加,這樣會導(dǎo)致系統(tǒng)運(yùn)行的十分緩慢。
HDFS這種設(shè)計(jì)實(shí)現(xiàn)著手于:一是內(nèi)存中數(shù)據(jù)更新、查詢快,極大縮短了操作響應(yīng)時(shí)間;二是內(nèi)存中元數(shù)據(jù)丟失風(fēng)險(xiǎn)頗高(斷電等),因此輔佐元數(shù)據(jù)鏡像文件(fsimage)+編輯日志文件(edits)的備份機(jī)制進(jìn)行確保元數(shù)據(jù)的安全。
<a href="itcast.cn/news/20201221/17071256759.shtml>怎樣使用Spark Shell來讀取HDFS文件?
北京校區(qū)