深入理解一個(gè)技術(shù)的工作機(jī)制是靈活運(yùn)用和快速解決問(wèn)題的根本方法,也是唯一途徑。對(duì)于HDFS來(lái)說(shuō)除了要明白它的應(yīng)用場(chǎng)景和用法以及通用分布式架構(gòu)之外更重要的是理解關(guān)鍵步驟的原理和實(shí)現(xiàn)細(xì)節(jié)。在看這篇博文之前需要對(duì)HDFS以及分布式系統(tǒng)有一些了解。請(qǐng)參考這篇博客。本篇博文首先對(duì)HDFS的重要特性和使用場(chǎng)景做一個(gè)簡(jiǎn)要說(shuō)明,之后對(duì)HDFS的數(shù)據(jù)讀寫(xiě)、元數(shù)據(jù)管理以及NameNode、SecondaryNamenode的工作機(jī)制進(jìn)行深入分析。過(guò)程中也會(huì)對(duì)一些配置參數(shù)做一個(gè)說(shuō)明。

一.HDFS的重要特性

  First. HDFS是一個(gè)文件系統(tǒng),用于存儲(chǔ)和管理文件,通過(guò)統(tǒng)一的命名空間(類似于本地文件系統(tǒng)的目錄樹(shù))。是分布式的,服務(wù)器集群中各個(gè)節(jié)點(diǎn)都有自己的角色和職責(zé)。

  Then.

  1.HDFS中的文件在物理上是分塊存儲(chǔ)(block),塊的大小可以通過(guò)配置參數(shù)( dfs.blocksize)來(lái)規(guī)定,默認(rèn)大小在hadoop2.x版本中是128M,之前的版本中是64M。

  2.HDFS文件系統(tǒng)會(huì)給客戶端提供一個(gè)統(tǒng)一的抽象目錄樹(shù),客戶端通過(guò)路徑來(lái)訪問(wèn)文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data

  3.目錄結(jié)構(gòu)及文件分塊位置信息(元數(shù)據(jù))的管理由namenode節(jié)點(diǎn)承擔(dān),namenode是HDFS集群主節(jié)點(diǎn),負(fù)責(zé)維護(hù)整個(gè)hdfs文件系統(tǒng)的目錄樹(shù),以及每一個(gè)路徑(文件)所對(duì)應(yīng)的數(shù)據(jù)塊信息(blockid及所在的datanode服務(wù)器)

  4.

網(wǎng)友評(píng)論