Hadoop第三課

那是個好男孩發表於2018-03-14

1.3Hadoop基礎知識

1.3.1術語解釋

1.Hadoop1.0

• 第一代Hadoop,由分散式檔案系統HDFS 和分散式計算框架MapReduce組成

• HDFS由一個NameNode和多個DataNode 組成

• MapReduce由一個JobTracker和多個 TaskTracker組成 

課堂筆記

圖中的4個英文單詞都是指帶程式。

程式簡而言之就是程式(一行行的程式碼)加上啟動這個程式所包含的所有資源。

大致講解一下Hadoop1.0,看圖!master這個節點中有兩個程式,NameNode和JobTracker;slaves這個節點中也有兩個程式,DateNode和TaskTracker。首先我們要知道上文所陳列的三點,顧名思義,NameNode管儲存,將資源儲存在DateNode中;而JobTracker管計算和排程,(DateNode和TaskTracker在同一個地方,一個儲存,一個計算,這種計算方法是最優化的)。我們可以打個比方,比作是一個公司,那麼CEO—JobTracker,祕書—NameNode(真正的儲存是儲存在DateNode是我身上的)。

但這樣的Hadoop1.0有一個致命的缺點,倘若當機的是master這一節點,這一系統就徹底奔潰了,這時,我們想到了一個解決方法,給master作備份,然而這個備份是冷備份,也就是說不是實時備份的,因而我們所說的單點故障是由NameNode的冷備份所造成的,所以Hadoop1.0沒有走下去。

master這一節點在整個叢集中是不唯一的。NameNode是唯一的。slaves這個節點也不唯一,是多個的。

下面分別闡述下幾個程式的作用:

  • NameNode:

  1.HDFS的守護程式。

  2.記錄檔案是如何被分隔成資料塊的。

  3.記錄這些資料塊被儲存到哪些節點上。

  4.會對記憶體和IO進行集中性的管理。

  • JobTracker:

  客戶端提交作業首先是提交給JobTracker的。

  1.用於處理後臺作業的一個程式。

  2.JobTracker會分割任務,並分配到對應的節點上。

  3.分析:任務未完成;任務失敗。重新啟動失敗的任務;重新排程,讓新的節點來完成這一任務。

  • DateNode

   每一臺slaves伺服器上都有一個DateNode的程式。DateNode的工作:負責將HDFS上的資料讀取到本地檔案檔案系統中去。

  • TaskTracker

  做具體工作的一個程式。作用:啟動多個JVM,並執行Map或reduse的任務。

————————————————————————————————————

2.Hadoop2.0 

  • 第二代Hadoop,為克服Hadoop1.0中 HDFS和MapReduce存在的各種問題而提出
  • Hadoop1.0單NameNode制約HDFS擴充套件性,(因為記憶體大小限制了節點的個數,大體為4000個節點個數) 提出HDFS Federation (聯合 思想:分而治之)
  • Hadoop1.0中MapReduce在擴充套件性和多框架支援等方面的不足,將JobTracker中的資 源管理和作業控制功能分開,分別由元件ResourceManager和ApplicationMaster實現 

 

ps:Spark—搭建在Hadoop上才變成分散式的。

因為有了YARN,所以可以有其他框架進入Hadoop2.0這個載體上,這是個鬆耦合。

 

3.MapReduce1.0或MRv1 

MRv1中計算框架為三個部分:

  • 程式設計模型——Map和Reduce函式組成
  • 資料處理引擎——Map Task和Reduce Task組成
  • 執行環境——一個JobTracker和多個 TaskTracker組成 

4.MRv2

  • 與MRv1相同的程式設計模型和資料處理引擎, 不同的是執行環境
  • MRv2是在MRv1基礎上經過加工後,執行 於資源管理框架YARN之上的計算框架 MapReduce
  • 由通用資源管理系統YARN和作業控制程式 ApplicationMaster來完成相應工作 

5.YARN

  • Hadoop2.0中的資源管理系統,是一個通用 資源管理模組,可為各類應用程式進行資 源管理和排程
  • YARN不僅限於MapReduce一種計算框架, 也可供其他框架使用,如Spark、Storm
  • 由於YARN的通用性,下一代MapReduce 的核心已從簡單的支援單一應用的計算框 架轉移到通用資源管理系統上 

ps:MESOS也是一個通用資源管理器。

Hadoop1.0+Spark+Storm這三個框架造成了資源浪費,人力資源問題等。有YARN後,這些問題就得以優化,當Spark用的比較多時,可以將資源遷移到Spark上。

6.HDFS Federation

  • Hadoop2.0對HDFS進行了改進,使 NameNode可以橫向擴充套件成多個,每個 NameNode分管一部分目錄,進而產生了 HDFS Federation
  • 該機制的引入不僅增強了HDFS的擴充套件性, 也使HDFS具備了隔離性 

1.3.2Hadoop版本變遷

Apache Hadoop主要有四個系列的版本:

  • 0.20.X系列——最老版本
  • 0.21.0/0.22.x系列——俗稱Hadoop1.0版本
  • 0.23.X系列——克服Hadoop在擴充套件性和框 架通用性方面的不足
  • 2.X系列——同0.23.X系列一樣,屬於 Hadoop2.0版本,主要增加了NameNode HA等功能

作業

  • 什麼是Hadoop,你理解中的Hadoop是什麼,請舉例說明?
  •  Hadoop2.0生態系統中包括哪些產品,請描述他們之間的關係?

相關文章