HDFS文件系統(tǒng)結構解析.doc
《HDFS文件系統(tǒng)結構解析.doc》由會員分享,可在線閱讀,更多相關《HDFS文件系統(tǒng)結構解析.doc(5頁珍藏版)》請在裝配圖網(wǎng)上搜索。
HDFS文件系統(tǒng)結構解析 NameNode節(jié)點是就是HDFS的大腦。想了解HDFS文件系統(tǒng),必須了解大腦結構。 咱們就從NameNode節(jié)點開始。NameNode類中,關于HDFS文件系統(tǒng)的存儲和管理都交給了FSNamesystem負責。下面介紹一下FSNamesystem的邏輯組成和類圖。 1. FSNameSystem層次結構 一些概念 INode: 它用來存放文件及目錄的基本信息:名稱,父節(jié)點、修改時間,訪問時間以及UGI信息等。 INodeFile: 繼承自INode,除INode信息外,還有組成這個文件的Blocks列表,重復因子,Block大小 INodeDirectory:繼承自INode,此外還有一個INode列表來組成文件或目錄樹結構 Block(BlockInfo):組成文件的物理存儲,有BlockId,size ,以及時間戳 BlocksMap: 保存數(shù)據(jù)塊到INode和DataNode的映射關系 FSDirectory:保存文件樹結構,HDFS整個文件系統(tǒng)是通過FSDirectory來管理 FSImage:保存的是文件系統(tǒng)的目錄樹 FSEditlog: 文件樹上的操作日志 FSNamesystem: HDFS文件系統(tǒng)管理 這些概念之間的層次關系: 我們都知道,在NameNode內存中存在兩張很重要的映射表: 1. 文件系統(tǒng)的命名空間(文件目錄樹) 主要是 文件和Block映射關系 (保存在FSDirectory) 2. Block 和 INodeFile & DataNode的映射關系 (保存在FSNamesystem) 在上圖中,左邊黑線部分是1 數(shù)據(jù)結構的層次關系;紅線部分是 2 關系的層次結構 (其中block & DataNode這個共用) 下面詳細的介紹上圖所表示的關系: 文件系統(tǒng) FSNamesystem FSNamesystem 主要有兩個對象:文件系統(tǒng)(FSDirectory)根節(jié)點rootDir 和BlocksMap映射表 (Block -> { INode, datanodes, self ref } ) 文件系統(tǒng)目錄FSDirectory 保存文件目錄結構(INodeDirectory樹),實現(xiàn)FSImage和FSEditLog操作實現(xiàn)。 INode ( INodeFile & INodeDirectory ) 在HDFS中,無論目錄還是文件,都是INode。INode有兩個派生類INodeFile和INodeDirectory。 INodeFile是INode文件類,INodeDirectory是INode目錄類。每一 INodeDirectory孩子節(jié)點都是由INodeDirectory目錄或INodeFile文件列表構成。這樣就形成了一棵INode樹形結構。 NameNode內存中保存著HDFS整個文件系統(tǒng)形成的樹,這棵樹保存在FSDirectory對象內。 Block & BlocksMap & BlockInfo HDFS物理存儲單元是Block(缺省的Block大小為64M),每個Block會有幾個副本(缺省是3個),這些Block都是存儲在不同數(shù)據(jù)節(jié)點上的。映射關系保存在BlocksMap。 Block & INodeFile 每個INodeFile都有一個Block列表組成。每一個block有多個副本(缺省3個副本), 各副本保存在不同的數(shù)據(jù)節(jié)點上。 這樣在文件與Block和DataNode之間形成一個映射關系表。這張關系表就保存在FSDirectory對象 . FSImage & FSEditlog(FSDirectory) 由于目錄樹(FSDirectory)在NameNode內存中保存,機器也有掉電的時候。若只保存在內存那勢必會造成數(shù)據(jù)的丟失。因此,系統(tǒng)會周期性的保存文件目錄樹到NameNode本地文件系統(tǒng),生成FSImage。主要由FSImage和FSEditLog,這兩個類負責目錄樹持久化。 當 HDFS系統(tǒng)非常龐大時,F(xiàn)SImage也會非常大,這樣不能文件系統(tǒng)發(fā)生任何操作時,就更新到FSImage,所以一段時間內文件系統(tǒng)的操作日志會記錄到FSEditLog。到一定時間會把操作日志FSEditLog同步到FSImage,這樣就形成完整的文件目錄樹。 2. FSNameSystem 主要類關系圖 這個類圖可以分成三個部分 Bock相關的部分(BlocksMap & BlockInof & Block) INode相關的部分(INode & INodeDirectory & INodeFile & INodeDirectoryWithQuota) FSImage & FSEditLog (Storage & StorageInfo) 其中 BlockInfo是Block的加強類,增加了INodeFile的引用和DataNode列表 INodeFirectoryWithQuota 是INodeDirectory的增強類,增加了Quota限制功能 從層次關系圖和類圖中,可以看出FSNamesystem中各數(shù)據(jù)結構之間的關系。了解FSNamesystem, 那么HDFS的文件系統(tǒng)就了解了90%。 my email: hadoop123 at gmail dot com- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- HDFS 文件系統(tǒng) 結構 解析
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
相關資源
更多
正為您匹配相似的精品文檔
相關搜索
鏈接地址:http://kudomayuko.com/p-7961066.html