hbase讀寫(xiě)請(qǐng)求流程詳解

要理解讀寫(xiě)流程,先要清除hbase的架構(gòu)圖。以0.96版本以下的三層架構(gòu)為例:

Hbase的架構(gòu)

hbase是主從架構(gòu),主節(jié)點(diǎn)是HMaster,從節(jié)點(diǎn)是HRegionServer。

HMaster:負(fù)責(zé)regionserver的運(yùn)行狀態(tài)和region負(fù)載均衡。

HRegionServer:負(fù)責(zé)存儲(chǔ)表格,以及響應(yīng)client的連接。包含一個(gè)HLog和多個(gè)HRegion。

zk負(fù)責(zé)保證HMaster的高可用和region server的注冊(cè)。

-----------------------------------------------------------------------------------------------------------------------------------------------

1、hbase的讀請(qǐng)求流程

hbase讀請(qǐng)求

Ⅰ從zk中獲取regionserver的meta信息。

Ⅱ通過(guò)root表,根據(jù)meta信息找到對(duì)應(yīng)的regioonserver位置信息

Ⅲ找到對(duì)應(yīng)的regionserver,獲取table的meta信息

Ⅳ通過(guò)table的meta信息,找到實(shí)際存儲(chǔ)table的regionserver

Ⅴ客戶端直接連接表所在的regionserver,獲取數(shù)據(jù)

--注:為了讓客戶端找到包含特定主鍵的region,HBase提供了兩張?zhí)厥獾哪夸洷?,包?root和.meta。root表用來(lái)查詢所有meta表中的region位置。hbase的設(shè)計(jì)中只有一個(gè)root region,即root region從不進(jìn)行拆分。從而保證類似于B+樹(shù)的三層查找結(jié)構(gòu)。第一層是ZK中包含root region的節(jié)點(diǎn),第二層是從root中查找對(duì)應(yīng)meta region的位置,第三層是從meta表中查找用戶表對(duì)應(yīng)的region的位置信息。

2、hbase的寫(xiě)請(qǐng)求過(guò)程?

hbase寫(xiě)請(qǐng)求過(guò)程

1、client先從緩存中定位region,如果沒(méi)有緩存則訪問(wèn)zk,找到最先寫(xiě)入的region信息。

2、將更新寫(xiě)到WAL中。為了防止發(fā)生數(shù)據(jù)丟失。

3、將數(shù)據(jù)寫(xiě)入到memstore中

4、數(shù)據(jù)達(dá)到閾值(默認(rèn)128m)會(huì)觸發(fā)flush操作,生成多個(gè)storefile文件。

5、當(dāng)storefile文件過(guò)多,會(huì)觸發(fā)compact操作,合并文件,生成Hfile。

6、當(dāng)HFile文件大于閾值(默認(rèn)10g),會(huì)觸發(fā)split操作,新拆分的兩個(gè)region會(huì)被master分發(fā)到對(duì)應(yīng)的兩個(gè)regionserver上。

-----------------------------------------------------------------------------------------------------------------------------------------------

注:0.96以上版本采用雙層架構(gòu),刪除了root表,只使用meta定位數(shù)據(jù)。meta表的一個(gè)region以12m來(lái)計(jì)算,可以定位16T的行鍵范圍。如果1個(gè)行鍵范圍包含10條數(shù)據(jù),則有160T的數(shù)據(jù),所以不需要root表。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、HBase簡(jiǎn)介 Hbase是什么 HBase是一種構(gòu)建在HDFS之上的分布式、面向列、多版本、非關(guān)系型的數(shù)據(jù)庫(kù)...
    便利蜂數(shù)據(jù)平臺(tái)閱讀 1,021評(píng)論 0 4
  • 一、簡(jiǎn)介 Hbase:全名Hadoop DataBase,是一種開(kāi)源的,可伸縮的,嚴(yán)格一致性(并非最終一致性)的分...
    菜鳥(niǎo)小玄閱讀 2,589評(píng)論 0 12
  • 簡(jiǎn)介 HBase —— Hadoop Database的簡(jiǎn)稱,Google BigTable的另一種開(kāi)源實(shí)現(xiàn)方式,...
    編碼前線閱讀 322評(píng)論 0 0
  • 1、基本概念 HBase是一個(gè)開(kāi)源的非關(guān)系型分布式數(shù)據(jù)庫(kù)(NoSQL),參考了谷歌的BIgTable建模,實(shí)現(xiàn)的編...
    雪飄千里閱讀 1,084評(píng)論 0 2
  • 重讀《豪婚》有感 文/林夢(mèng)竹 0904 098 今天上午重讀《豪婚》,下午上班繼續(xù)每天一日的磨課。每個(gè)老師上臺(tái)講...
    竹海葉軒閱讀 166評(píng)論 0 1

友情鏈接更多精彩內(nèi)容