您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關HDFS的工作原理是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
HDFS的工作原理
HDFS支持在計算節點之間快速傳輸數據。在開始階段,它與MapReduce緊密耦合——MapReduce是一個用于大規模數據集的并行運算的編程框架。
當HDFS接收數據時,會將信息分解為單獨的塊,并將它們分布到集群中的不同節點,從而支持高效的并行處理。
此外,HDFS專門設計有高容錯的特性。HDFS可以多次復制每個數據片段,并將副本分發給各個節點,將至少一個副本放在其他服務器機架上。因此,在集群中的其他地方也可以找到崩潰節點上的數據。這確保了在恢復數據時可以繼續進行處理。
HDFS使用主/從架構。在其最初版本中,每個Hadoop集群由一個NameNode(用于管理文件系統運行)和支持DataNode(用于管理單個計算節點上的數據存儲)組成。這些HDFS元素結合起來,可支持具有大數據集的應用程序。
這個主節點“數據分塊”架構,從谷歌文件系統(GFS)以及IBM的通用并行文件系統(GPFS)中吸取了部分設計指導元素。GFS是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用。它運行于廉價的普通硬件上,并提供容錯功能,可以給大量的用戶提供總體性能較高的服務。GPFS是一種專門為集群環境設計的高性能、可擴展的并行文件系統,可以在集群中的多個節點間實現對共享文件系統中文件的快速存取操作,并提供穩定的故障恢復和容錯機制。此外,雖然HDFS不是與可移植操作系統接口(POSIX)的模型兼容的,但它在某些方面也與POSIX設計風格相呼應。
HDFS架構圖-應用程序通過Client與NameNode和DataNode進行交互
為什么要使用HDFS
HDFS最早出自雅虎,用于滿足該公司廣告服務和搜索引擎的部分需求。與其他面向Web的公司一樣,雅虎發現自己需要處理的應用程序的用戶訪問越來越多,而這些用戶正在產生越來越多的數據。后來,Facebook、eBay和Twitter等公司也開始使用HDFS作為大數據分析的基礎,來解決相同的需求。
但HDFS的用途遠不止于此。上述所提到的大規模Web搜索,我們可以將其歸類于數據密集型并行計算。此外,HDFS也常用于計算密集型并行計算應用場景,如氣象計算。在數據密集與計算密集混合型場景中也多有應用,如3D建模與渲染。HDFS也是許多開源數據倉庫(有時稱為數據湖,Data Lake)的核心。
HDFS通常用于大規模部署,因為它具備一個重要特性,就是可運行在普通廉價機器上。還有,例如運行Web搜索和相關應用程序的這種系統,往往需要可以擴展到數百PB和數千個節點,因此系統必須擁有易于擴展的特性,這正是HDFS所具備的。此外,服務器故障在這種規模下很常見,HDFS所提供的容錯能力在這方面也很有實際價值。
不適用于HDFS的場景
首先,HDFS不適用于對延遲要求較高的場景,如實時查詢。在延遲方面,HDFS沒有充分的優勢。其次,HDFS也難以支持大量小文件的存儲。在Hadoop系統中,通常將“小文件”定義為遠小于HDFS的block size(默認64MB)的文件,由于每個文件都會產生各自的MetaData元數據,Hadoop通過Namenode來存儲這些信息,若小文件過多,容易導致占用大量NameNode內存,也會使尋道時間超過讀取時間,為系統帶來性能瓶頸。
此外,HDFS不支持多用戶寫入,也無法進行文件隨機修改。僅支持以append的方式,即通過追加的方式添加到文件結尾處。HDFS適用于存儲半結構化和非結構化數據,若有數據嚴格的結構化特性,強行采用HDFS是不合適的。最后,HDFS適用于TB、PB級的大數據處理,文件數量通常在百萬以上,如果數據量很小,完全沒有必要采用HDFS。
HDFS和Hadoop的歷史
這里簡要說一些關鍵的時間節點。2006年,Apache Hadoop項目正式啟動,HDFS和MapReduce開始獨立發展。該軟件開始廣泛應用于各行各業的大數據分析項目中。2012年,HDFS和Hadoop版本1.0發布。
2013年Hadoop 2.0版本加入了通用YARN資源管理器,MapReduce和HDFS有效解耦。此后,Hadoop支持各種數據處理框架和文件系統。雖然MapReduce經常被Apache Spark所替代,但HDFS仍然是Hadoop的一種流行的文件格式。
在發布了四個alpha版本和一個beta版本之后,Apache Hadoop 3.0.0在2017年12月開始普遍可用,HDFS增強支持額外的NameNode、擦除編碼工具和更大的數據壓縮。與此同時,HDFS工具,如LinkedIn的開源Dr. Elephant和Dynamometer 性能測試工具的進步,也使HDFS能夠支持更進一步的開發實現。
關于“HDFS的工作原理是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。