Haddop2.x在1.x基礎(chǔ)上做了很多的改進,主要增加和改進了4個部分:HA,Federation,YARN,MapReduce On YARN
1. HA
Hadoop中的NameNode好比是人的心臟,絕對不可以停止工作。在Hadoop1.x時代,只有一個NameNode。如果該NameNode數(shù)據(jù)丟失或者不能工作,那么整個集群就不能恢復(fù)了。這是Hadoop1.x中的單點問題,也是Hadoop1.x不可靠的表現(xiàn)Hadoop2的出現(xiàn)解決了這個問題,也被稱為HA。Hadoop2.x中HDFS的HA主要指的是可以同時啟動2個NameNode。其中一個處于工作(Active)狀態(tài),另一個處于隨時待命(Standby)狀態(tài)。這樣,當(dāng)一個NameNode所在的服務(wù)器宕機時,可以在數(shù)據(jù)不丟失的情況下,手工或者自動切換到另一個NameNode提供服務(wù)。如圖所示
這里寫圖片描述
HA主要有以下特點:
- 主備NameNode
- 解決單點故障
- 主NameNode對外提供服務(wù),備NameNode同步主NameNode元數(shù)據(jù),以待切換
- 所有DataNode同時向兩個NameNode匯報數(shù)據(jù)塊信息
- 兩種切換方式
- 基于Zookeeper自動切換方案
- ZookeeperFailoverController:監(jiān)控NameNode健康狀態(tài),并向Zookeeper注冊NameNode
- NameNode怪調(diào)后,ZKFC為NameNode競爭所,獲得ZKFC所的NameNode變?yōu)閍ctive
2.Federation
單Active NN的架構(gòu)使得HDFS在集群擴展性和性能上都有潛在的問題,當(dāng)集群大到一定程度后,NN進程使用的內(nèi)存可能會達到上百G,NN成為了性能的瓶頸
為了解決這個問題,Hadoop 2.x提供了HDFS Federation, 示意圖如下
這里寫圖片描述
Federation主要有以下特點:
- 通過多個NameNode/NameSpace把元數(shù)據(jù)的儲存和管理分散到多個節(jié)點中,使到NameNode/NameSpace可以把通過增加機器來進行水平擴展
- 能把單個NameNode的負載分散到多個節(jié)點,在HDFS數(shù)據(jù)規(guī)模較大的時候不會也降低HDFS的性能??梢酝ㄟ^多個NameSpace來隔離不同類型的應(yīng)用,把不同類型應(yīng)用的HDFS元數(shù)據(jù)的儲存和管理分派到不同的NameNode中
3.YARN
YARN:Yet Another Resource negotiator
- Hadoop2.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)控和容錯等
- YARN的引入,使得多個計算框架可運行在一個集群中
- 每個應(yīng)用程序?qū)?yīng)一個ApplicationMaster
- 目前多個計算框架可以運行在YARN上,比如MapReduce、Spark、Storm等
4.MapReduce On YARN
MapReduce On YARN:MRv2
- MapReduce作業(yè)直接運行在YARN上,而不是由JobTracker和TaskTracker構(gòu)建MRv1系統(tǒng)中
- 基本功能模塊:
- YARN:負責(zé)資源管理和調(diào)度
- MRAppMaster:負責(zé)任務(wù)切分、任務(wù)迪奧五、任務(wù)監(jiān)控和容錯等
- MapTask/ReduceTask:任務(wù)驅(qū)動引擎,與MRv1一直
- 每個MapReduce作業(yè)對應(yīng)一個MRAppMaster
- MRAppMaster任務(wù)調(diào)度
- YARN將資源分配給MRAppMaster
- MRAppMaster進一步將資源分配給內(nèi)部任務(wù)
- MRAppMaster容錯
- 失敗后,由YARN重新啟動
- 任務(wù)失敗后,MRAppMaster重新申請資源