En 400-6655-581
5
返回列表
> 資源中心 > 技術(shù)干貨 | 大數(shù)據(jù)指北系列-Hadoop3.X探秘

技術(shù)干貨 | 大數(shù)據(jù)指北系列-Hadoop3.X探秘

2019-11-29瀏覽次數(shù):1302
前言


大數(shù)據(jù)技術(shù)從2004年開始誕生到現(xiàn)在已經(jīng)發(fā)展15年了,2008年進入中國,從此以后在中國落地生根,成為了互聯(lián)網(wǎng)公司和科技企業(yè)的技術(shù)新寵。Hadoop到目前已經(jīng)是第四代技術(shù),當(dāng)前最新是的Hadoop 3.X的架構(gòu),但目前而言國內(nèi)應(yīng)用的企業(yè)并不多。本文將詳細介紹Hadoop發(fā)展情況,Hadoop各代技術(shù)之間的功能特性以及對比細節(jié),揭開Hadoop 3.X這塊神秘的面紗。


Hadoop發(fā)展史


首先,先回顧一下Hadoop技術(shù)架構(gòu)的發(fā)展史:



Hadoop總共經(jīng)歷了Hadoop 0.x, Hadoop 1.X, Hadoop 2.x以及目前的3.X四個階段:


Hadoop 0.X目前第一個可追溯的版本(官方開放版)為0.14.1,推出時間為2007年9月4日。

最后一個版本為0.23.11版,推出時間為2014年1月7日。


Hadoop 1.X是以Hadoop 0.20的版本進行代碼分支延伸出來的,第一個版本為1.0.0,推出時間為2011年12月27日。

最后一個版本為1.2.1,于2013年8月1日推出。


Hadoop2.X開始,第一個推出的版本開始有了alpha/beta release以及GA release的差別。通常來說,alpha/beta release為測試版本,GA release為正式版本。

Hadoop2.X是在Hadoop 0.23.1的版本上進行代碼分支延伸出來的,第一個alpha版本是2.0.0,推出時間是2012年5月23日,由于要從1.X換到新的2.X架構(gòu),代碼要調(diào)整的內(nèi)容實在太多,因此正式放出GA release的時間到了一年后,即2013年10月15日,第一個GA release版本為2.2.0。

當(dāng)前的最新版本為2.9.2,推出時間為2018年11月19日,至今已有近一年未更新了,也許這是Hadoop 2.X的最后一個版本。

目前市場上用的最多的版本為2.6.0,該版本于2014年11月18日推出。


Hadoop 3.X在Hadoop2.7.0的版本上進行代碼分支延伸出來的,第一個alpha版本3.0.0,推出時間是2016年9月3日,正式推出GA版本也是到了一年以后,即2017年12月13日,首個正式的GA release版本為3.0.0.

當(dāng)前的最新版本為3.2.1,于2019年9月22日推出。


而和Hadoop發(fā)展史相對應(yīng)的,當(dāng)前市場情況為:


Hadoop 0.X目前國內(nèi)用戶幾乎沒有。


Hadoop1.X是壽命最短的一代技術(shù)架構(gòu),存活了還不到2年,因此用戶很少;


Hadoop 2.X技術(shù)發(fā)展周期最長,歷時了六年多,加上這六年正好是國內(nèi)大數(shù)據(jù)浪潮掀起的六年,因此目前幾乎90%以上的用戶都選擇使用了Hadoop 2.X技術(shù)架構(gòu)。


Hadoop 3.X來勢洶洶,但畢竟推出晚,目前積累的客戶量太少,不過必將成為未來主流趨勢。


四代Hadoop技術(shù)架構(gòu)的技術(shù)特點


Hadoop既然目前已經(jīng)是第四代技術(shù),那么每代技術(shù)的差異點是什么呢?


Hadoop 0.X與Hadoop 1.X


Hadoop 0.X是第一代Hadoop技術(shù)架構(gòu),功能設(shè)計很簡單,這個版本bug非常多,所以非常不好用。而Hadoop 1.X對此進行了一些功能豐富,可用性強了一些,具體來說,有以下區(qū)別:


友好度方面

Hadoop 0.X為純源碼包,必須經(jīng)過編譯后才能使用,另外由于bug較多,編譯過程也比較繁瑣。

Hadoop 1.X既提供了源碼包又提供了編譯好的二進制包,為部分用戶節(jié)約了編譯成本,增加了使用友好度。


功能方面

Hadoop 0.X只有hdfs與mapreduce兩個模塊功能。

Hadoop 1.X 除了hdfs與mapreduce模塊以外,增加了對HBase整合支持,使得Hbase可以將數(shù)據(jù)存儲在hdfs上,并利用mapreduce進行計算。

Hadoop 1.X增加了對安全性模塊的支持。


其他產(chǎn)品

CDH2/CDH3均由Hadoop1.0.0版本衍生而來。


Hadoop 1.X與Hadoop 2.X


Hadoop 1.X已經(jīng)為Hadoop技術(shù)商用提供了可能性,但是因為其功能的局限性,在Hadoop 2.X推出后就迅速銷聲匿跡了。兩者相比,有以下區(qū)別:


JDK支持

Hadoop 1.X 僅支持jdk6的運行環(huán)境。

Hadoop 2.X 則要求jd6或jdk7+的運行環(huán)境,并且在2.7以后的版本不再支持JDK6。


功能方面

Hadoop 1.X 之前同一集群HDFS服務(wù)中只能支持一個NameNode, 不僅擴展受限,而且容易形成單點故障。


HDFS 1.X架構(gòu)


Hadoop 2.X 則增加HA架構(gòu)和HDFS Federation機制,即數(shù)據(jù)聯(lián)邦機制,這使得在一個集群的HDFS服務(wù)中,可以同時運行兩個NameNode,增加了可用性。同時數(shù)據(jù)聯(lián)邦機制讓大量DataNode同時服務(wù)于多個集群的HDFS服務(wù),提高存儲資源的利用效率,也增加了橫向擴展的能力。



HDFS2.X架構(gòu)


Hadoop 1.X 的mapreduce由TaskTracker與JobTracker兩個服務(wù)組成,由一個JobTracker同時管理多個TaskTracker。這樣的架構(gòu)有幾個問題:由于只有一個JobTracker,容易形成單點故障;容錯性與穩(wěn)定性不足,TaskTracker與JobTracker通信故障易造成兩方都僵死;同時缺乏對計算資源的有效管理。



mapreduce1.0架構(gòu)


Hadoop 2.X引入了YARN框架,并將原來的mapreduce計算框架加以改進形成穩(wěn)定性更好,計算性能更優(yōu)秀,具備高可用能力的MRv2計算框架,原有的TaskTracker與JobTracker替代為ResourceManager與NodeManager,并內(nèi)置到Y(jié)ARN中;除此之外YARN還有資源調(diào)度和管理能力,做到了把資源和計算整合到了一起。


YARN架構(gòu)


Hadoop 2.4以后支持HDFS滾動升級。

Hadoop 2.5以后YARN開始支持Rest API。

Hadoop 2.5以后YARN支持Kerberos集成。

Hadoop 2.5以后YARN支持隊列資源管理(CDH動態(tài)資源池的實現(xiàn)前提)。


其他產(chǎn)品


CDH4由Hadoop 2.0.0版本衍生而來。

CDH5由Hadoop 2.3.0版本開始衍化,并有以下的對應(yīng)關(guān)系:




Hadoop 2.X與Hadoop 3.X


Hadoop3.0.0的GA release到目前已經(jīng)推出一年多了,雖然國內(nèi)用戶不多,但是其代表了Hadoop當(dāng)前的發(fā)展趨勢,已經(jīng)逐漸被很多企業(yè)小規(guī)模試用。Hadoop 2.X與Hadoop 3.X兩者相比,有以下區(qū)別:


JDK支持

Hadoop 2.X 可以運行在jd6或jdk7+的運行環(huán)境,以2.7版本為分界線。

Hadoop 3.X 則從第一個版本3.0.0開始,只支持jdk8。


功能方面

Hadoop以多冗余副本的機制保障數(shù)據(jù)的可靠性。在Hadoop 2.X及之前,通常要設(shè)立3副本來實現(xiàn),這個設(shè)計最大的問題在于數(shù)據(jù)量增加到一定程度后,存儲空間冗余特別嚴(yán)重,達到200%。


Hadoop 3.X開始引入了EC機制(Erasure Code糾刪碼機制),利用數(shù)據(jù)塊與奇偶校驗塊計算來保障數(shù)據(jù)的可用性,EC碼目前有五種策略,包括RS-3-2-1024k,RS-6-3-1024k,RS-10-4-1024k,RS-LEGACY-6-3-1024k,XOR-2-1- 1024k。


通常情況下使用XOR-2-1- 1024k策略,即兩個數(shù)據(jù)塊+1個校驗塊即可,存儲冗余量為50%,相較于Hadoop 2.X的200%,整體上節(jié)約了一半空間。


異或操作(XOR-2-1- 1024k策略)


當(dāng)然糾刪碼和數(shù)據(jù)冗余的問題還有很多細節(jié)需要討論,會在后續(xù)文章中進行展開,請持續(xù)關(guān)注。


Hadoop 2.X當(dāng)前只支持雙NameNode的HA模式,即一個Active NameNode+一個Standby NameNode。


Hadoop 3.X開始支持NameNode多活模式,即一個Active NameNode+多個Standby NameNode,進一步提升了HDFS服務(wù)的可靠性。


Hadoop 3.2以后YARN支持定義節(jié)點屬性,可以在節(jié)點上標(biāo)記多個標(biāo)簽,并根據(jù)這些標(biāo)簽來放置運行任務(wù)的Container。這在以前的版本中都是由YARN自身隨機決定的,無法進行人工干預(yù)。


其他產(chǎn)品


CDH6由Hadoop3.0.0版本衍生而來。



隨著Hadoop技術(shù)的繼續(xù)發(fā)展,Hadoop 3.X必將加入更多的新特性,是不是有些躍躍欲試了?可是技術(shù)門檻太高,國內(nèi)案例又不多,團隊培養(yǎng)又太慢,跟不上業(yè)務(wù)需求怎么辦?


上海派拉軟件股份有限公司是國內(nèi)頂級的大數(shù)據(jù)集成服務(wù)商,和Hadoop技術(shù)領(lǐng)導(dǎo)廠商Cloudera長期保持戰(zhàn)略伙伴關(guān)系,連續(xù)兩年被授予國內(nèi)最佳合作伙伴稱號。




派拉軟件立足于客戶實際需求,結(jié)合多年的行業(yè)經(jīng)驗,提供全方位多維度的大數(shù)據(jù)技術(shù)服務(wù),派拉軟件的大數(shù)據(jù)業(yè)務(wù)包含:




派拉軟件的大數(shù)據(jù)技術(shù)團隊遍布北京、上海、廣州、武漢、長春等地,服務(wù)范圍輻射至全國。

如果您有任何大數(shù)據(jù)相關(guān)的需求,歡迎聯(lián)系,派拉軟件一定為您提供圓滿的解決方案。