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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop详解(五):HDFS HA 和 Federation

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

1. Hadoop 2.0 產(chǎn)生背景

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

2. Hadoop 1.x 和Hadoop 2.x

Hadoop 2.x由HDFS、MapReduce和YARN三個分支構(gòu)成:

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

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

    3. HDFS 2.x Federation(聯(lián)邦)

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

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

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

    主備NameNode

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

    HDFS HA保持NameNode元數(shù)據(jù)信息一致,也就是說保持fsimge和edits文件保持一致。fsimge和edits文件在HDFS 格式化之后產(chǎn)生。

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

    4.1 共享存儲(shared edits)

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

    4.2 切換機制

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

    基于Zookeeper自動切換方案

    • ZooKeeper Failover Controller:監(jiān)控NameNode健康狀態(tài),
    • 當NameNode啟動時,會向Zookeeper注冊NameNode
    • NameNode掛掉后,ZKFC為NameNode競爭鎖,獲得ZKFC 鎖的NameNode變?yōu)閍ctive

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。