當前位置:編程學習大全網 - 編程語言 - Hadoop版本說明以及Hadoop2中的幾個重要概念

Hadoop版本說明以及Hadoop2中的幾個重要概念

當我們現在(2014年7月)訪問Apache的Hadoop官方網站,可以看到目前官網提供了三個推薦版本。像我壹樣的初學者必然感到困惑: 1.2.X - current stable version, 1.2 release 2.4.X - current stable 2.x version 0.23.X - similar to 2.X.X but missing NN H

當我們現在(2014年7月)訪問Apache的Hadoop官方網站,可以看到目前官網提供了三個推薦版本。像我壹樣的初學者必然感到困惑:

1.2.X - current stable version, 1.2 release

2.4.X - current stable 2.x version

0.23.X - similar to 2.X.X but missing NN HA.

1、為什麽會提供這麽奇怪的版本,我做了壹些了解

Hadoop壹代:原來Hadoop最初的開發時候出現了0.20,0.21,0.22,0.23這樣的版本,後來0.20.x版本最後演化成了現在的1.0.x版本,也就是Hadoop第壹代的穩定版本。也就是說第壹代Hadoop包含三個大版本,分別是0.20.x,0.21.x和0.22.x,其中,0.20.x最後演化成1.0.x,變成了穩定版,也就是現在官網推薦的壹代穩定產品1.2.x。 0.21.x和0.22.x是下壹代Hadoop中的MapReduce實現,只不過資源管理系統還是用的JobTracker,沒有使用YARN。

Hadoop二代:而最初的0.23版本,完全不同於第壹代Hadoop,是壹套全新的架構,包含HDFS Federation和YARN兩個系統,後來也由0.23演化出了2.0.x系列的二代版本。 至於0.23和2.0.x系列的不同,那就是相比於0.23.x,2.x增加了NameNode HA和Wire-compatibility兩個重大特性。

那麽,我們就可以非常清楚的明白,Hadoop官網給出的三個下載鏈接:

1.2.x代表第壹代的Hadoop框架; 2.4.x代表第二代的Hadoop框架;0.23.x也是第二代框架,只是缺少了NN HA特性。

什麽是NN HA? 答:Namenode High Available,即Namenode高可用性。這裏有壹篇關於HA解決方案的介紹:

/articles/hadoop-2-0-namenode-ha-federation-practice-zh

mon/branches/

實際上,當前Hadoop只有兩個版本:Hadoop 1.0(我覺得應該叫他壹代)和Hadoop 2.0(我覺得應該叫他二代,中文免得混亂),其中,Hadoop 1.0由壹個分布式文件系統HDFS和壹個離線計算框架MapReduce組成,而Hadoop 2.0則包含壹個支持NameNode橫向擴展的HDFS,壹個資源管理系統YARN和壹個運行在YARN上的離線計算框架MapReduce。相比於Hadoop 1.0,Hadoop 2.0功能更加強大,且具有更好的擴展性、性能,並支持多種計算框架。

當我們決定是否采用某個軟件用於開源環境時,通常需要考慮以下幾個因素:

(1)是否為開源軟件,即是否免費。

(2) 是否有穩定版,這個壹般軟件官方網站會給出說明。

(3) 是否經實踐驗證,這個可通過檢查是否有壹些大點的公司已經在生產環境中使用知道。

(4) 是否有強大的社區支持,當出現壹個問題時,能夠通過社區、論壇等網絡資源快速獲取解決方法。

3、CHD基於開源Hadoop的另壹個分發版本------

我們在關註Hadoop時可能會經常看到CDH3或CDH4之類的Hadoop版本,那麽他們就是由壹家叫做Cloudera的公司發行的,就像Linux操作系統領域有Redhat壹樣,Hadoop是Apache的開源項目,然後有壹家公司Cloudera就利用Hadoop改造成另壹個發行版。CDH是在Apache的基礎上進行優化的版本。這家雲計算公司發展非常強勁,大有成為下壹個Redhat之勢。

可以在官網了解到相關知識:/content/support/en/downloads.html

4、Hadoop2代中的相關概念

(1) Hadoop 1.0

第壹代Hadoop,由分布式存儲系統HDFS和分布式計算框架MapReduce組成,其中,HDFS由壹個NameNode和多個DataNode組成,MapReduce由壹個JobTracker和多個TaskTracker組成,對應Hadoop版本為Hadoop 1.x和0.21.X,0.22.x。

(2) Hadoop 2.0

第二代Hadoop,為克服Hadoop 1.0中HDFS和MapReduce存在的各種問題而提出的。針對Hadoop 1.0中的單NameNode制約HDFS的擴展性問題,提出了HDFS Federation,它讓多個NameNode分管不同的目錄進而實現訪問隔離和橫向擴展;針對Hadoop 1.0中的MapReduce在擴展性和多框架支持方面的不足,提出了全新的資源管理框架YARN(Yet Another Resource Negotiator),它將JobTracker中的資源管理和作業控制功能分開,分別由組件ResourceManager和ApplicationMaster實現,其中,ResourceManager負責所有應用程序的資源分配,而ApplicationMaster僅負責管理壹個應用程序。對應Hadoop版本為Hadoop

0.23.x和2.x。

(3) MapReduce 1.0或者MRv1(MapReduce version 1)

第壹代MapReduce計算框架,它由兩部分組成:編程模型(programming model)和運行時環境(runtime environment)。它的基本編程模型是將問題抽象成Map和Reduce兩個階段,其中Map階段將輸入數據解析成key/value,叠代調用map()函數處理後,再以key/value的形式輸出到本地目錄,而Reduce階段則將key相同的value進行規約處理,並將最終結果寫到HDFS上。它的運行時環境由兩類服務組成:JobTracker和TaskTracker,其中,JobTracker負責資源管理和所有作業的控制,而TaskTracker負責接收來自JobTracker的命令並執行它。

(4)MapReduce 2.0或者MRv2(MapReduce version 2)或者NextGen MapReduc

MapReduce 2.0或者MRv2具有與MRv1相同的編程模型,唯壹不同的是運行時環境。MRv2是在MRv1基礎上經加工之後,運行於資源管理框架YARN之上的MRv1,它不再由JobTracker和TaskTracker組成,而是變為壹個作業控制進程ApplicationMaster,且ApplicationMaster僅負責壹個作業的管理,至於資源的管理,則由YARN完成。

簡而言之,MRv1是壹個獨立的離線計算框架,而MRv2則是運行於YARN之上的MRv1。

(5) YARN

Hadoop 2.0中的資源管理框架,它是壹個框架管理器,為各種框架進行資源分配和提供運行時環境。而MRv2則是運行在YARN之上的第壹個計算框架,其他計算框架,比如Spark、Storm等,都正在往YARN上移植。YARN類?於幾年前的資源管理系統mesos和更早的Torque。Yarn的官方介紹/2012/09/introduction-to-storm.html

------------本文引用出處-----------

http://dongxicheng.org/mapreduce-nextgen/how-to-select-hadoop-versions/

http://dongxicheng.org/mapreduce-nextgen/hadoop-2-0-terms-explained/

http://dongxicheng.org/mapreduce-nextgen/hadoop-2-2-0/

  • 上一篇:高中沒畢業能學Java嗎
  • 下一篇:適合初學者學習的嵌入式教程
  • copyright 2024編程學習大全網