溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HDFS的工作原理是什么

發(fā)布時間:2021-12-13 11:15:25 來源:億速云 閱讀:640 作者:小新 欄目:軟件技術(shù)

這篇文章將為大家詳細講解有關(guān)HDFS的工作原理是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

HDFS的工作原理

HDFS支持在計算節(jié)點之間快速傳輸數(shù)據(jù)。在開始階段,它與MapReduce緊密耦合——MapReduce是一個用于大規(guī)模數(shù)據(jù)集的并行運算的編程框架。

當HDFS接收數(shù)據(jù)時,會將信息分解為單獨的塊,并將它們分布到集群中的不同節(jié)點,從而支持高效的并行處理。

此外,HDFS專門設(shè)計有高容錯的特性。HDFS可以多次復制每個數(shù)據(jù)片段,并將副本分發(fā)給各個節(jié)點,將至少一個副本放在其他服務(wù)器機架上。因此,在集群中的其他地方也可以找到崩潰節(jié)點上的數(shù)據(jù)。這確保了在恢復數(shù)據(jù)時可以繼續(xù)進行處理。

HDFS使用主/從架構(gòu)。在其最初版本中,每個Hadoop集群由一個NameNode(用于管理文件系統(tǒng)運行)和支持DataNode(用于管理單個計算節(jié)點上的數(shù)據(jù)存儲)組成。這些HDFS元素結(jié)合起來,可支持具有大數(shù)據(jù)集的應(yīng)用程序。

這個主節(jié)點“數(shù)據(jù)分塊”架構(gòu),從谷歌文件系統(tǒng)(GFS)以及IBM的通用并行文件系統(tǒng)(GPFS)中吸取了部分設(shè)計指導元素。GFS是一個可擴展的分布式文件系統(tǒng),用于大型的、分布式的、對大量數(shù)據(jù)進行訪問的應(yīng)用。它運行于廉價的普通硬件上,并提供容錯功能,可以給大量的用戶提供總體性能較高的服務(wù)。GPFS是一種專門為集群環(huán)境設(shè)計的高性能、可擴展的并行文件系統(tǒng),可以在集群中的多個節(jié)點間實現(xiàn)對共享文件系統(tǒng)中文件的快速存取操作,并提供穩(wěn)定的故障恢復和容錯機制。此外,雖然HDFS不是與可移植操作系統(tǒng)接口(POSIX)的模型兼容的,但它在某些方面也與POSIX設(shè)計風格相呼應(yīng)。

HDFS的工作原理是什么

HDFS架構(gòu)圖-應(yīng)用程序通過Client與NameNode和DataNode進行交互

為什么要使用HDFS

HDFS最早出自雅虎,用于滿足該公司廣告服務(wù)和搜索引擎的部分需求。與其他面向Web的公司一樣,雅虎發(fā)現(xiàn)自己需要處理的應(yīng)用程序的用戶訪問越來越多,而這些用戶正在產(chǎn)生越來越多的數(shù)據(jù)。后來,F(xiàn)acebook、eBay和Twitter等公司也開始使用HDFS作為大數(shù)據(jù)分析的基礎(chǔ),來解決相同的需求。

但HDFS的用途遠不止于此。上述所提到的大規(guī)模Web搜索,我們可以將其歸類于數(shù)據(jù)密集型并行計算。此外,HDFS也常用于計算密集型并行計算應(yīng)用場景,如氣象計算。在數(shù)據(jù)密集與計算密集混合型場景中也多有應(yīng)用,如3D建模與渲染。HDFS也是許多開源數(shù)據(jù)倉庫(有時稱為數(shù)據(jù)湖,Data Lake)的核心。

HDFS通常用于大規(guī)模部署,因為它具備一個重要特性,就是可運行在普通廉價機器上。還有,例如運行Web搜索和相關(guān)應(yīng)用程序的這種系統(tǒng),往往需要可以擴展到數(shù)百PB和數(shù)千個節(jié)點,因此系統(tǒng)必須擁有易于擴展的特性,這正是HDFS所具備的。此外,服務(wù)器故障在這種規(guī)模下很常見,HDFS所提供的容錯能力在這方面也很有實際價值。

不適用于HDFS的場景

首先,HDFS不適用于對延遲要求較高的場景,如實時查詢。在延遲方面,HDFS沒有充分的優(yōu)勢。其次,HDFS也難以支持大量小文件的存儲。在Hadoop系統(tǒng)中,通常將“小文件”定義為遠小于HDFS的block size(默認64MB)的文件,由于每個文件都會產(chǎn)生各自的MetaData元數(shù)據(jù),Hadoop通過Namenode來存儲這些信息,若小文件過多,容易導致占用大量NameNode內(nèi)存,也會使尋道時間超過讀取時間,為系統(tǒng)帶來性能瓶頸。

此外,HDFS不支持多用戶寫入,也無法進行文件隨機修改。僅支持以append的方式,即通過追加的方式添加到文件結(jié)尾處。HDFS適用于存儲半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),若有數(shù)據(jù)嚴格的結(jié)構(gòu)化特性,強行采用HDFS是不合適的。最后,HDFS適用于TB、PB級的大數(shù)據(jù)處理,文件數(shù)量通常在百萬以上,如果數(shù)據(jù)量很小,完全沒有必要采用HDFS。

HDFS和Hadoop的歷史

這里簡要說一些關(guān)鍵的時間節(jié)點。2006年,Apache Hadoop項目正式啟動,HDFS和MapReduce開始獨立發(fā)展。該軟件開始廣泛應(yīng)用于各行各業(yè)的大數(shù)據(jù)分析項目中。2012年,HDFS和Hadoop版本1.0發(fā)布。

2013年Hadoop 2.0版本加入了通用YARN資源管理器,MapReduce和HDFS有效解耦。此后,Hadoop支持各種數(shù)據(jù)處理框架和文件系統(tǒng)。雖然MapReduce經(jīng)常被Apache Spark所替代,但HDFS仍然是Hadoop的一種流行的文件格式。

在發(fā)布了四個alpha版本和一個beta版本之后,Apache Hadoop 3.0.0在2017年12月開始普遍可用,HDFS增強支持額外的NameNode、擦除編碼工具和更大的數(shù)據(jù)壓縮。與此同時,HDFS工具,如LinkedIn的開源Dr. Elephant和Dynamometer 性能測試工具的進步,也使HDFS能夠支持更進一步的開發(fā)實現(xiàn)。

關(guān)于“HDFS的工作原理是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI