當前位置:
首頁 > 知識 > 架構師入門必看系列,分散式文件系統HDFS解讀

架構師入門必看系列,分散式文件系統HDFS解讀

在Hadoop生態系統中,Hadoop分散式文件系統(HDFS)是非常關鍵的一環,它為管理大數據資源池和支撐相關大數據分析應用提供了一個具有高可靠性的工具。在分散式存儲領域,HDFS也扮演著重要角色,是作為系統架構師必須了解的分散式文件系統之一。

架構師入門必看系列,分散式文件系統HDFS解讀

HDFS的工作原理

HDFS支持在計算節點之間快速傳輸數據。在開始階段,它與MapReduce緊密耦合——MapReduce是一個用於大規模數據集的並行運算的編程框架。

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

此外,HDFS專門設計有高容錯的特性。HDFS可以多次複製每個數據片段,並將副本分發給各個節點,將至少一個副本放在其他伺服器機架上。因此,在集群中的其他地方也可以找到崩潰節點上的數據。這確保了在恢複數據時可以繼續進行處理。

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

這個主節點「數據分塊」架構,從谷歌文件系統(GFS)以及IBM的通用並行文件系統(GPFS)中吸取了部分設計指導元素。GFS是一個可擴展的分散式文件系統,用於大型的、分散式的、對大量數據進行訪問的應用。它運行於廉價的普通硬體上,並提供容錯功能,可以給大量的用戶提供總體性能較高的服務。GPFS是一種專門為集群環境設計的高性能、可擴展的並行文件系統,可以在集群中的多個節點間實現對共享文件系統中文件的快速存取操作,並提供穩定的故障恢復和容錯機制。此外,雖然HDFS不是與可移植操作系統介面(POSIX)的模型兼容的,但它在某些方面也與POSIX設計風格相呼應。

架構師入門必看系列,分散式文件系統HDFS解讀

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能夠支持更進一步的開發實現。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT168企業級 的精彩文章:

Kubernetes 再升級,安全和穩定性是1.12版最大亮點
分羹IPv6市場 山石網科基於IPv6的智能多維安全防護體系深解析

TAG:IT168企業級 |