Hadoop之NameNode Federation圖文詳解
一. 前言
1.NameNode架構(gòu)的局限性
(1)Namespace(命名空間)的限制
由于NameNode在內(nèi)存中存儲(chǔ)所有的元數(shù)據(jù)(metadata),因此單個(gè)NameNode所能存儲(chǔ)的對象(文件+塊)數(shù)目受到NameNode所在JVM的heap size的限制。50G的heap能夠存儲(chǔ)20億(200million)個(gè)對象,這20億個(gè)對象支持4000個(gè)DataNode,12PB的存儲(chǔ)(假設(shè)文件平均大小為40MB)。隨著數(shù)據(jù)的飛速增長,存儲(chǔ)的需求也隨之增長。單個(gè)DataNode從4T增長到36T,集群的尺寸增長到8000個(gè)DataNode。存儲(chǔ)的需求從12PB增長到大于100PB。
(2)隔離問題
由于HDFS僅有一個(gè)NameNode,無法隔離各個(gè)程序,因此HDFS上的一個(gè)實(shí)驗(yàn)程序就很有可能影響整個(gè)HDFS上運(yùn)行的程序。
(3)性能的瓶頸
由于是單個(gè)NameNode的HDFS架構(gòu),因此整個(gè)HDFS文件系統(tǒng)的吞吐量受限于單個(gè)NameNode的吞吐量。
2.HDFS Federation架構(gòu)設(shè)計(jì),如圖所示
能不能有多個(gè)NameNode
HDFS Federation架構(gòu)設(shè)計(jì)
二.實(shí)現(xiàn)
NameNode HA是為了解決NameNode可用性的問題,而NameNode Federation則主要是為了解決NameNode擴(kuò)展性,隔離性,以及單個(gè)NameNode性能方面的問題。NameNode Federation架構(gòu)如下:
NameNode Federation使用了多個(gè)命名空間,這些命名空間互相獨(dú)立,自制(其實(shí)是對元數(shù)據(jù)的水平切分),而集群中所有DataNode向所有NameNode都進(jìn)行注冊,而一個(gè)塊池(block pool)有屬于同一個(gè)命名空間的數(shù)據(jù)塊組成,每個(gè)DataNode可能會(huì)存儲(chǔ)集群中所有塊池的數(shù)據(jù)塊,每個(gè)塊池互相獨(dú)立,有一個(gè)掛掉了也不會(huì)影響其他塊池正常工作。
同時(shí)部署了NameNode HA和NameNode Federation時(shí),集群結(jié)構(gòu)會(huì)相對復(fù)雜一點(diǎn),如下圖。在實(shí)際的生成環(huán)境中,NameNode HA幾乎是必備,而當(dāng)集群規(guī)模在1000臺(tái)以下時(shí),幾乎是不需要NameNode Federation的。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
Spring實(shí)現(xiàn)類私有方法的幾個(gè)問題(親測通用解決方案)
現(xiàn)實(shí)的業(yè)務(wù)場景中,可能需要對Spring的實(shí)現(xiàn)類的私有方法進(jìn)行測試。本文給大家分享Spring實(shí)現(xiàn)類私有方法面臨的幾個(gè)問題及解決方案,感興趣的朋友跟隨小編一起看看吧2021-06-06詳談springboot過濾器和攔截器的實(shí)現(xiàn)及區(qū)別
今天小編就為大家分享一篇詳談springboot過濾器和攔截器的實(shí)現(xiàn)及區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08Java數(shù)據(jù)結(jié)構(gòu)之棧與隊(duì)列實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Java數(shù)據(jù)結(jié)構(gòu)之棧與隊(duì)列的相關(guān)資料,算是作為用java描述數(shù)據(jù)結(jié)構(gòu)的一個(gè)開始,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11java實(shí)現(xiàn)輕輕松松控制臺(tái)斗地主的示例代碼
這篇文章主要介紹了java實(shí)現(xiàn)輕輕松松控制臺(tái)斗地主,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Java子類調(diào)用父類的私有屬性的實(shí)現(xiàn)示例
在Java中,我們都知道子類不能直接訪問或修改父類的私有屬性,本文主要介紹了Java子類調(diào)用父類的私有屬性的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05深入了解Java8中的時(shí)區(qū)日期時(shí)間
Java?在?java.time?包中也提供了幾個(gè)類用于處理需要關(guān)注時(shí)區(qū)的日期時(shí)間?API,本文將通過簡單的示例講講它們的用法,需要的可以參考一下2023-04-04IDEA導(dǎo)入外部項(xiàng)目報(bào)Error:java: 無效的目標(biāo)發(fā)行版: 11的解決方法
這篇文章主要介紹了IDEA導(dǎo)入外部項(xiàng)目報(bào)Error:java: 無效的目標(biāo)發(fā)行版: 11,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09