更新時(shí)間:2023-10-05 來源:黑馬程序員 瀏覽量:
Hadoop1.x架構(gòu)
·MapReduce既負(fù)責(zé)Hadoop資源管理,又負(fù)責(zé)Hadoop的數(shù)據(jù)處理,負(fù)荷較大。
·HDFS主要負(fù)責(zé)Hadoop的分布式文件存儲(chǔ)。
Hadoop2.x架構(gòu)
·MapReduce只負(fù)責(zé)Hadoop的數(shù)據(jù)處理,負(fù)載相對(duì)較小。
·YARN負(fù)責(zé)Hadoop的資源管理和任務(wù)調(diào)度。
·HDFS負(fù)責(zé)Hadoop中的分布式文件存儲(chǔ)。
·YARN支持為其他大數(shù)據(jù)開源項(xiàng)目提供資源管理。
·JDK升級(jí):Hadoop 2.x版本支持的最低JDK版本為7。Hadoop 3.x版本支持的最低JDK版本為8。
·重構(gòu)Shell腳本:Hadoop3.x中的Shell腳本被重寫,修補(bǔ)了許多長(zhǎng)期存在的Bug,提高了Hadoop使用時(shí)的穩(wěn)定性。
·精簡(jiǎn)內(nèi)核:Hadoop 3.x剔除了過期的API,將默認(rèn)組件的實(shí)現(xiàn)替換成更高效的實(shí)現(xiàn)。
·類路徑隔離:Hadoop 3.x提供了類路徑隔離機(jī)制,防止不同版本的jar包發(fā)生沖突。
·任務(wù)本地優(yōu)化:Hadoop 3.x中,為MapReduce增加了NativelMapOutputCollector組件來處理Map Task輸出的鍵值對(duì),包括排序、溢寫和IFile序列化,對(duì)于Shuffle比較密集型的任務(wù),可以使MapTask的執(zhí)行速度性能提高2~3倍。
·內(nèi)存參數(shù)自動(dòng)推斷:在Hadoop 2.x中,運(yùn)行MapReduce程序時(shí)設(shè)置內(nèi)存參數(shù)的過程非常繁瑣。而Hadoop 3.x中運(yùn)行MapReduce程序時(shí),可自動(dòng)進(jìn)行內(nèi)存的調(diào)整。
·YARN Timeline Service V2:YARN Timeline Service V2主要對(duì)Hadoop 2.x的YARN進(jìn)行了兩處優(yōu)化,第一使用了更具有伸縮性的分布式體系架構(gòu),以及可擴(kuò)展的后端存儲(chǔ),從而將數(shù)據(jù)的寫入和讀取進(jìn)行了分離;第二采用了一組收集器負(fù)責(zé)將數(shù)據(jù)寫入到后端進(jìn)行存儲(chǔ)。
·增加YARN資源類型:Hadoop 3.x中,YARN資源模型已被通用化,支持用戶定義CPU和內(nèi)存以外的可計(jì)數(shù)資源類型。
·支持多個(gè)NameNode:Hadoop 2.x只允許HDFS中存在一個(gè)Active(激活)狀態(tài)的NameNode和一個(gè)Standby(備用)狀態(tài)的NameNode。Hadoop 3.x版本允許HDFS中存在一個(gè)Active狀態(tài)的NameNode和多個(gè)Standby狀態(tài)的NameNode,有效提高了HDFS的可靠性。
·引入Erasure Coding(糾刪碼):Hadoop 3.x引入了Erasure Coding,在確保HDFS存儲(chǔ)數(shù)據(jù)可靠的前提下,可以節(jié)省50%的存儲(chǔ)空間。