Hadoop 分布式文件系統(tǒng) (HDFS) 是運行在通用硬件上的分布式文件系統(tǒng)。HDFS 提供了一個高度容錯性和高吞吐量的海量數(shù)據(jù)存儲解決方案。HDFS 已經(jīng)在各種大型在線服務和大型存儲系統(tǒng)中得到廣泛應用,已經(jīng)成為各大網(wǎng)站等在線服務公司的海量存儲事實標準,多年來為網(wǎng)站客戶提供了可靠高效的服務。
隨著信息系統(tǒng)的快速發(fā)展,海量的信息需要可靠存儲的同時,還能被大量的使用者快速地訪問。傳統(tǒng)的存儲方案已經(jīng)從構架上越來越難以適應近幾年來的信息系統(tǒng)業(yè)務的飛速發(fā)展,成為了業(yè)務發(fā)展的瓶頸和障礙。
HDFS 通過一個高效的分布式算法,將數(shù)據(jù)的訪問和存儲分布在大量服務器之中,在可靠地多備份存儲的同時還能將訪問分布在集群中的各個服務器之上,是傳統(tǒng)存儲構架的一個顛覆性的發(fā)展。HDFS 可以提供以下特性:
可自我修復的分布式文件存儲系統(tǒng)
高可擴展性,無需停機動態(tài)擴容
高可靠性,數(shù)據(jù)自動檢測和復制
高吞吐量訪問,消除訪問瓶頸
使用低成本存儲和服務器構建
分布式文件系統(tǒng) HDFS 特性
高吞吐量訪問
HDFS 的每個數(shù)據(jù)塊分布在不同機架的一組服務器之上,在用戶訪問時,HDFS 將會計算使用網(wǎng)絡最近的和訪問量最小的服務器給用戶提供訪問。由于數(shù)據(jù)塊的每個復制拷貝都能提供給用戶訪問,而不是從單數(shù)據(jù)源讀取,HDFS 對于單數(shù)據(jù)塊的訪問將是傳統(tǒng)存儲方案的數(shù)倍。
對于一個較大的文件,HDFS 將文件的不同部分存放于不同服務器之上。在訪問大型文件時,系統(tǒng)可以并行從服務器陣列中的多個服務器并行讀入,增加了大文件讀入的訪問帶寬。
通過以上實現(xiàn),HDFS 通過分布式計算的算法,將數(shù)據(jù)訪問均攤到服務器陣列中的每個服務器的多個數(shù)據(jù)拷貝之上,單個硬盤或服務器的吞吐量限制都可以數(shù)倍甚至數(shù)百倍的突破,提供了極高的數(shù)據(jù)吞吐量。
無縫容量擴充
HDFS 將文件的數(shù)據(jù)塊分配信息存放在NameNode 服務器之上,文件數(shù)據(jù)塊的信息分布地存放在 DataNode 服務器上。當整個系統(tǒng)容量需要擴充時,只需要增加DataNode 的數(shù)量,系統(tǒng)會自動地實時將新的服務器匹配進整體陣列之中。之后,文件的分布算法會將數(shù)據(jù)塊搬遷到新的DataNode 之中,不需任何系統(tǒng)宕機維護或人工干預。通過以上實現(xiàn),HDFS 可以做到在不停止服務的情況下實時地加入新的服務器作為分布式文件系統(tǒng)的容量升級,不需要人工干預文件的重新分布。
高度容錯
HDFS 文件系統(tǒng)假設系統(tǒng)故障(服務器、網(wǎng)絡、存儲故障等)是常態(tài),而不是異常。因此通過多方面保證數(shù)據(jù)的可靠性。數(shù)據(jù)在寫入時被復制多份,并且可以通過用戶自定義的復制策略分布到物理位置不同的服務器上;數(shù)據(jù)在讀寫時將自動進行數(shù)據(jù)的校驗,一旦發(fā)現(xiàn)數(shù)據(jù)校驗錯誤將重新進行復制;HDFS 系統(tǒng)在后臺自動連續(xù)的檢測數(shù)據(jù)的一致性,并維持數(shù)據(jù)的副本數(shù)量在指定的復制水平上。