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