官术网_书友最值得收藏!

1.1.2 Hadoop 2.0

隨著Hadoop的影響力逐步擴(kuò)大,其集群規(guī)模得到了迅猛增長,一些弊端就隨之暴露出來了,此時(shí)Hadoop 2.0應(yīng)運(yùn)而生。Hadoop 2.0使Hadoop迎來了第一次質(zhì)的飛躍,它不僅在穩(wěn)定性上有了較好的支持,在擴(kuò)展性上也有了較大的改善,能夠輕松應(yīng)對(duì)上千節(jié)點(diǎn)的規(guī)模。接下來,我們介紹一下Hadoop 2.0的相關(guān)組件。

Hadoop 2.0對(duì)Hadoop 1.0中的每個(gè)組件都進(jìn)行了升級(jí)擴(kuò)展。先來看HDFS,它的整體架構(gòu)并沒有太大的改變,其新增的特性為HA(高可用)和Federation(聯(lián)邦模式),這兩個(gè)特性主要集中在NameNode中。

在Hadoop 2.0中,支持用兩個(gè)NameNode提供HA功能,這兩個(gè)NameNode分別為Active NameNode和Standby NameNode,前者負(fù)責(zé)對(duì)外提供服務(wù),后者則作為前者的熱備節(jié)點(diǎn),它們通過一個(gè)共享的存儲(chǔ)結(jié)構(gòu)——通常是QJM(Quorum Journal Manager)實(shí)現(xiàn)數(shù)據(jù)同步。Active NameNode會(huì)將操作日志實(shí)時(shí)寫入QJM中,Standby NameNode則會(huì)從QJM中實(shí)時(shí)拉取操作日志進(jìn)行操作回放,并定期生成集群的狀態(tài)快照,然后同步給Active NameNode。此時(shí)因?yàn)锳ctive NameNode和Standby NameNode的數(shù)據(jù)是實(shí)時(shí)同步的,所以當(dāng)Active NameNode發(fā)生故障無法提供服務(wù)時(shí),Standby NameNode就能快速進(jìn)行狀態(tài)轉(zhuǎn)換,變?yōu)锳ctive NameNode對(duì)外提供服務(wù),從而實(shí)現(xiàn)故障轉(zhuǎn)移,增強(qiáng)NameNode的可用性。

雖然NameNode的穩(wěn)定性通過HA得到了增強(qiáng),但是隨著集群規(guī)模的擴(kuò)大,NameNode的內(nèi)存逐漸成為影響其擴(kuò)容的主要因素,而Federation為其提供了橫向擴(kuò)展的能力。在Federation中,一個(gè)大HDFS集群會(huì)被分為N個(gè)小HDFS集群,這些小集群既可以共享DataNode的存儲(chǔ)空間,也可以對(duì)其進(jìn)行物理隔離。viewfs負(fù)責(zé)提供N個(gè)小集群的整體視圖,對(duì)普通用戶屏蔽內(nèi)部架構(gòu)細(xì)節(jié),這樣也方便集群管理員管理集群。Federation的整體架構(gòu)如圖1-3所示。

Hadoop 2.0的另一個(gè)亮點(diǎn)是將Hadoop 1.0中的MapReduce拆分為兩個(gè)組件:一個(gè)組件專注于分布式計(jì)算,依然以MapReduce命名;另一個(gè)組件專注于資源管理,命名為YARN,具體內(nèi)容詳見第3章。

圖1-3 Federation的整體架構(gòu)

任何系統(tǒng)都處在不斷迭代的過程中,并且在迭代中會(huì)解決一些瓶頸問題,而隨著使用場景的不斷擴(kuò)大,又會(huì)出現(xiàn)新的瓶頸。Hadoop也不例外,雖然Hadoop 2.0解決了很多問題,使其性能得以提升、集群規(guī)模得以擴(kuò)大,但是在擴(kuò)大的過程中,精益求精的工程師們又發(fā)現(xiàn)了新的瓶頸,例如HDFS雖然在Federation下能夠橫向擴(kuò)展,但是其使用方式并不利于維護(hù),而且數(shù)據(jù)冗余存儲(chǔ)的方式在大規(guī)模集群中暴露出了存儲(chǔ)資源利用不足的問題。再者就是HDFS的橫向擴(kuò)展導(dǎo)致在集群達(dá)到一定規(guī)模時(shí),ResourceManager對(duì)資源的調(diào)度成了新的瓶頸。為了解決這些問題,Hadoop 3.0問世了。

主站蜘蛛池模板: 思南县| 东乡族自治县| 灯塔市| 涿鹿县| 岳阳县| 八宿县| 拜城县| 井陉县| 桐庐县| 桦甸市| 磐安县| 武夷山市| 荆州市| 涟源市| 松滋市| 集贤县| 东乡| 石家庄市| 昌都县| 丰都县| 武陟县| 福州市| 涞源县| 大埔县| 呼图壁县| 永平县| 上犹县| 泰来县| 绥江县| 饶河县| 小金县| 疏勒县| 山阴县| 盘锦市| 南昌县| 聂拉木县| 南开区| 濮阳市| 百色市| 乐都县| 湖南省|