<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ZooKeeper在HBase集群中的作用

          共 1903字,需瀏覽 4分鐘

           ·

          2020-07-11 04:27

          ZooKeeper作為分布式協(xié)調(diào)組件,在大數(shù)據(jù)領(lǐng)域的其他分布式組件中往往扮演著重要的輔助角色,因此我們就算不單獨(dú)去研究ZooKeeper,也短不了要接觸它。本文就以最典型的HBase為例,簡(jiǎn)要介紹ZooKeeper為HBase提供了哪些功能。


          下圖示出一個(gè)完整HBase集群的架構(gòu),其中包含ZK節(jié)點(diǎn)。65f685b7144681d05010c788eab64242.webpHMaster、RegionServer容錯(cuò)當(dāng)HBase集群?jiǎn)?dòng)成功后,會(huì)在ZK注冊(cè)如下znode:
          • /hbase/master,其中包含當(dāng)前活動(dòng)(即贏得選舉)的HMaster信息;

          • /hbase/backup-masters/[host-name],每個(gè)子znode包含當(dāng)前作為熱備的HMaster信息;

          • /hbase/rs/[host-name],每個(gè)子znode包含各RegionServer的信息。

          所有znode都是臨時(shí)(ephemeral)節(jié)點(diǎn),HMaster和RegionServer通過(guò)心跳維護(hù)這些znode。活動(dòng)HMaster對(duì)/hbase/rs路徑下的znode注冊(cè)監(jiān)聽(tīng),當(dāng)有RegionServer失敗時(shí),心跳信號(hào)消失,超時(shí)過(guò)后其對(duì)應(yīng)的znode被刪除,HMaster即可感知到RegionServer下線,并將該RegionServer持有的Region重新路由到其他服務(wù)器上去。同理,所有熱備HMaster都對(duì)/hbase/master節(jié)點(diǎn)注冊(cè)監(jiān)聽(tīng),當(dāng)前HMaster掛掉后,該znode被刪除,即可觸發(fā)重新選舉HMaster。如下圖所示。aaadb69eca9c6c4a8c283d3440cdecea.webpLog Split管理當(dāng)RegionServer宕機(jī)時(shí),除了重新路由Region之外,還得從宕機(jī)的RegionServer的WAL(即HLog)中恢復(fù)尚未持久化到HFile的數(shù)據(jù)。為了保證盡快完成failover過(guò)程,HBase會(huì)將HLog按Region切分成多個(gè)分片,并分配給對(duì)應(yīng)的存活RegionServer再完成重放(replay)過(guò)程。如下圖所示。3c6df4be03ef56abe9cb3f750e81d00e.webp顯然,Log Split的信息需要有一個(gè)中心組件來(lái)統(tǒng)一協(xié)調(diào)。HMaster會(huì)在ZK上注冊(cè)/hbase/splitlog臨時(shí)節(jié)點(diǎn),其中存放有存活RegionServer與其應(yīng)該處理的Region HLog的映射關(guān)系。各個(gè)RegionServer從該節(jié)點(diǎn)得到分配的Region,重放HLog,并將結(jié)果寫(xiě)回該節(jié)點(diǎn),以通知HMaster進(jìn)行后續(xù)操作。
          .META.表位置維護(hù)HBase中有一個(gè)特殊的表.META.(在0.98版本之前還有一個(gè)-ROOT-表,現(xiàn)已廢棄,不再介紹),其中以類似B樹(shù)的結(jié)構(gòu)記錄了集群內(nèi)所有Region的位置信息,且該表不會(huì)split。而ZK通過(guò)永久(persistent)節(jié)點(diǎn)/hbase/meta-region-server來(lái)記錄.META.表保存在哪個(gè)RegionServer上。
          當(dāng)客戶端初次與HBase集群建立連接時(shí),它首先查詢上述ZK節(jié)點(diǎn),再?gòu)某钟?META.表的RegionServer獲取到RowKey對(duì)應(yīng)的Region位置信息并緩存起來(lái),最后獲取到對(duì)應(yīng)的行做讀寫(xiě)操作。如下圖所示。8e48e807069b649a250a4344a0da6681.webp如果Region被移動(dòng),或客戶端緩存失效,甚至.META.表所在的服務(wù)器故障,客戶端總能通過(guò)ZK維護(hù)的路徑獲得正確的Region位置,不會(huì)造成不一致。
          Replication管理HBase的Replication是比較高級(jí)的功能,用于主集群和從集群之間的數(shù)據(jù)同步,從而支持容災(zāi)和備份。開(kāi)啟Replication之后,主集群會(huì)將數(shù)據(jù)實(shí)時(shí)地推送給各個(gè)從集群(可以是異步、同步或串行的),且保證數(shù)據(jù)的最終一致性。整個(gè)Replication的狀態(tài)信息都儲(chǔ)存在ZK的/hbase/replication這個(gè)znode下,主要有以下三個(gè):
          • /hbase/replication/state:布爾值,表示Replication是否被啟用;

          • /hbase/replication/peers:當(dāng)前進(jìn)行Replication的從集群對(duì)及其狀態(tài)。每個(gè)peer會(huì)分配一個(gè)唯一ID;

          • /hbase/replication/rs:包含主集群上所有有效的RegionServer、 HLog文件的索引,以及HLog讀取的偏移量。

          主集群HMaster每次將新增的數(shù)據(jù)推送給從集群之后,就會(huì)更新ZK上記錄的這些信息,以協(xié)調(diào)Replication的進(jìn)度。
          多個(gè)HBase集群是可以共用一個(gè)ZK集群的。只需要修改HBase的zookeeper.znode.parent參數(shù),對(duì)不同集群指定不同的ZK根路徑即可,例如/hbase-cluster1、/hbase-cluster2,etc。

          瀏覽 111
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  看黄免费在线 | 亚洲一区豆花视频 | 操女网 | 五月激情偷拍网 | 午夜在线无码 |