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