首頁常見問題正文

Hadoop3.x相對于之前版本有哪些優(yōu)化?【Hadoop架構(gòu)變遷史】

更新時間:2023-10-05 來源:黑馬程序員 瀏覽量:

Hadoop 1.x和Hadoop 2.x架構(gòu)

Hadoop1.x架構(gòu)

·MapReduce既負(fù)責(zé)Hadoop資源管理,又負(fù)責(zé)Hadoop的數(shù)據(jù)處理,負(fù)荷較大。

·HDFS主要負(fù)責(zé)Hadoop的分布式文件存儲。

Hadoop2.x架構(gòu)

·MapReduce只負(fù)責(zé)Hadoop的數(shù)據(jù)處理,負(fù)載相對較小。

·YARN負(fù)責(zé)Hadoop的資源管理和任務(wù)調(diào)度。

·HDFS負(fù)責(zé)Hadoop中的分布式文件存儲。

·YARN支持為其他大數(shù)據(jù)開源項目提供資源管理。

Hadoop3.x架構(gòu)優(yōu)化

1. Hadoop Common

·JDK升級:Hadoop 2.x版本支持的最低JDK版本為7。Hadoop 3.x版本支持的最低JDK版本為8。

·重構(gòu)Shell腳本:Hadoop3.x中的Shell腳本被重寫,修補了許多長期存在的Bug,提高了Hadoop使用時的穩(wěn)定性。

·精簡內(nèi)核:Hadoop 3.x剔除了過期的API,將默認(rèn)組件的實現(xiàn)替換成更高效的實現(xiàn)。

·類路徑隔離:Hadoop 3.x提供了類路徑隔離機制,防止不同版本的jar包發(fā)生沖突。

2. MapReduce

·任務(wù)本地優(yōu)化:Hadoop 3.x中,為MapReduce增加了NativelMapOutputCollector組件來處理Map Task輸出的鍵值對,包括排序、溢寫和IFile序列化,對于Shuffle比較密集型的任務(wù),可以使MapTask的執(zhí)行速度性能提高2~3倍。

·內(nèi)存參數(shù)自動推斷:在Hadoop 2.x中,運行MapReduce程序時設(shè)置內(nèi)存參數(shù)的過程非常繁瑣。而Hadoop 3.x中運行MapReduce程序時,可自動進行內(nèi)存的調(diào)整。

3. YARN

·YARN Timeline Service V2:YARN Timeline Service V2主要對Hadoop 2.x的YARN進行了兩處優(yōu)化,第一使用了更具有伸縮性的分布式體系架構(gòu),以及可擴展的后端存儲,從而將數(shù)據(jù)的寫入和讀取進行了分離;第二采用了一組收集器負(fù)責(zé)將數(shù)據(jù)寫入到后端進行存儲。

·增加YARN資源類型:Hadoop 3.x中,YARN資源模型已被通用化,支持用戶定義CPU和內(nèi)存以外的可計數(shù)資源類型。

4. HDFS

·支持多個NameNode:Hadoop 2.x只允許HDFS中存在一個Active(激活)狀態(tài)的NameNode和一個Standby(備用)狀態(tài)的NameNode。Hadoop 3.x版本允許HDFS中存在一個Active狀態(tài)的NameNode和多個Standby狀態(tài)的NameNode,有效提高了HDFS的可靠性。

·引入Erasure Coding(糾刪碼):Hadoop 3.x引入了Erasure Coding,在確保HDFS存儲數(shù)據(jù)可靠的前提下,可以節(jié)省50%的存儲空間。


分享到:
在線咨詢 我要報名
和我們在線交談!