從零自學Hadoop(10):Hadoop1.x與Hadoop2.x

sinodzh發表於2015-10-10

閱讀目錄

本文版權歸mephisto和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作。

文章是哥(mephisto)寫的,SourceLink

 

  上一篇,我們使用Maven構建了我的MapReduce程式,並且成功的執行了Job。那麼大家可能會覺得為什麼要這麼做,有沒有些理論依據,畢竟對hadoop的功能,特點有了瞭解後,做事情會心裡稍微有點底。所以我們開始補些理論知識。

  下面,我們就開始比較下Hadoop1.x與Hadoop2.x,感受下產品迭代的快樂。

  申明,這一篇幅的圖都是網上找的,就不打水印了,做人得厚道。

里程碑

一:里程碑

  2003-2004年 Doug Cutting和Mike Cafarella利用業餘時間實現了HDFS和MapReduce機制。

  2005年作為Lucene的子專案Nutch正式引入Apache基金會

  2006年MapReduce,NDFS分別被納入Hadoop專案中

  2010年釋出0.20.2:security  append

  2011年12月0.20.線路釋出1.0版本

  2012年釋出1.04

  2011年10月份釋出0.23.0:開始有了Yarn

  2012年3月份釋出2.0.0:alpha

  2013年釋出2.1.0:beta

  2013年10月釋出2.2.0:穩定版。很重要的版本,Yarn,High Availability for HDFS,HDFS Federation,HDFS Snapshots,Support for running Hadoop on Microsoft Windows

  2014年11月釋出2.6.0:很重要的版本,比如金鑰管理伺服器,憑證提供,支援SSD,熱插拔DataNode,long running services in YARN,Support for rolling upgrades等。

  2015年4月釋出2.7.0:放棄了jdk1.6,不是穩定版,支援支援檔案截斷,Make YARN authorization pluggable等。

  2015年7月釋出2.7.1:2.7線路的穩定版。

  2015年9月23號釋出2.6.1:2.6線路的版本,修復了很多bug。

Hadoop1.x與Hadoop2.x

一:架構比較

  Hadoop1.x中1的NameNodes只可能有一個,雖然可以通過SecondaryNameNode與NameNode進行資料同步備份,但是總會存在一定的時延,如果NameNode掛掉,但是如果有部份資料還沒有同步到SecondaryNameNode上,還是可能會存在著資料丟失的問題。

  Hadoop2.x中,HDFS的變化,主要體現在增強了NameNode的水平擴充套件及可用性,可以同時部署多個NameNode,這些NameNodes之間是相互獨立,也就是說他們不需要相互協調,DataNode同時在所有NameNodes註冊,做為他們共有的儲存節點,並向定時向所有的這些NameNodes傳送心跳塊使用情況的報告,並處理所有NameNodes向其傳送的指令。

  Hadoop2.x中將MapReduce分成兩部門,形成了Yarn(雲資源管理系統),從而擴充套件出很多新的玩法。

二:定位

  從圖中,我們可以看到Hadoop1.x是單一功能使用系統,Hadoop2.x是多用途平臺。2.x開始,hadoop的功能增強了許多,可以適合很多地方。

三:特性:

  Hadoop1.x:批量應用

  Hadoop2.x:批量應用,互動式,實時性,流式,記憶體計算。

四:HDFS與HDFS2

  HDFS2多了高可用性。

五:MapReduce

  Hadoop2.x中將原來1.x中的MapReduce的功能分開了,只保留了資料處理。將叢集資源管理放到了Yarn中。從而讓2.x的生態圈極大的擴充套件。

六:Hadoop2.x中HDFS架構

  圖中,我們可以看到一個NameNode(Active)還有一個NameNode(Standby)。這兩者中間有JournalNode,放映象檔案,編輯日誌檔案。使用Zookeeper來保證故障轉移,從而實現HA。還具有聯邦的功能,

七:Yarn架構圖

  Hadoop發展到了2.6.0,Yarn也有了HA。Yarn把Datanode和應用的執行狀態都存在RMStateStore上面。從而具有long running services,Support for rolling upgrades。任務掛了就不用重新跑了。太牛的功能了。

八:生態應用

  Hadoop1.x其他的生態應用都是基於MapReduce上面的,但是到了Hadoop2.x,他將資源管理的的放到了Yarn,那麼其他的生態應用,可以基於MapReduce的計算框架,也可以選擇Tez(DAG計算框架),Storm(流式計算框架)。所以使用範圍大大的擴充套件開來。

--------------------------------------------------------------------

  到此,本章節的內容講述完畢。

系列索引

  【源】從零自學Hadoop系列索引

 

 

 

 

本文版權歸mephisto和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作。

文章是哥(mephisto)寫的,SourceLink

 

相關文章