更新時(shí)間:2021-04-15 來源:黑馬程序員 瀏覽量:
HDFS( Hadoop Distributed File System)是一個(gè)易于擴(kuò)展的分布式文件系統(tǒng),運(yùn)行在網(wǎng)百上千臺(tái)低成本的機(jī)器上。它與現(xiàn)有的分布式文件系統(tǒng)有許多相似之處,都是用來存值據(jù)的系統(tǒng)工具,而區(qū)別在于HDFS具有高度容錯(cuò)能力,旨在部署在低成本機(jī)器上。HDFS提供對(duì)應(yīng)用程序數(shù)據(jù)的高吞吐量訪問,主要用于對(duì)海量文件信息進(jìn)行存儲(chǔ)和管理,也就是解決大數(shù)據(jù)文件(如TB乃至PB級(jí))的存儲(chǔ)問題。
1、 NameNode(名稱節(jié)點(diǎn))
NameNode是HDFS集群的主服務(wù)器,通常稱為名稱節(jié)點(diǎn)或者主節(jié)點(diǎn)。一但NameNode關(guān)閉,就無法訪問Hadoop集群。NameNode主要以元數(shù)據(jù)的形式進(jìn)行管理和存儲(chǔ),用于維護(hù)文件系統(tǒng)名稱并管理客戶端對(duì)文件的訪問;NameNode記錄對(duì)文件系統(tǒng)名稱空間或其屬性的任何更改操作;HDFS負(fù)責(zé)整個(gè)數(shù)據(jù)集群的管理,并且在配置文件中可以設(shè)置備份數(shù)量,這些信息都由NameNode存儲(chǔ)。
2、DataNode(數(shù)據(jù)節(jié)點(diǎn))
DataNode是HDFS集群中的從服務(wù)器,通常稱為數(shù)據(jù)節(jié)點(diǎn)。文件系統(tǒng)存儲(chǔ)文件的方式是將文件切分成多個(gè)數(shù)據(jù)塊,這些數(shù)據(jù)塊實(shí)際上是存儲(chǔ)在DataNode節(jié)點(diǎn)中的,因此DataNode機(jī)器需要配置大量磁盤空間。它與NameNode保持不斷的通信,DataNode在客戶端或者NameNode的調(diào)度下,存儲(chǔ)并檢索數(shù)據(jù)塊,對(duì)數(shù)據(jù)塊進(jìn)行創(chuàng)建、刪除等操作,并且定期向NameNode發(fā)送所存儲(chǔ)的數(shù)據(jù)塊列表,每當(dāng)DataNode啟動(dòng)時(shí),它將負(fù)責(zé)把持有的數(shù)據(jù)塊列表發(fā)送到NameNode機(jī)器中。
3、Block( 數(shù)據(jù)塊)
每個(gè)磁盤都有默認(rèn)的數(shù)據(jù)塊大小,這是磁盤進(jìn)行數(shù)據(jù)讀/寫的最小單位,HDFS同樣也有塊(block)的概念,它是抽象的塊,而非整個(gè)文件作為存儲(chǔ)單元,在Hadoop2. x版本中,默認(rèn)大小是128M,且備份3份,每個(gè)塊盡可能地存儲(chǔ)于不同的DataNode中。按塊存儲(chǔ)的好處主要是屏蔽了文件的大小(在這種情況下,可以將一個(gè)文件分成N個(gè)數(shù)據(jù)塊,存儲(chǔ)到各個(gè)磁盤,就簡化了存儲(chǔ)系統(tǒng)的設(shè)計(jì)。為了數(shù)據(jù)的安全,必須要進(jìn)行備份,而數(shù)據(jù)塊非常適合數(shù)
據(jù)的備份),提供數(shù)據(jù)的容錯(cuò)性和可用性。
4. Rack(機(jī)架)
Rack是用來存放部署Hadoop集群服務(wù)器的機(jī)架,不同機(jī)架之間的節(jié)點(diǎn)通過交換機(jī)通信,HDFS通過機(jī)架感知策略,使NameNode能夠確定每個(gè)DataNode所屬的機(jī)架ID,使用副本存放策略,來改進(jìn)數(shù)據(jù)的可靠性、可用性和網(wǎng)絡(luò)帶寬的利用率。
5. Metadata(元數(shù)據(jù))
元數(shù)據(jù)從類型上可分為三種信息形式,一是維護(hù)HDFS中文件和目錄的信息,如文件名、目錄名、父目錄信息、文件大小、創(chuàng)建時(shí)間、修改時(shí)間等;二是記錄文件內(nèi)容,存儲(chǔ)相關(guān)信息,如文件分塊情況、副本個(gè)數(shù)、每個(gè)副本所在的DataNode信息等;三是用來記錄HDFS中所有DataNode的信息,用于DataNode管理。
小提示:具體文件內(nèi)容不是元數(shù)據(jù),元數(shù)據(jù)是用于描述和組織具體的文件內(nèi)容,如果沒有元數(shù)據(jù),具體的文件內(nèi)容將變得沒有意義。元數(shù)據(jù)的作用十分重要,它們的可用性直接決定了HDFS的可用性。
猜你喜歡:
零基礎(chǔ)入門必看,大數(shù)據(jù) Hadoop 3.0教程
Hadoop有幾種運(yùn)行模式?各種模式都有哪些特性?
HDFS讀數(shù)據(jù)和寫數(shù)據(jù)的原理分別是什么?