更新時(shí)間:2021-03-04 來(lái)源:黑馬程序員 瀏覽量:
HBase數(shù)據(jù)庫(kù)最常見(jiàn)的操作就是讀寫(xiě)數(shù)據(jù),接下來(lái),針對(duì)HBase讀寫(xiě)數(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中查找。
寫(xiě)數(shù)據(jù)流程:
即存儲(chǔ)數(shù)據(jù),從客戶端把目標(biāo)數(shù)據(jù)存儲(chǔ)到服務(wù)器上。具體流程如下:
(1) Client根據(jù)行鍵RowKey找到對(duì)應(yīng)的Region所在的RegionServer;
(2) Client向RegionServer發(fā)送提交寫(xiě)入數(shù)據(jù)的請(qǐng)求;
(3) RegionServer找到目標(biāo)Region;
(4) Region檢查數(shù)據(jù)是否與Schema一致;
(5) 若Client沒(méi)有指定版本,則獲取當(dāng)前系統(tǒng)的時(shí)間作為數(shù)據(jù)版本;
(6) 將更新的記錄寫(xiě)入預(yù)寫(xiě)日志HLog和MemStore中;
(7) 判斷 MemStore是否已滿,若滿則進(jìn)行flush操作,將數(shù)據(jù)寫(xiě)入StoreFile文件,反之,則直接將數(shù)據(jù)存入MemStore。
猜你喜歡:
Redis、傳統(tǒng)數(shù)據(jù)庫(kù)、HBase和Hive幾種數(shù)據(jù)存儲(chǔ)的區(qū)別
【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營(yíng)】深圳跨境電商運(yùn)營(yíng)畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開(kāi)發(fā)】上海校區(qū)AI鴻蒙開(kāi)發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開(kāi)發(fā)-Python】畢業(yè)33個(gè)工作日,就業(yè)率已達(dá)到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開(kāi)發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級(jí)均薪12k+
2025-09-19