這裡是大資料小白系列,這是本系列的第四篇,來看一個真實世界Hadoop叢集的規模,以及我們為什麼需要Hadoop Federation。
首先,我們先要來個直觀的印象,這是你以為的Hadoop叢集:
這是真實世界的Hadoop叢集:
因為,NameNode(下稱NN)中的後設資料記錄了各個資料塊的儲存位置。
所以,後設資料的大小,與資料塊的數量成正比。
當叢集儲存的資料規模到達一定程度時,NN將成為整套系統中的瓶頸所在。NN的儲存能力是有限的,不管是磁碟儲存還是記憶體儲存。
為了解決這個問題,HDFS中引入了聯邦(Federation)的概念。
聯邦:由若干具有國家性質的行政區域(有國、邦、州等不同名稱)聯合而成的統一國家,各行政區域有自己的憲法、立法機關和政府,聯邦也有統一的憲法、立法機關和政府。—— 維基百科
體現在HDFS上,就是“集權”到“分權”的過程,引入了多對NN(Active NN + Standby NN這裡稱為一對),讓他們各自實現“區域自治”。
物理上是這樣的,所有的DN(DataNode)需向所有的NN彙報狀態。
邏輯上是這樣的,一對NN只負責管理屬於自己名稱空間下的目錄。
因此,並不是某對NN管理某些DN,而是對HDFS進行劃分,即邏輯劃分。
上面這樣規模的叢集,有可能劃分出數十個“邦”,各自管理“邦”內的資料,這樣就基本實現了NN的水平擴充套件,同時,還對提高整個系統的可用性有幫助,畢竟,某一對NN當機,只會對系統產生區域性影響。
注:HDFS聯邦並不強制要求各NN都做HA,只是通常是這樣配置的,即每個“邦”的NN都是成對出現的。
好了,關於HDFS的所有介紹就先到這,那些沒講到的,都不重要(誤),下期我們將開始介紹新的內容:MapReduce的基本概念。Cheers!
公眾號 程式設計師雜書館,大資料內容持續更新中,歡迎關注!