日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Hadoop详解(五):HDFS HA 和 Federation

發布時間:2025/4/16 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop详解(五):HDFS HA 和 Federation 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Hadoop 2.0 產生背景

  • Hadoop 1.0中HDFS和MapReduce在高可用、擴展性等方面存在問題
  • HDFS存在的問題
    • NameNode單點故障,難以應用于在線場景 HA
    • NameNode壓力過大,且內存受限,影擴展性 Federation
  • MapReduce存在的問題響
    • JobTracker訪問壓力大,影響系統擴展性
    • 難以支持除MapReduce之外的計算框架,比如Spark、Storm等

2. Hadoop 1.x 和Hadoop 2.x

Hadoop 2.x由HDFS、MapReduce和YARN三個分支構成:

  • HDFS:NN Federation(聯邦)、HA。2.X:只支持2個節點HA,3.0實現了一主多備
  • MapReduce:運行在YARN上的MR;
    • 離線計算,基于磁盤I/O計算
  • YARN,資源管理系統
  • 2.1 HDFS 2.x

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

    3. HDFS 2.x Federation(聯邦)

    通過多個namenode/namespace把元數據的存儲和管理分散到多個節點中,使到namenode/namespace可以通過增加機器來進行水平擴展。

    能把單個namenode的負載分散到多個節點中,在HDFS數據規模較大的時候不會也降低HDFS的性能。可以通過多個namespace來隔離不同類型的應用,把不同類型應用的HDFS元數據的存儲和管理分派到不同的namenode中。

    4. HDFS 2.x HA(高可用)

    主備NameNode

    Hadoop HA主要是解決NameNode單點故障問題,主NameNode對外提供服務,備NameNode同步主NameNode元數據,以待切換。所有DataNode同時向兩個NameNode匯報數據塊信息(位置)。并且在Hadoop HA中還含有JNN集群用來存儲共享存儲狀態(shared edits文件)。處于StandyBy節點的NameNode,主要作用是完成了edits.log文件的合并產生新的image,推送回給Active NameNode。該步驟和SecondaryNameNode的備份功能類似,通過這種方式保證了StandyBy節點的NameNode和Actvie NameNode的fsimage文件一致。edit文件通過JNN集群存儲共享存儲狀態,active namenode處理所有的操作請求(讀寫),讀寫入到這個共享狀態的集群節點。

    HDFS HA保持NameNode元數據信息一致,也就是說保持fsimge和edits文件保持一致。fsimge和edits文件在HDFS 格式化之后產生。

    Hadoop的元數據主要作用是維護HDFS文件系統中文件和目錄相關信息。元數據的存儲形式主要有3類:內存鏡像、磁盤鏡像(FSImage)、日志(EditLog)。在Namenode啟動時,會加載磁盤鏡像到內存中以進行元數據的管理,存儲在NameNode內存;磁盤鏡像是某一時刻HDFS的元數據信息的快照,包含所有相關Datanode節點文件塊映射關系和命名空間(Namespace)信息,存儲在NameNode本地文件系統;日志文件記錄client發起的每一次操作信息,即保存所有對文件系統的修改操作,用于定期和磁盤鏡像合并成最新鏡像,保證NameNode元數據信息的完整,存儲在NameNode本地和共享存儲系統(QJM)中。

    4.1 共享存儲(shared edits)

    active namenode處理所有的操作請求(讀寫),standby namenode只同步狀態datanode會同時向兩個namenode發送block報告和心跳當滿足一次checkpoint時,standby namenode進行一次合并操作active NN執行任何命名空間的修改都會持久化到一半以上的journalnodes上而Standby NN負責觀察edits log的變化,它能夠讀取從JNs中讀取edits信息,并更新其內部的命名空間一旦Active NN出現故障,Standby NN將會保證從JNs中讀出了全部的Edits,然后切換成Active狀態一次checkpoint過程

    4.2 切換機制

    • 手動切換:通過命令實現主備之間的切換,可以用HDFS升級等場合
    • 自動切換:基于Zookeeper實現

    基于Zookeeper自動切換方案

    • ZooKeeper Failover Controller:監控NameNode健康狀態,
    • 當NameNode啟動時,會向Zookeeper注冊NameNode
    • NameNode掛掉后,ZKFC為NameNode競爭鎖,獲得ZKFC 鎖的NameNode變為active

    總結

    以上是生活随笔為你收集整理的Hadoop详解(五):HDFS HA 和 Federation的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。