Hadoop新特性

Stayhungry Stayyoung發表於2020-10-20

第八章 Hadoop 再探討

寫在章節前面的話

  1. Hadoop的優化和發展主要體現在兩個方面:
    1. Hadoop兩大核心元件MapReduce和HDFS的架構的改進與提升。
    2. hadoop系統的其他元件不斷豐富,通過優化和提升,Hadoop可以支援更多的應用場景,提高更高的叢集可用性,也帶來更高的資源利用率
  2. 本章內容概覽
    1. Hadoop侷限
    2. Hadoop在核心元件元件的新發展
    3. Hadoop生態系統的成員

8.1 Hadoop的優化與發展

  1. Hadoop1.0 核心元件(僅指MapReduce和HDFS)主要存在以下不足:
    1. 抽象層次低,編碼複雜
    2. 表達能力有限
    3. 開發者需要自己管理作業依賴關係
    4. 難以看到程式整體邏輯。
    5. 執行迭代操作效率低。
    6. 資源浪費
    7. 實時性差
  2. Hadoopdoop改進
    1. 表8.1
      Hadoop框架自身的改進:從1.0到2.0
      Hadoop框架自身的改進:從1.0到2.0
    2. 表8.2
      不斷完善的Hadoop生態系統
      不斷完善的Hadoop生態不斷完善的Hadoop生態系統系統

8.2 HDFS2.0 新特性

8.2.1 HDFS HA

  1. 兩個名稱節點的狀態同步,可以藉助於一個共享儲存系統來實現,比如 NFS、QJM、或者Zookeeper.
    1. 活躍名稱節點的更新資料寫入到共享儲存系統
    2. 待命名稱節點會一直監聽該系統,一旦有新的寫入,就立即從公共儲存系統中讀取這些資料並載入到自己的記憶體中,從而保證名稱節點狀態的完全同步。
  2. 要保證待命名稱節點一直包含最新的叢集各個塊的位置資訊
    1. 需要給資料節點配備兩個名稱節點的地址,並把塊的位置資訊和心跳資訊同時傳送到兩個名稱節點。
    2. Zookeeper可以確保任意時刻只有一個名稱節點對外服務。如果HDFS叢集中有“兩個管家”,會導致資料丟失或者其他異常。

8.2.2 HDFS 聯邦

  1. HDFS1.0 中存在的問題
    1. 單點故障
    2. 可擴充套件性
      1. 不可以橫向擴充套件
      2. 不可以縱向擴充套件
        1. 會帶來過長的系統啟動時間
        2. 當在記憶體空間清理時,傳送錯誤,就會導整個HDFS叢集當機。
    3. 效能
      1. 整個檔案系統的效能會受限於單個名稱節點的吞吐量
    4. 隔離性
      1. 單個名稱節點無法難以提供不同程式之間的隔離性,一個程式可能影響其他執行的程式
  2. HDFS聯邦的設計 1.
  3. HDFS聯邦的訪問方式
  4. HDFS聯邦相對於HDFS1.0的優勢
    1. 可擴充套件性
    2. 效能更好
    3. 良好的隔離性
    4. HDFS聯邦並不能解決單點故障的問題,需要為每個名稱節點部署一個後備名稱節點,以應對名稱節點當機後對業務產生的影響

8.3 新一代資源管理排程框架YARN

8.3.1 MapReduce1.0 的缺陷

  1. 採取了Master/Slave 架構設計,包括一個JobTrack和若干個TaskTrack
  2. 前者負責作業的排程和資源的管理,後者負責執行JobTracker指派的具體的任務
  3. 這種架構很難克服的缺陷
    1. 存在單點故障
    2. JobTracker任務過重。
    3. 容易造成記憶體溢位
    4. 資源分配不合理
  4. 圖8-4
    MapReduce1.0 體系結構
    MapReduce1.0 體系結構

8.3.2 YARN設計思路

  1. 基本思路就是放權,即不讓JobTracker這一元件承擔過多的任務,把原JobTraker三大功能(資源管理、任務排程、任務監控)進行拆分
  2. YARN包括ResourceManager、ApplicationMaster和NodeManager
    1. ResourceManager:負責資源管理
    2. ApplicationManager:負責任務排程和監控
    3. NodeManager負責執行TaskTracker任務
    4. 圖 8-5
      YARN 架構的設計思路
      YARN 架構的設計思路

8.3.3 YARN 體系結構

  1. 圖 8-6
    YARN 體系結構
    YARN 體系結構
  2. 表8-3
    YARN各個元件的功能
    YARN各個元件的功能