當前位置:編程學習大全網 - 編程語言 - 編程跟蹤器

編程跟蹤器

(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聯邦,允許多個NameNode管理不同的目錄,實現訪問隔離和水平擴展。針對Hadoop 1.0中MapReduce在可擴展性和多幀支持方面的不足,提出了壹種全新的資源管理框架YARN(另壹種資源協商器),將JobTracker中資源管理和作業控制的功能分離。分別由組件ResourceManager和ApplicationMaster實現,其中ResourceManager負責所有應用的資源分配,ApplicationMaster只負責管理壹個應用。對應的Hadoop版本是Hadoop 0.23.x和2.x。

(3) MapReduce 1.0或MRV 1 (MapReduce版本1)。

第壹代MapReduce計算框架由兩部分組成:編程模型和運行時環境。它的基本編程模型是將問題抽象為兩個階段:Map和Reduce。在map階段,將輸入數據解析成key/value,然後叠代調用Map()函數後,以key/value的形式輸出到本地目錄。在Reduce階段,具有相同關鍵字的值被調整,最終結果被寫入HDFS。其運行時環境由JobTracker和TaskTracker兩種服務組成,其中JobTracker負責所有作業的資源管理和控制,TaskTracker負責接收JobTracker的命令並執行。

(4)MapReduce 2.0或MRv2(MapReduce版本2)或NextGen MapReduc。

MapReduce 2.0或MRv2與MRv1具有相同的編程模型,但唯壹的區別是運行時環境。MRv2是MRv1,是在MRv1的基礎上處理的,運行在資源管理框架YARN上。它不再由JobTracker和TaskTracker組成,而是變成了壹個作業控制流程ApplicationMaster,ApplicationMaster只負責壹個作業的管理。至於資源的管理,紗來完成。

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

(5)Hadoop-MapReduce(壹個離線計算框架)

Hadoop是google分布式計算框架MapReduce和分布式存儲系統GFS的開源實現。它由分布式計算框架MapReduce和分布式存儲系統HDFS (Hadoop分布式文件系統)組成。具有高容錯性、高可擴展性、編程接口簡單等特點,被大多數互聯網公司采用。

(6)Hadoop-Yarn(Hadoop 2.0的壹個分支,實際上是壹個資源管理系統)

YARN是Hadoop(與MapReduce並列)的子項目,實際上是壹個統壹的資源管理系統,可以運行各種計算框架(包括MapReduce、Spark、Storm、MPI等。)在上面。

現在的Hadoop版本比較混亂,讓很多用戶無所適從。其實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功能更強大,可擴展性和性能更好,支持多種計算框架。

諸如Borg/YARN/Mesos/Torca/Corona等系統可以為公司構建壹個內部生態系統,所有的應用和服務都可以以壹種“和平友好”的方式在這個生態系統上運行。有了這種系統,妳就不用擔心用哪個版本的Hadoop了,Hadoop 0.20.2還是Hadoop 1.0,也不用擔心選擇哪個計算模型,各種軟件版本和計算模型都可以在壹臺“超級計算機”上壹起運行。

從開源的角度來看,YARN的提議在壹定程度上削弱了關於多計算框架優劣的爭論。YARN是在Hadoop MapReduce的基礎上進化而來的。在MapReduce時代,很多人批評MapReduce不適合叠代計算和流失計算,於是出現了Spark、Storm等計算框架,這些系統的開發者在自己的網站或論文上與MapReduce進行對比,鼓吹自己的系統如何先進高效。在YARN出現之後,情況就明朗了:MapReduce只是壹種運行在YARN上的應用抽象,Spark和Storm本質上是壹樣的。它們只是針對不同類型的應用而開發的,各有優缺點。此外,如果不出意外,所有未來的計算框架都應該在YARN上開發。就這樣,壹個以YARN為底層資源管理平臺,各種計算框架運行其上的生態系統誕生了。

目前,spark是壹個非常流行的內存計算(或叠代計算,DAG計算)框架。在MapReduce被廣泛詬病效率低下的今天,spark的出現不禁讓大家眼前壹亮。

從架構和應用的角度來看,spark是壹個只包含計算邏輯的開發庫(雖然它提供了獨立運行的主/從服務,但考慮到穩定性和與其他類型作業的繼承性,通常不采用),但它不包含任何與資源管理和調度相關的實現,這使得spark可以在當前主流的資源管理系統上靈活運行,典型代表是mesos和yarn,我們稱之為“mesos上的spark”。在資源管理系統上運行spark會帶來很多好處,包括:與其他計算框架共享集群資源;資源按需分配,提高集群資源利用率。

紗線上的框架

在紗線上運行的框架,包括MapReduce-on-yarn、Spark-on-yarn、Storm-on-yarn和Tez-On-YARN。

(1) MapReduce-on-yarn:紗線上的離線計算;

(2)紗線上的火花:紗線上的記憶計算;

(3)紗上風暴:紗上實時/流計算;

(4)紗線上的Tez:紗線上的DAG計算。

  • 上一篇:采購數控機床,各位有沒有絕招?
  • 下一篇:桂林電子科技大學北海2022錄取線是多少
  • copyright 2024編程學習大全網