HDFS文件系統(tǒng)結(jié)構(gòu)解析_第1頁
HDFS文件系統(tǒng)結(jié)構(gòu)解析_第2頁
HDFS文件系統(tǒng)結(jié)構(gòu)解析_第3頁
HDFS文件系統(tǒng)結(jié)構(gòu)解析_第4頁
HDFS文件系統(tǒng)結(jié)構(gòu)解析_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、HDFS文件系統(tǒng)結(jié)構(gòu)解析NameNode節(jié)點(diǎn)是就是HDFS的大腦。想了解HDFS文件系統(tǒng),必須了解大腦結(jié)構(gòu)。 咱們就從NameNode節(jié)點(diǎn)開始。NameNode類中,關(guān)于HDFS文件系統(tǒng)的存儲和管理都交給了FSNamesystem負(fù)責(zé)。下面介紹一下FSNamesystem的邏輯組成和類圖。 1. FSNameSystem層次結(jié)構(gòu) 一些概念 INode: 它用來存放文件及目錄的基本信息:名稱,父節(jié)點(diǎn)、修改時(shí)間,訪問時(shí)間以及UGI信息等。 INodeFile: 繼承自INode,除INode信息外,還有組成這個(gè)文件的Blocks列表,重復(fù)因子,Block大小 INodeDirectory:繼承自I

2、Node,此外還有一個(gè)INode列表來組成文件或目錄樹結(jié)構(gòu) Block(BlockInfo):組成文件的物理存儲,有BlockId,size ,以及時(shí)間戳 BlocksMap: 保存數(shù)據(jù)塊到INode和DataNode的映射關(guān)系 FSDirectory:保存文件樹結(jié)構(gòu),HDFS整個(gè)文件系統(tǒng)是通過FSDirectory來管理 FSImage:保存的是文件系統(tǒng)的目錄樹 FSEditlog: 文件樹上的操作日志 FSNamesystem: HDFS文件系統(tǒng)管理 這些概念之間的層次關(guān)系: 我們都知道,在NameNode內(nèi)存中存在兩張很重要的映射表: 1. 文件系統(tǒng)的命名空間(文件目錄樹) 主要是 文件

3、和Block映射關(guān)系 (保存在FSDirectory) 2. Block 和 INodeFile & DataNode的映射關(guān)系 (保存在FSNamesystem) 在上圖中,左邊黑線部分是1 數(shù)據(jù)結(jié)構(gòu)的層次關(guān)系;紅線部分是 2 關(guān)系的層次結(jié)構(gòu) (其中block & DataNode這個(gè)共用) 下面詳細(xì)的介紹上圖所表示的關(guān)系: 文件系統(tǒng) FSNamesystem FSNamesystem 主要有兩個(gè)對象:文件系統(tǒng)(FSDirectory)根節(jié)點(diǎn)rootDir 和BlocksMap映射表 (Block - INode, datanodes, self ref ) 文件系統(tǒng)目錄FSDirector

4、y 保存文件目錄結(jié)構(gòu)(INodeDirectory樹),實(shí)現(xiàn)FSImage和FSEditLog操作實(shí)現(xiàn)。 INode ( INodeFile & INodeDirectory ) 在HDFS中,無論目錄還是文件,都是INode。INode有兩個(gè)派生類INodeFile和INodeDirectory。 INodeFile是INode文件類,INodeDirectory是INode目錄類。每一 INodeDirectory孩子節(jié)點(diǎn)都是由INodeDirectory目錄或INodeFile文件列表構(gòu)成。這樣就形成了一棵INode樹形結(jié)構(gòu)。 NameNode內(nèi)存中保存著HDFS整個(gè)文件系統(tǒng)形成的樹,這

5、棵樹保存在FSDirectory對象內(nèi)。 Block & BlocksMap & BlockInfo HDFS物理存儲單元是Block(缺省的Block大小為64M),每個(gè)Block會有幾個(gè)副本(缺省是3個(gè)),這些Block都是存儲在不同數(shù)據(jù)節(jié)點(diǎn)上的。映射關(guān)系保存在BlocksMap。 Block & INodeFile 每個(gè)INodeFile都有一個(gè)Block列表組成。每一個(gè)block有多個(gè)副本(缺省3個(gè)副本), 各副本保存在不同的數(shù)據(jù)節(jié)點(diǎn)上。 這樣在文件與Block和DataNode之間形成一個(gè)映射關(guān)系表。這張關(guān)系表就保存在FSDirectory對象 . FSImage & FSEditl

6、og(FSDirectory) 由于目錄樹(FSDirectory)在NameNode內(nèi)存中保存,機(jī)器也有掉電的時(shí)候。若只保存在內(nèi)存那勢必會造成數(shù)據(jù)的丟失。因此,系統(tǒng)會周期性的保存文件目錄樹到NameNode本地文件系統(tǒng),生成FSImage。主要由FSImage和FSEditLog,這兩個(gè)類負(fù)責(zé)目錄樹持久化。 當(dāng) HDFS系統(tǒng)非常龐大時(shí),F(xiàn)SImage也會非常大,這樣不能文件系統(tǒng)發(fā)生任何操作時(shí),就更新到FSImage,所以一段時(shí)間內(nèi)文件系統(tǒng)的操作日志會記錄到FSEditLog。到一定時(shí)間會把操作日志FSEditLog同步到FSImage,這樣就形成完整的文件目錄樹。 2. FSNameSystem 主要類關(guān)系圖 這個(gè)類圖可以分成三個(gè)部分 Bock相關(guān)的部分(BlocksMap & BlockInof & Block) INode相關(guān)的部分(INode & INodeDirectory & INodeFile & INodeDirectoryWithQuota) FSImage & FSEditLog (Storage & StorageInfo) 其中 BlockInfo是Block的加強(qiáng)類,增加了INodeFile的引用和DataNode列表 INodeFirectoryWithQuota 是INodeDirectory的增強(qiáng)類,增加了Quota限制功能 從層

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論