首頁(yè)常見問(wèn)題正文

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

更新時(shí)間:2023-10-05 來(lái)源:黑馬程序員 瀏覽量:

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的分布式文件存儲(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)目提供資源管理。

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

1. Hadoop Common

·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剔除了過(guò)期的API,將默認(rèn)組件的實(shí)現(xiàn)替換成更高效的實(shí)現(xiàn)。

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

2. MapReduce

·任務(wù)本地優(yōu)化:Hadoop 3.x中,為MapReduce增加了NativelMapOutputCollector組件來(lái)處理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ù)的過(guò)程非常繁瑣。而Hadoop 3.x中運(yùn)行MapReduce程序時(shí),可自動(dòng)進(jìn)行內(nèi)存的調(diào)整。

3. YARN

·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ù)資源類型。

4. HDFS

·支持多個(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ǔ)空間。


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!