1. 程式人生 > >hadoop2.0的新特性

hadoop2.0的新特性

Hadoop2.0

  • 產生背景

    1、Hadoop 1.0中HDFS和MapReduce在高可用、擴充套件性等方面存在問題
    2、HDFS存在的問題
        NameNode單點故障,難以應用於線上場景
        NameNode壓力過大,且記憶體受限,影響系統擴充套件性
    3、MapReduce存在的問題
        JobTracker訪問壓力大,影響系統擴充套件性
        難以支援除MapReduce之外的計算框架,比如Spark、Storm等
    
  • hadoop1.x和hadoop2.x的比較

    Hadoop 2.x由HDFS、MapReduce和YARN三個分支構成;
        HDFS:NN Federation(聯邦)、HA;
            2.X:只支援2個節點HA,3.0實現了一主多從
        MapReduce:執行在YARN上的MR;
            離線計算,基於磁碟I/O計算
        YARN:資源管理系統
    
  • HDFS2.x

    解決HDFS 1.0中單點故障和記憶體受限問題。
    解決單點故障
        HDFS HA:通過主備NameNode解決
        如果主NameNode發生故障,則切換到備NameNode上
    解決記憶體受限問題
        HDFS Federation(聯邦)
        水平擴充套件,支援多個NameNode;
        (1)所有NameNode共享所有DataNode儲存資源
        (2)每個NameNode分管一部分目錄;
    2.x僅是架構上發生了變化,使用方式不變
    對HDFS使用者透明
    HDFS 1.x中的命令和API仍可以使用
    

詳細展開

  • HDFS2.0如何解決主備問題

    主備伺服器,主伺服器主要是和客戶端通訊,備伺服器同步主伺服器資訊,將edits log存到journalNodes叢集上,備伺服器和journalnodes伺服器的edits log同步
    HA為了擴充套件NameNode需要處理元資料資訊
    元資料資訊可以分為動態元資料和靜態元資料
        動態元資料需要通過DataNode分別和兩臺NameNode傳資訊
        靜態元資料可以通過NFS建立共享伺服器,將edits log放進去,兩臺NameNode都可以和共享伺服器通訊,達到同步資料的結果
        最好用journalnode叢集放置edits log,讓兩臺NameNode可以和jn進行通訊,更新記憶體資訊
    NameNode自動切換主備
        zookeeper
            維護樹
            事務處理
            控制
                控制NameNode心跳
    
  • HDFS2.0 HA

    主備NameNode
    解決單點故障(屬性,位置)
        主NameNode對外提供服務,備NameNode同步主NameNode元資料,以待切換
            所有DataNode同時向兩個NameNode彙報資料塊資訊(位置)
            JNN:叢集(屬性)
        standby:備,完成了edits.log檔案的合併產生新的image,推送回ANN
    兩種切換選擇
        手動切換:通過命令實現主備之間的切換,可以用HDFS升級等場合
        自動切換:基於Zookeeper實現
    基於Zookeeper自動切換方案
        ZooKeeper Failover Controller:監控NameNode健康狀態,
        並向Zookeeper註冊NameNode
        NameNode掛掉後,ZKFC為NameNode競爭鎖,獲得ZKFC 鎖的NameNode變為active
    
  • HDFS 2.x Federation(聯邦機制)

    通過多個namenode/namespace把元資料的儲存和管理分散到多個節點中,使到namenode/namespace可以通過增加機器來進行水平擴充套件。
    能把單個namenode的負載分散到多個節點中,在HDFS資料規模較大的時候不會也降低HDFS的效能。可以通過多個namespace來隔離不同型別的應用,把不同型別應用的HDFS元資料的儲存和管理分派到不同的namenode中。