HDFS中的從元資料節點

2022-05-02 21:12:10 字數 1182 閱讀 9150

在hdfs中,namenode用來管理檔案系統的命名空間,其將所有的檔案和資料夾的元資料儲存在乙個檔案系統樹中,這些資訊會在硬碟上儲存為fsimage(命名空間映象)和edits(修改日誌)檔案;其還儲存了檔案包含哪些資料塊,分布在哪些資料節點上,但這些資料並不儲存在硬碟上,而是在系統啟動的時候從資料節點收集而來的。datanode是檔案系統中真正儲存資料的地方,其週期性的向元資料節點回報期儲存的資料塊資訊。

從元資料節點(secondary namenode)並不是namenode的備用節點,它與namenode有著不同的職責(二者的服務可以執行在一台機器上),其主要功能是週期性的將元資料節點的命名空間映象檔案和修改日誌合併,以防止日誌檔案過大,合併後的命名空間映象檔案在從元資料節點中葉儲存乙份,以防元資料節點失效的時候用於恢復。

元資料節點使用日誌記錄元資料的修改,其工作主要包括:

l當檔案系統客戶端(client)進行寫操作時,首先把它記錄在修改日誌中(edit log)

l元資料節點在記憶體中儲存了檔案系統的元資料資訊,在記錄了修改日誌後,元資料節點則修改記憶體中的資料結構。

l每次的寫操作成功之前,修改日誌都會同步(sync)到檔案系統。

l命名空間映像檔案(fsimage)是記憶體中的元資料在硬碟上的checkpoint,它是一種序列化的格式,並不能夠在硬碟上直接修改。

l當元資料節點失敗時,則最新checkpoint的元資料資訊從fsimage載入到記憶體中,然後逐一重新執行修改日誌中的操作。

從元資料節點用來幫助元資料節點將記憶體中的元資料資訊checkpoint到硬碟上,checkpoint的過程如下圖所示:

1.從元資料節點通知元資料節點生成新的日誌檔案,以後的日誌都寫到新的日誌檔案中。

2.從元資料節點用http get從元資料節點獲得fsimage檔案及舊的日誌檔案。

3.從元資料節點將fsimage檔案載入到記憶體中,並執行日誌檔案中的操作,然後生成新的fsimage檔案。

4.從元資料節點獎新的fsimage檔案用http post傳回元資料節點

5.元資料節點可以將舊的fsimage檔案及舊的日誌檔案,換為新的fsimage檔案和新的日誌檔案,然後更新fstime檔案,寫入此次checkpoint的時間。

6.這樣元資料節點中的fsimage檔案儲存了最新的checkpoint的元資料資訊,日誌檔案也重新開始,不會變的很大了,從而使得元資料節點啟動時花費很少的時間進行日誌的合併。

HDFS元資料

從形式上講,元資料可分為記憶體元資料和元資料檔案兩種。其中namenode在記憶體中維護整個檔案系統的元資料映象,用於hdfs的管理 元資料檔案則用於持久化儲存。從型別上講,元資料有三類重要資訊 第一類是檔案和目錄自身的屬性資訊,例如檔名 目錄名 父目錄資訊 檔案大小 建立時間 修改時間等。第二類記...

hdfs元資料儲存

namenode如何儲存元資料 1.nn對元資料的管理分為三部分,記憶體中完整的元資料,磁碟中接近完整的元資料映象檔案 fsimage 記錄元資料操作資訊的edits檔案 2.snn通過配置,定時請求nn,進行checkpoint 3.nn接受到checkpoint請求,會立即滾動正在寫的edits...

HDFS節點內資料平衡

hadoop集群使用久了,我們會發現乙個問題,各個datanode資料不平衡了,多的達到70 80 少的達到10 20 面對這種場景,我們一般使用hdfs自帶的blancer工具對其資料進行平衡。也就是他只能保證每乙個節點的資料大小均衡。但是有的時候,你會發現節點資料平衡了但是datanode內部各...