這篇文章給大家分享的是有關(guān)Hadoop1.x和Hadoop2.x有什么區(qū)別的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比鎮(zhèn)原網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式鎮(zhèn)原網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鎮(zhèn)原地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。
Hadoop 2.0 產(chǎn)生背景
Hadoop 1.0 中HDFS和MapReduce在高可用、擴展性等方面存在問題
JobTracker訪問壓力大,影響系統(tǒng)擴展性;
難以支持除MapReduce之外的計算框架,比如Spark、Storm等。
NameNode單點故障,難以應(yīng)用于在線場景;
NameNode壓力過大,且內(nèi)存受限,影響系統(tǒng)擴展性。
HDFS 存在的問題
MapReduce存在的問題
HDFS 2.x
解決HDFS 1.0 單點故障和內(nèi)存受限問題。
解決單點故障
參考 HDFS High Availability Using the Quorum Journal Manager
參考 ZooKeeper Getting Started Guide
HDFS HA:通過準備NameNode解決;
如果住NameNode發(fā)生故障,則切換到備NameNode。
解決內(nèi)存受限問題
HDFS Federation (聯(lián)邦)
水平擴展,支持多個NameNode;
每個NameNode分管一部分目錄;
所有NameNode共享所有DataNode存儲的資源。
2.x僅是架構(gòu)上發(fā)生了改變,使用方式不變
對HDFS使用者透明
HDFS 1.x 中的命令和API仍可以使用
主備NameNode
解決單點故障
主NameNode對外提供服務(wù),備NameNode同步主NameNode元數(shù)據(jù),以待切換;
所有DataNode同時向兩個NameNode匯報數(shù)據(jù)塊信息。
兩種切換選擇
手動切換:通過命令實現(xiàn)準備之間的切換,可以用HDFS升級等場合;(X)
自動切換:基于Zookeeper實現(xiàn)。 (√)
基于Zookeeper自動切換方案
Zookeeper Failove Controller:監(jiān)控Namenode健康狀態(tài),并向Zookeeper 注冊 Namenode
NameNode掛掉后,ZKFC為NameNode競爭鎖,獲得ZKFC鎖的NameNode變?yōu)閍ctive
HDFS 2.x Federation
通過多個namenode/namespace把元數(shù)據(jù)的存儲和管理分散到多個節(jié)點中,使namenode/namespace可以通過增加機器來進行水平擴張。
能把單個namenode的負載分散到多個節(jié)點中,在HDFS數(shù)據(jù)規(guī)模較大的時候也不會降低HDFS的性能??梢酝ㄟ^多個namsespace來隔離不同類型的應(yīng)用,把不同類型應(yīng)用的HDFS的存儲和管理分派到不同的namenode中。
YARN
YARN - Yet Another Resource Negotiator;
Hadoop 2.0 新引入的資源管理系統(tǒng),直接從MRv1演化而來;
核心思想:將MRv1中JobTracker的資源管理和任務(wù)調(diào)度兩個功能分開,分別由ResourceManager和ApplicationMaster進程實現(xiàn); -ResourceManager:負責(zé)整個集群的資源管理和調(diào)度;整個集群只有一個;
ApplicationMaster:負責(zé)應(yīng)用程序相關(guān)的事務(wù),比如任務(wù)調(diào)度、任務(wù)監(jiān)控和容錯等;一個應(yīng)用程序?qū)?yīng)一個ApplicationMaster;
YARN的引入,是的多個計算框架可運行在一個集群中
每個應(yīng)用程序?qū)?yīng)一個ApplicationMaster;
目前多個計算框架可以運行在YARN上,比如MapReduce、Spark、Storm等。
MapReduce On YARN
運行在YARN之上的MapReduce稱為MRv2;
將MapReduce作業(yè)直接運行在YARN上,而不是運行在由JobTracker和TaskTracker構(gòu)建的MRv1系統(tǒng)中;
在Hadoop2.0中并不存在JobTracker和TaskTracker;
MRv2的模塊基本功能:
YARN:負責(zé)資源管理和調(diào)度;
MRAppMaster:負責(zé)一個應(yīng)用程序/作業(yè)的任務(wù)切分、任務(wù)調(diào)度、任務(wù)監(jiān)控和容錯;
Map/Reduce Task:任務(wù)驅(qū)動引擎,與MRv1一致;
每個應(yīng)用程序/作業(yè)(MapReduce作業(yè))對應(yīng)一個MRAppMaster
單個應(yīng)用程序/作業(yè)運行失敗,不會影響其他應(yīng)用程序/作業(yè),由YARN重新啟動;
任務(wù)失敗后,MRAppMaster重新申請資源;
負責(zé)應(yīng)用程序/作業(yè)相關(guān)的事務(wù),包括將從YARN分配得到的資源二次分配給內(nèi)部的任務(wù)、任務(wù)切分、任務(wù)健康和容錯等;
感謝各位的閱讀!關(guān)于“Hadoop1.x和Hadoop2.x有什么區(qū)別”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!