《高可用的HDFS》 元資料解析

2021-07-24 15:29:45 字數 1402 閱讀 4661

元資料有三類資訊:

1、檔案和目錄自身的屬性資訊

2、記錄檔案內容儲存相關資訊

3、記錄hdfs中所有datanode的資訊

inode:檔案和目錄是檔案系統的基本元素,hdfs將其抽象為inode,每乙個檔案或目錄都對應乙個唯一的inode,其儲存了名字資訊、建立時間、修改時間、父目錄等資訊。

inode資訊完全位於記憶體,類fsimage是構建在記憶體元資料與磁碟元資料檔案之間的橋梁,在hdfs初始化時,它負責將磁碟元資料轉化為記憶體元資料中的inode,需持久化時,他負責將元資料操作轉化為日誌記錄並儲存。

元資料映象檔案(fsimage)+日誌檔案(edits)的備份機制,其中映象檔案是某一時刻記憶體資料的真實組織情況,而日誌檔案則記錄了該時刻以後所有的元資料操作。

hdfs元資料三大關鍵類:

inode:檔案系統基本元素:檔案和目錄             fsdirectory類

blockinfo:檔案內容物件             blockmanager類

datanodedescriptor:具體儲存物件              datanodedescriptor類

fsnamesystem代表總的元資料,對外提供統一的元資料操作介面

hdfs格式化:對檔案系統進行初始化

1、確定能否格式化

命令hdfs namenode formate的入口類為類namenode的main函式,主要方法createnomenode,該方法根據輸入引數來決定執行動作,對於格式化操作,將呼叫format方法,在format方法中,將遍歷所有元資料儲存目錄,提示使用者是否允許對其格式化

2、建立元資料檔案在記憶體中的映象

包括:類fsnamesystem例項化物件,代表整個hdfs的namespace,類fsdirectory代表了hdfs中所有的目錄結構和屬性。

類fsimage的例項化物件,對應元資料的磁碟檔案fsimage,類fsedit例項化物件對應元資料的磁碟檔案edits。

3、對記憶體映象中的資料結構進行初始化

主要由fsimage的format函式完成,初始化物件也主要是fsimage類的成員變數。

包括namespaceid,在namenode整個生命週期都不變,當datanode註冊到namenode後,會獲得該namenode的namespaceid,並作為後續的與namenode通訊的身份標識。

4、將記憶體中的映象寫入元資料備份目錄

類fsimage初始化之後,會遍歷所有元資料儲存目錄,以儲存目錄作為引數,一次呼叫format方法,format方法採用了過載的方法

首先是刪除當前儲存目錄下的所有內容,然後對傳入的目錄型別做判斷,若是儲存fsimage檔案的目錄,或是儲存edits日誌檔案的目錄。最後呼叫sd.write()方法在儲存目錄下建立fsimage和version檔案,後者通常在儲存目錄更新的最後寫入,

hdfs的高可用

hdfs的架構體系 hdfs採用了主從模式 集中式管理 主 1.namenode 只有乙個,它存在乙個缺陷 單點故障 2.它是記錄集群情況和集群檔案儲存的元資料 3.解決缺陷方式 a.高可用方式,製作乙個副namenode 這個副namenode可不是secondnamenode,b.倆個namen...

HDFS的HA 高可用

問題 namenode是單節點的,容易發生單點故障。在hadoop2.x之後,可以部署兩個namenode,乙個active 活躍的 另外乙個是standby 備份的 如果要實現這種高可用,需要解決兩個問題 1.資料的同步 資料的同步包括兩部分 靜態資料和動態資料,靜態資料是指元資料資訊 塊名稱,大...

HDFS元資料

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