首頁(yè)技術(shù)文章正文

HBase讀寫數(shù)據(jù)流程詳細(xì)介紹

更新時(shí)間:2021-03-04 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif


HBase數(shù)據(jù)庫(kù)最常見的操作就是讀寫數(shù)據(jù),接下來(lái),針對(duì)HBase讀寫數(shù)據(jù)的流程進(jìn)行詳細(xì)介紹。

讀數(shù)據(jù)流程:

從HBase中讀數(shù)據(jù)的流程其實(shí)就是尋址的流程,具體流程如下:

(1) Client通過(guò)ZooKeeper、“-ROOT-”表以及“.META.”表來(lái)找到目標(biāo)數(shù)據(jù)所在的RegionServer地址(即目標(biāo)數(shù)據(jù)所在Region的服務(wù)器地址);

(2) Client通過(guò)請(qǐng)求RegionServer地址來(lái)查詢目標(biāo)數(shù)據(jù);

(3) RegionServer定位到目標(biāo)數(shù)據(jù)所在的Region,然后發(fā)出查詢目標(biāo)數(shù)據(jù)的請(qǐng)求;

(4) Region先在MemStore中查找目標(biāo)數(shù)據(jù),若查找到,則返回;若查找不到,則繼續(xù)在StoreFile中查找。

1614841505199_HBase讀寫數(shù)據(jù)流程.jpg


寫數(shù)據(jù)流程:

即存儲(chǔ)數(shù)據(jù),從客戶端把目標(biāo)數(shù)據(jù)存儲(chǔ)到服務(wù)器上。具體流程如下:

(1) Client根據(jù)行鍵RowKey找到對(duì)應(yīng)的Region所在的RegionServer;

(2) Client向RegionServer發(fā)送提交寫入數(shù)據(jù)的請(qǐng)求;

(3) RegionServer找到目標(biāo)Region;

(4) Region檢查數(shù)據(jù)是否與Schema一致;

(5) 若Client沒有指定版本,則獲取當(dāng)前系統(tǒng)的時(shí)間作為數(shù)據(jù)版本;

(6) 將更新的記錄寫入預(yù)寫日志HLog和MemStore中;

(7) 判斷 MemStore是否已滿,若滿則進(jìn)行flush操作,將數(shù)據(jù)寫入StoreFile文件,反之,則直接將數(shù)據(jù)存入MemStore。


猜你喜歡:
Redis、傳統(tǒng)數(shù)據(jù)庫(kù)、HBase和Hive幾種數(shù)據(jù)存儲(chǔ)的區(qū)別

大數(shù)據(jù)是什么意思?大數(shù)據(jù)有什么用?

Spark SQL用法建議【大數(shù)據(jù)文章】

黑馬程序員大數(shù)據(jù)培訓(xùn)課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!