Hbase的读写流程
HBase讀寫(xiě)流程
1、HBase讀數(shù)據(jù)流程
HRegionServer保存著meta表以及表數(shù)據(jù),要訪(fǎng)問(wèn)表數(shù)據(jù),首先Client先去訪(fǎng)問(wèn)zookeeper,從zookeeper里面獲取meta表所在的位置信息,即找到這個(gè)meta表在哪個(gè)HRegionServer上保存著。
接著Client通過(guò)剛才獲取到的HRegionServer的IP來(lái)訪(fǎng)問(wèn)Meta表所在的HRegionServer,從而讀取到Meta,進(jìn)而獲取到Meta表中存放的元數(shù)據(jù)。
Client通過(guò)元數(shù)據(jù)中存儲(chǔ)的信息,訪(fǎng)問(wèn)對(duì)應(yīng)的HRegionServer,然后掃描所在HRegionServer的Memstore和Storefile來(lái)查詢(xún)數(shù)據(jù)。
最后HRegionServer把查詢(xún)到的數(shù)據(jù)響應(yīng)給Client。
2、HBase寫(xiě)數(shù)據(jù)流程
Client也是先訪(fǎng)問(wèn)zookeeper,找到Meta表,并獲取Meta表元數(shù)據(jù)。
確定當(dāng)前將要寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的HRegion和HRegionServer服務(wù)器。
Client向該HRegionServer服務(wù)器發(fā)起寫(xiě)入數(shù)據(jù)請(qǐng)求,然后HRegionServer收到請(qǐng)求并響應(yīng)。
Client先把數(shù)據(jù)寫(xiě)入到HLog,以防止數(shù)據(jù)丟失。
然后將數(shù)據(jù)寫(xiě)入到Memstore。
如果HLog和Memstore均寫(xiě)入成功,則這條數(shù)據(jù)寫(xiě)入成功
如果Memstore達(dá)到閾值,會(huì)把Memstore中的數(shù)據(jù)flush到Storefile中。
當(dāng)Storefile越來(lái)越多,會(huì)觸發(fā)Compact合并操作,把過(guò)多的Storefile合并成一個(gè)大的Storefile。
當(dāng)Storefile越來(lái)越大,Region也會(huì)越來(lái)越大,達(dá)到閾值后,會(huì)觸發(fā)Split操作,將Region一分為二。
轉(zhuǎn)載于:https://www.cnblogs.com/alexzhang92/p/10936378.html
總結(jié)
以上是生活随笔為你收集整理的Hbase的读写流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 北风设计模式课程---2、工厂方法模式
- 下一篇: 美团面试题:缓存一致性,我是这么回答的!