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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

非关型数据库之Hbase

發(fā)布時(shí)間:2025/3/8 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 非关型数据库之Hbase 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

1 Hbase簡介

1.1 初識Hbase

1.2 Hbase的特性

2 HDFS專項(xiàng)模塊

2.1 HDFS的基本架構(gòu)

2.1.1?HDFS各組件的功能:

2.2 HFDFS多種機(jī)制

2.2.1 分塊機(jī)制

2.2.2 副本機(jī)制

2.2.3 容錯機(jī)制

2.2.4 讀寫機(jī)制

?3 Hbase組件及其功能

?3.1?客戶端

3.2 Zookeeper

3.3 HMaster

3.4 RegionServer

4 Hbase數(shù)據(jù)模型及Hbase Shell

5 Hbase原理實(shí)現(xiàn)

5.1 Region定位

5.1.1 Region

5.1.2 Meta表

5.1.3 Region查找

5.2 Region再細(xì)分

5.2.1 Hbase寫數(shù)據(jù)

?5.2.2 Hbase讀數(shù)據(jù)

5.2.3 HFile的合并(Minor|Major)

5.3 WAL機(jī)制

?5.4 Region拆分

5.5 Region合并


1 Hbase簡介

1.1 初識Hbase

????????Hbase全拼為Hadoop database即分布式存儲數(shù)據(jù)庫,是一個可以進(jìn)行隨機(jī)訪問的存儲和檢索數(shù)據(jù)的平臺,用于存儲結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù),如果數(shù)據(jù)量不是非常龐大的情況下,Hbase甚至可以存儲非結(jié)構(gòu)化的數(shù)據(jù)。Hbase作為Apache基金會Hadoop項(xiàng)目的一部分,使用Java語言實(shí)現(xiàn),將HDFS作為底層文件存儲系統(tǒng),在此基礎(chǔ)上運(yùn)行MapReduce分布式批量處理數(shù)據(jù),為Hadoop提供海量的數(shù)據(jù)管理服務(wù)。?

? ? ? ? Hbase是典型的NoSQL數(shù)據(jù)庫,通常被描述為稀疏的、分布式的、持久化的,由行鍵、列鍵和時(shí)間戳進(jìn)行索引的多維有序映射數(shù)據(jù)庫,主要用來儲存結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù)。Hbase是Google的Bigtable的開源實(shí)現(xiàn)。

1.2 Hbase的特性

🌈容量巨大

🌈列存儲

🌈稀疏性

????????傳統(tǒng)的關(guān)型數(shù)據(jù)庫中,每一行的數(shù)據(jù)類型都是事先定義好的,會占用固定的內(nèi)存空間,在此情況下NULL值也會占用一定的存儲空間。而在Hbase中的數(shù)據(jù)都是以字符串形式存儲,數(shù)據(jù)為空的情況下列并不占用存儲空間,因?yàn)闀胁糠謹(jǐn)?shù)據(jù)有真實(shí)值,部分?jǐn)?shù)據(jù)為NULL,故稱為稀疏性。

🌈擴(kuò)展性強(qiáng)

? ? ? ? Hbase構(gòu)建在HDFS之上,理所當(dāng)然的支持分布式表,也繼承了HDFS的可擴(kuò)展性。Hbase是橫向擴(kuò)展的,所謂的橫向擴(kuò)展是指在擴(kuò)展時(shí)不需要提過服務(wù)器本身的性能,只需要添加不同的服務(wù)器節(jié)點(diǎn)到現(xiàn)有的集群即可。Hbase根據(jù)Region的大小進(jìn)行分區(qū),分別存在集群中的不同節(jié)點(diǎn),當(dāng)添加新節(jié)點(diǎn)時(shí),集群自動重新調(diào)整,在新的節(jié)點(diǎn)啟動Hbase服務(wù)器,實(shí)現(xiàn)動態(tài)擴(kuò)展。Hbase的擴(kuò)展是熱擴(kuò)展,即在不停掉現(xiàn)有服務(wù)的情況下進(jìn)行服務(wù)節(jié)點(diǎn)的增加和刪除。

🌈高可靠性

? ? ? ? Hbase同時(shí)繼承了HDFS的高可靠性,HDFS的多副本機(jī)制可以讓它在出現(xiàn)故障時(shí)自動恢復(fù),同時(shí)Hbase內(nèi)部也提供了預(yù)寫日志(Write-Ahead-Log,WAL)和Replication機(jī)制。

2 HDFS專項(xiàng)模塊

????????HDFS即Hadoop Distributed File System(Hadoop分布式文件系統(tǒng)),HDFS是參考Google公司的GFS實(shí)現(xiàn)的,不管是HDFS還是GFS計(jì)算機(jī)節(jié)點(diǎn)都會很容易出現(xiàn)硬件故障,HDFS的數(shù)據(jù)分塊儲存在不同節(jié)點(diǎn),當(dāng)某個節(jié)點(diǎn)出現(xiàn)故障時(shí),HDFS相關(guān)組件會快速檢測出節(jié)點(diǎn)故障并提供容錯機(jī)制完成數(shù)據(jù)的自動恢復(fù)。

2.1 HDFS的基本架構(gòu)

? ? ? ? 三個組件:NameNode、DataNode、SecondaryNameNode

? ? ? ? 一個架構(gòu):主從架構(gòu)(Master/Slave模式)

? ? ? ? HDFS集群一般由一個NameNode(運(yùn)行在Master節(jié)點(diǎn))、一個SecondaryNameNode(運(yùn)行在Master節(jié)點(diǎn))和許多個DataNode(運(yùn)行在Salve節(jié)點(diǎn))組成。在HDFS中數(shù)據(jù)是被分塊進(jìn)行儲存,一個文件可以被分為許多個塊,每個塊被存儲在不同的DataNode上。

????????????????????????

2.1.1?HDFS各組件的功能:

  • 🌈NameNode
    • 將文件的元數(shù)據(jù)信息存儲在edits和fsimage文件中(元數(shù)據(jù)信息記錄了文件系統(tǒng)中的文件名和目錄名,以及它們之間的層級關(guān)系,同時(shí)也記錄了每個文件目錄的所有者以及權(quán)限,甚至還記錄了每個文件是由哪些塊組成)
    • 接收客戶端的請求并提供元數(shù)據(jù)(當(dāng)客戶端請求讀取文件時(shí),會先從NameNode獲取文件的元數(shù)據(jù)信息,然后再往元數(shù)據(jù)中對應(yīng)的DataNode讀取數(shù)據(jù)塊)
    • 通過心跳機(jī)制檢測DataNode的狀態(tài),當(dāng)出現(xiàn)節(jié)點(diǎn)故障時(shí),重新分配失敗的任務(wù)。
  • 🌈SecondaryNameNode
    • 定期合并edits和fsimage文件

? ? ? ? ? edits文件(編輯日志)用來記錄文件的增、刪、改操作信息。

? ? ? ? ? fsimage文件(鏡像文件)用來維護(hù)HDFS的文件和文件夾的元數(shù)據(jù)信息。

? ? ? ? ? 每次系統(tǒng)啟動時(shí),NameNode會讀取fsimage文件的信息并保存到內(nèi)從中。在HDFS運(yùn)行期間,新的操作日志不會立即與fsimage文件進(jìn)行合并,也不會存到NameNode內(nèi)存中,而是先寫到edits文件中,當(dāng)edits文件達(dá)到一定的閾值或者間隔一定時(shí)間(默認(rèn)為3600s或者達(dá)到64MB)后會觸發(fā)SecondaryNameNode工作,這個時(shí)間點(diǎn)被稱為checkpoint。具體的合并步驟如下:

?????????????????????????

  • (停用和新記錄)在合并之前SecondaryNameNode通知NameNode停用當(dāng)前editlog文件,并將新的操作日志寫入到新的editlog.new文件。
  • (請求并復(fù)制)SecondaryNameNode從NameNode請求并復(fù)制fsimage和edits文件。
  • (合并)SecondaryNameNode把fsimage和edits文件合并,并重命名為fsimage.ckpt。
  • (兩次替換)NameNode從SecondaryNameNode獲取fsimage.ckpt文件,并替換掉fsimage文件,同時(shí)用edits.new文件替換舊的edits文件。
  • (更新)更新checkpoint的時(shí)間。自此,fsimage文件中保存的是上一個checkpoint的元數(shù)據(jù)信息,而edits文件保存的是從上一個checkpoint開始的操作日志。
    • 🌈DataNode
      • 存儲數(shù)據(jù)塊
      • 為客戶端提供數(shù)據(jù)塊的讀寫服務(wù)
      • 相應(yīng)NameNode的相關(guān)指令(數(shù)據(jù)塊的增、刪、改等操作)
      • 定時(shí)發(fā)送心跳信息給NameNode

    2.2 HFDFS多種機(jī)制

    2.2.1 分塊機(jī)制

    在HDFS中數(shù)據(jù)是被分塊進(jìn)行儲存,一個文件可以被分為許多個塊,每個塊被存儲在不同的DataNode上。HDFS數(shù)據(jù)塊大小默認(rèn)為64MB,而一般磁盤塊的大小為512B。

    2.2.2 副本機(jī)制

    HDFS中數(shù)據(jù)塊的副本數(shù)默認(rèn)為3個,當(dāng)然也可以設(shè)置更多的副本集。在默認(rèn)副本集為3的情況下,0.17版本之前,會把第一個副本放在一個機(jī)架的一個DataNode上,第二個副本放在這個機(jī)架的另一個DataNode上,而第三個副本會放在不同的機(jī)架上;0.17版本之后,會把第一個副本放在一個機(jī)架的一個DataNode上,第二個副本放在另一個機(jī)架的DataNode上,而第三個副本會放在第二個副本的同機(jī)架的不同DataNode上。(機(jī)架的概念參照上圖2-4)

    2.2.3 容錯機(jī)制

    NameNode出錯:從SecondaryNameNode備份的fsimage文件進(jìn)行恢復(fù)。

    DataNode出錯:當(dāng)出現(xiàn)節(jié)點(diǎn)故障時(shí),重新分配失敗的任務(wù)。

    數(shù)據(jù)出錯:數(shù)據(jù)寫入的同時(shí)保存總和校驗(yàn)碼,讀取數(shù)據(jù)時(shí)進(jìn)行校驗(yàn)。

    2.2.4 讀寫機(jī)制

    🌈讀文件

  • (發(fā)送請求)客戶端向NameNode發(fā)送讀文件請求
  • (得到地址)NameNode返回文件的元數(shù)據(jù)(文件對應(yīng)的數(shù)據(jù)塊信息及各數(shù)據(jù)塊位置及其副本位置)信息
  • (讀取數(shù)據(jù))客戶端按照元數(shù)據(jù)信息與DataNode進(jìn)行通信,并讀取數(shù)據(jù)塊。????????
  • ?????????????????????????

    🌈寫文件

  • (暫寫數(shù)據(jù))先將數(shù)據(jù)寫入本地的臨時(shí)文件
  • (發(fā)送請求)等臨時(shí)文件大小達(dá)到系統(tǒng)設(shè)置的塊大小時(shí),開始向NameNode發(fā)送寫文件請求
  • (獲取地址)NameNode檢查集群中每個DataNode的狀態(tài)信息,獲取空閑節(jié)點(diǎn)并檢查客戶端的權(quán)限符合后再創(chuàng)建文件,然后返回?cái)?shù)據(jù)塊及其對應(yīng)DataNode的地址列表給客戶端,列表中包括副本的存放地址。
  • (寫數(shù)據(jù)并發(fā)送確認(rèn)信息)客戶端將臨時(shí)文件的數(shù)據(jù)塊寫入列表的第一個DataNode,同時(shí)第一個DataNode以副本的形式傳送至第二個DataNode,第二個DataNode以副本的形式傳送至第三個DataNode。每一個DataNode在接收到數(shù)據(jù)后都會向前一個節(jié)點(diǎn)發(fā)送確認(rèn)信息,數(shù)據(jù)傳輸完成后,第一個DataNode會向客戶端發(fā)送確認(rèn)信息。
  • (錯誤處理)客戶端收到確認(rèn)信息表示數(shù)據(jù)塊已經(jīng)永久化的存儲在所有的DataNode中,此時(shí)客戶端會向NameNode發(fā)送確認(rèn)信息。一旦上一步的任何一個DataNode存儲失敗未發(fā)送確認(rèn)信息,客戶端就會告知NameNode,將數(shù)據(jù)備份到新的DataNode中。
  • ????????????????????????

    ?3 Hbase組件及其功能

    ?

    ?3.1?客戶端

    客戶端包含訪問Hbase的接口,是整個Hbase系統(tǒng)的入口,使用者通過客戶端操作Hbase,客戶端使用Hbase的RPC機(jī)制與HMaster和RegionServer進(jìn)行通信。

    3.2 Zookeeper

    Zookeeper是一個高性能、集中化、分布式的應(yīng)用程序協(xié)調(diào)服務(wù),主要用來解決分布式應(yīng)用中用戶遇到的數(shù)據(jù)管理問題。在Hadoop中Zookeeper主要用于實(shí)現(xiàn)高可靠性(High Availability,HA),包括HDFS的NameNode和YARN的ResourceManager的HA。以HDFS為例,NameNode作為HDFS的主節(jié)點(diǎn),負(fù)責(zé)管理文件系統(tǒng)的命名空間以及客戶端對文件的訪問,同時(shí)還需要監(jiān)控整個HDFS中每個DataNode的狀態(tài),實(shí)現(xiàn)負(fù)載均衡和容錯。為了實(shí)現(xiàn)HA需要由多個NameNode并存,一個處于活躍狀態(tài)其他則是備用狀態(tài),當(dāng)處于活躍狀態(tài)的NameNode無法正常工作時(shí),處于備用狀態(tài)的節(jié)點(diǎn)會通過競爭選舉產(chǎn)生新的活躍節(jié)點(diǎn)。Zookeeper在Hbase中的功能如下:

    • Master選舉

    ????????與HDFS中的競選機(jī)制一樣,Hbase中有多個Master并存,但只有一個HMaster處于活躍狀態(tài),當(dāng)處于活躍狀態(tài)的HMaster無法正常工作時(shí),從其余備用Master中通過選舉出一個新的HMaster,保證集群的高可靠性。

    • 系統(tǒng)容錯

    ? ? ? ? 在Hbase啟動時(shí),每個RegionServer在加入集群時(shí)都需要到Zookeeper中進(jìn)行注冊,創(chuàng)建一個狀態(tài)節(jié)點(diǎn),Zookeeper會實(shí)時(shí)監(jiān)控每個RegionServer狀態(tài),當(dāng)某個RegionServer掛掉時(shí),Zookeeper會因?yàn)橐欢螘r(shí)間內(nèi)沒有接收到其心跳信息而刪除該RegionServer對應(yīng)的節(jié)點(diǎn),并給HMaster發(fā)送節(jié)點(diǎn)刪除通知,HMaster得知有RegionServer斷開,會立即開啟RegionServer容錯機(jī)制參考博客

    • Region元數(shù)據(jù)管理

    ? ? ? ? 在Hbase集群中,Region元數(shù)據(jù)被存儲在Zookeeper中的Meta表里。每次客戶端發(fā)起新的請求時(shí),需要先查詢Meta表中的Region的位置,當(dāng)Region發(fā)生任何變更時(shí),就能通過Zookeeper的Mate表來感知這一變化,保證客戶端能夠獲取到正確的Region元數(shù)據(jù)信息。

    • Region狀態(tài)管理

    ? ? ? ? Hbase中的Region會經(jīng)常發(fā)生變更,其原因可能是系統(tǒng)故障、配置修改、Region的分裂及合并。只要Region發(fā)生任何變化,就需要使集群中的所有節(jié)點(diǎn)都知曉,然而集群中的Region數(shù)量會達(dá)到十萬級甚至更多,如果交由Hbase處理則負(fù)擔(dān)過大,所以只能依賴Zookeeper來完成。

    • 提供Meta表存儲位置

    ????????Meta表中存儲的數(shù)據(jù)庫信息、列族信息、列族存儲位置信息都屬于元數(shù)據(jù),而Mate表的位置入口由Zookeeper提供。

    3.3 HMaster

    • 管理用戶對表的增、刪、改、查操作。HMaster提供了對所有元數(shù)據(jù)增刪改查的接口,便于用戶與Hbase進(jìn)行交互。
    • 管理RegionServer的負(fù)載均衡,調(diào)整Region的分布。
    • Region的分配與移除。
    • 處理RegionServer的故障轉(zhuǎn)移。

    3.4 RegionServer

    ????????RegionServer主要負(fù)責(zé)響應(yīng)用戶的請求,向HDFS讀寫數(shù)據(jù),一般在分布式集群中,RegionServer運(yùn)行在DataNode服務(wù)器上,實(shí)現(xiàn)數(shù)據(jù)的本地性。

    • 處理分配給它的Region
    • 處理客戶DAU你的讀寫請求
    • 刷新緩存到HDFS
    • 處理Region分片
    • 執(zhí)行壓縮?

    4 Hbase數(shù)據(jù)模型及Hbase Shell

    Hbase數(shù)據(jù)模型及Hbase Shell_扎哇太棗糕的博客-CSDN博客

    5 Hbase原理實(shí)現(xiàn)

    5.1 Region定位

    5.1.1 Region

    ????????在Hbase中,表中的行都是按照RowKey的字典順序進(jìn)行排序,表在行的方向上被分割成多個Region。每一張表一開始就只有一個Region,隨著數(shù)據(jù)的不斷插入,Hbase會根據(jù)一定的規(guī)則將表進(jìn)行水平拆分最終形成多個Region。Region過多一臺機(jī)器無法存儲的下時(shí),可分布式存儲到多臺機(jī)器上,HMaster將不同的Region分配到不同的RegionServer上。

    ????????????????

    ?????????客戶端在對表彰數(shù)據(jù)進(jìn)行增刪改查時(shí)需要知道數(shù)據(jù)存儲在哪個RegionServer上,這個查找Region的過程就叫做Region定位。Region標(biāo)識符可以唯一標(biāo)志一個Region,Region標(biāo)識符 = 表名+起始行鍵+時(shí)間戳+RegionID,其中RegionID等于(表名+起始行鍵+時(shí)間戳)進(jìn)行MD5加密。其中第一個Region沒有首行,最后一個Region沒有末行。

    5.1.2 Meta表

    ????????Meta映射表的每個條目包含兩項(xiàng)內(nèi)容:Region標(biāo)識、RegionServer標(biāo)識,該條目表示了Region與RegionServer之間的對應(yīng)關(guān)系,可以讓用戶知道該Region存儲在哪個RegionServer上。總而言之,Meta表記錄了元數(shù)據(jù)信息,使Region的定位變得精準(zhǔn)且快速。

    5.1.3 Region查找

    ? ? ? ? 早期的Region查找使用三層架構(gòu):首先訪問zookeeper的/hbase/root-region-server節(jié)點(diǎn)來得知ROOT表在哪個RegionServer上,然后訪問ROOT表獲取數(shù)據(jù)所在Meta表以及Meta表所在RegionServer的位置,接著訪問META表找到數(shù)據(jù)所在的Region去訪問。后來改為二層架構(gòu):客戶端先通過查找ZooKeeper的Meta表,獲取到查詢的數(shù)據(jù)的Region元數(shù)據(jù)信息,按照元數(shù)據(jù)信息獲取到相應(yīng)的數(shù)據(jù)。

    參考博客:HBase查詢機(jī)制--Region定位_Fys的博客-CSDN博客_查看hbase 表的region

    5.2 Region再細(xì)分

    ????????Hbase的核心模塊是RegionServer,RegionServer又由HLog和Region構(gòu)成,Region存儲著一系列連續(xù)的數(shù)據(jù)集。Region對應(yīng)著和多個的Store,每個Store對應(yīng)著表中的一個列族的存儲,Store又是由一個MemStore和零到多個的StoreFile組成,StoreFile的底層是用HFile實(shí)現(xiàn),也可以說StoreFile就是HFile。

    ????????????????????????

    5.2.1 Hbase寫數(shù)據(jù)

  • (獲取元數(shù)據(jù))客戶端訪問Zookeeper,從Meta表中得到數(shù)據(jù)寫入的Region和RegionServer的相關(guān)信息
  • (兩次寫信息)客戶端按照Zookeeper返回的相關(guān)信息,直接訪問RegionServer把數(shù)據(jù)分別寫入HLog和MemStore。
  • (持久化數(shù)據(jù))當(dāng)MemStore的存儲量達(dá)到一定閾值(默認(rèn)64M)時(shí),會把數(shù)據(jù)寫入磁盤文件StoreFile中,并在HLog中寫入一個標(biāo)記表示MemStore中的緩存數(shù)據(jù)寫入到StoreFile中。如果MemStore中的數(shù)據(jù)丟失,則可以在HLog中恢復(fù)。
  • (StoreFile合并分裂)StoreFile文件的數(shù)量達(dá)到一定的數(shù)量時(shí),會觸發(fā)合并成一個大的StoreFile,當(dāng)StoreFile的文件大小超過一定的閾值時(shí),大StoreFile會分裂成兩個StoreFile。同時(shí),當(dāng)前父Region會分裂成兩個子Region,父Region下線,兩個子Region被Master分配到相應(yīng)的RegionServer(父Region拆分的原因參考 5.4Region拆分)。
  • ?5.2.2 Hbase讀數(shù)據(jù)

  • (獲取元數(shù)據(jù))客戶端訪問Zookeeper,從Meta表中得到讀取數(shù)據(jù)的Region和RegionServer的相關(guān)信息
  • (發(fā)送請求)客戶端向?qū)?yīng)的RegionServer發(fā)送讀取數(shù)據(jù)請求
  • (查找數(shù)據(jù))RegionServer在就收到請求消息之后,現(xiàn)在MemStore中查找數(shù)據(jù),如果沒有就到StoreFile中讀取,最后將數(shù)據(jù)返回給客戶端。
  • 5.2.3 HFile的合并(Minor|Major)

    Minor合并(滿足條件的小HFile進(jìn)行合并)

    ????????執(zhí)行合并時(shí),Hbase將多個小HFile的內(nèi)容讀出并寫入到一個新的文件中,然后激活新文件,舊文件標(biāo)記為刪除,被標(biāo)記后的舊文件只有在下一次Major合并時(shí)才會被刪除,在此之前仍會出現(xiàn)在HFile中。HFile的Minor合并是觸發(fā)式的,觸發(fā)條件很多,比如在將MemStore中的數(shù)據(jù)刷新到HFile中時(shí)會申請對符合條件的HFile進(jìn)行合并,定期合并等。除此之外,對選擇進(jìn)行合并的HFile文件也是有條件的,條件如下:

    ?也就是說,一次Minor合并的HFile文件的個數(shù)在3~10個之間。

    Major合并(無差別合并)

    ????????Major合并會對Store中的所有HFile文件進(jìn)行無差別的合并,甚至有時(shí)會將整個表中同一列族的HFile進(jìn)行合并,這是一個耗時(shí)且耗費(fèi)資源的操作,很影響集群的性能。故一般情況下都只做Minor合并,不做甚至有些集群干脆就禁止Major合并,只有在集群負(fù)載較小時(shí)才進(jìn)行手動的Major合并,或者配置Major的合并中期,默認(rèn)為7天。

    5.3 WAL機(jī)制

    ????????WAL就是(Write Ahead Log),字面翻譯就是預(yù)寫日志文件機(jī)制。如下圖所示,每個RegionServer中的所有Region共用一個HLog文件,HLog就是上面說到的預(yù)寫日志文件,也就是說,每當(dāng)客戶端更寫數(shù)據(jù)必須先寫入到HLog文件后才能被寫入到MemStore中。

    ? ? ? ? 故障轉(zhuǎn)移:Zookeeper會實(shí)時(shí)監(jiān)控每個Regionserver的狀態(tài),當(dāng)某個RegionServer故障時(shí),RegionServer在Zookeeper上的臨時(shí)節(jié)點(diǎn)就會過期,Zookeeper會首先通知Master,Master會第一時(shí)間處理該RegionServer上的HLog文件,對其按照Region進(jìn)行拆分并放到相應(yīng)Region的目錄下,等到Region被重新分配到可用的RegionServer上時(shí),按照Region目錄下的HLog進(jìn)行數(shù)據(jù)恢復(fù)。

    ?5.4 Region拆分

    ????????一旦Region的負(fù)載過大或者超過閾值時(shí)(Region中最大的Store的大小大于設(shè)置的閾值時(shí)就會觸發(fā)Region拆分),它就會被拆分成兩個新的Region,這個過程是由RegionServer來完成的,具體流程如下:

  • (下線并阻止請求)下線需要拆分的Region,阻止所有對該Region的客戶端請求,Master檢測到Region的狀態(tài)為SPLITING。
  • (建立引用文件并指向)在父Region的下面建立兩個引用文件,分別指向父Region的首行與末行,此時(shí)并不會開始復(fù)制數(shù)據(jù)。
  • (建立目錄并復(fù)制)在HDFS上建立兩個子Region的目錄,分別復(fù)制上一步建立的引用文件,每個子Region分別占用父Region的一半數(shù)據(jù),復(fù)制完成后刪除兩個引用文件。
  • (更新Meta表元數(shù)據(jù))完成子Region的創(chuàng)建后,向Meta表發(fā)送新產(chǎn)生的兩個Region的元數(shù)據(jù)信息,刪除父Region的元數(shù)據(jù)信息。
  • (更新狀態(tài))將Region的拆分信息更新到HMaster中,并且每個Region進(jìn)入可用狀態(tài)。
  • 5.5 Region合并

  • (發(fā)送請求)客戶端發(fā)送Region合并請求給Master。
  • (聚堆并發(fā)送請求)Master在RegionServer上將Region移到一起,并發(fā)起一個Region合并操作的請求。
  • (下線并合并)RegionServer將準(zhǔn)備合并的Region下線,然后進(jìn)行合并。
  • (更新元數(shù)據(jù))從Meta表上刪除被合并的Region的元數(shù)據(jù),并寫入新的Region的元數(shù)據(jù)。
  • (更新狀態(tài)及信息)新的Region設(shè)置上線,同時(shí)更新Region信息到Master。
  • ????????Region合并的必要性:Region過多會導(dǎo)致Meta表過大,Zookeeper管理不過來,從而影響客戶端的請求響應(yīng)。

    總結(jié)

    以上是生活随笔為你收集整理的非关型数据库之Hbase的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 黄色一级大片在线免费看国产 | 成人精品在线视频 | 97影音| 69av在线播放| 国产一区二区三区免费在线观看 | 麻豆chinese极品少妇 | 日本精品人妻无码免费大全 | 国外成人免费视频 | 另一种灿烂生活 | 新天堂网| 欧美性xxxxx 亚洲特黄一级片 | 亚洲三级大片 | 国产精彩视频一区二区 | 九九热在线观看 | 日本黄色生活片 | 美女裸体网站久久久 | 鲁丝片一区二区三区 | 永久免费av网站 | 亚洲综合一区在线 | 男女污视频 | 超碰精品在线观看 | 人人妻人人玩人人澡人人爽 | 1000亚洲裸体人体 | 欧美自拍亚洲 | 黑人欧美一区二区三区 | 3d欧美精品动漫xxxx无尽 | 色一情一区二区三区 | 国产精品无码一区二区无人区多人 | 老熟妇仑乱一区二区av | 福利视频在线免费观看 | 一卡二卡在线 | 97在线观视频免费观看 | 日韩精品tv | 毛片88| 五月婷婷六月综合 | 欧美又粗又深又猛又爽啪啪九色 | 在线中文字幕视频 | 18pao国产成视频永久免费 | 色欲狠狠躁天天躁无码中文字幕 | 久草网在线 | 高清免费毛片 | 日韩黄色精品视频 | 日本视频在线观看免费 | 亚洲一区二区三区四区电影 | 国产超碰av | 自拍偷拍欧美激情 | 久久久久久影院 | 又黄又爽又色的视频 | 天天操天天碰 | 日本中文在线 | 免费一级黄色大片 | 亚洲视频一区二区三区四区 | 亚洲制服丝袜一区 | 午夜电影一区二区 | 污片网站在线观看 | 国产伦精品一区二区三区四区 | 欧洲午夜视频 | 日本高清视频www | 婷婷看片 | 国产欧美精品一区二区在线播放 | 国产黑人 | 熟妇人妻中文字幕无码老熟妇 | 伊人看片 | 狼人综合伊人 | 亚洲熟妇色自偷自拍另类 | 美女屁股眼视频免费 | 国产精品久久久久久久蜜臀 | 美女国产一区 | 91在线日韩| 免费成人深夜夜 | 国产乱码久久久久 | 亚洲综合日韩精品欧美综合区 | 秘密基地在线观看完整版免费 | 久久大胆 | 国产欧美激情视频 | 久久这里只精品 | 亚洲欧美高清 | 北条麻妃99精品青青久久 | 先锋影音资源av | 国产精品欧美一区二区三区 | 麻豆黄色网址 | 久久黄色小说 | 亚洲五月激情 | 91www| 自拍视频在线观看 | 日日爽日日操 | 久久另类ts人妖一区二区 | 亚洲av无码乱码在线观看性色 | 亚洲免费中文 | 久久久全国免费视频 | 久久婷婷激情 | 国产在线1区 | 9色av| 亚洲三级大片 | 欧美日韩免费一区二区 | 日韩欧美卡一卡二 | www.色播.com | 荔枝视频污 | 国产日韩欧美精品一区二区 |