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


閱讀目錄

本文版權歸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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM