hadoop實戰隨筆_0721

NameNode文件結構

最新格式化的NameNode會創建以下的目錄結構:

${dfs.name.dir}/current/VERSION

      /edits

                                       /fsimage

                                       /fstime

dfs.name.dir屬性是一個目錄列表,是每個目錄的鏡像。VERSION文件是Java屬性文件,其中包含運行HDFS的版本信息。


一個典型VERSION文件所包含的內容:

#web Mar 23 16:03:27 CST 2011

namespaceID=1064465394

cTime=0

storageType=NAME_NODE

layoutVersion=-18

namespaceID是文件系統的唯一標識符,當文件系統第一次格式化時便會被創建,這個標識也要求各DataNode節點和NameNode保持一致。NameNode會使用它識別新的DataNodeDataNode只有在想NameNode註冊後纔會獲得此namespaceIDcTime屬性標記了NameNode存儲空間創建的時間。對於新格式化的存儲空間,這裏的屬性值雖爲0,但是隻要文件系統被更新,它就會更新到一個新的時間戳上。storageType指出此存儲目錄包含一個NameNode的數據結構,在DataNode中它的屬性值爲DATA_NODE

layoutVersion是一個負的整數,定義了HDFS持久數據結構的版本。每次HDFS的佈局發生改變,該版本號就會遞減,在這種情況下,HDFS就需要更新升級了,因爲一個新的NameNodeDataNode如果還處在舊版本上,系統就無法正常運行,各節點的版本號需要一致。


NameNode的存儲目錄中包含editsfsimagefstime三個文件。他們都是二進制文件,可以通過HadoopWritable對象進行序列化。


編輯日誌(dedit log)及文件系統映像(filesystem image










































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章