元資料有三類資訊:
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的管理 元資料檔案則用於持久化儲存。從型別上講,元資料有三類重要資訊 第一類是檔案和目錄自身的屬性資訊,例如檔名 目錄名 父目錄資訊 檔案大小 建立時間 修改時間等。第二類記...