hbase架構(gòu)

hbase是有字節(jié)碼形式存儲的

一、Client

1.包含訪問HBase的接口并維護cache(緩存)來加快對HBase的訪問

二、Zookeeper

保證了只有一個alive的Master,對RegionServer做健康檢查,實時心跳,存儲Region的尋址入口,存儲HBase的scheme和table元數(shù)據(jù)

三、Master

Master為RegionServer分配Region,負責(zé)RegionServer的負載均衡,將失效的RegionServer(由zookeeper通知)中的Storefile轉(zhuǎn)移到其他的RegionServer中,管理table的增刪改操作

四、RegionServer

RegionServer維護Region,處理region的io請求,負責(zé)切分在運行過程中變得過大的Region

盡量避免過多的小文件和數(shù)據(jù)傾斜

五、Region

HBase自動把表水平劃分成多個區(qū)域(region),每個region會保存一個表里面某段連續(xù)的數(shù)據(jù)

每個表一開始只有一個region,隨著數(shù)據(jù)不斷插入表,region不斷增大,當(dāng)增大到一個閥值的時候,region就會等分會兩個新的region(裂變)

當(dāng)table中的行不斷增多,就會有越來越多的region。這樣一張完整的表被保存在多個Regionserver 上。

hlog可以記錄操作日志

region對應(yīng)一個表

store對應(yīng)一個列族

六、Memstore 與 storefile

一個region由多個store組成,一個store對應(yīng)一個CF(列族)

store包括位于內(nèi)存中的memstore和位于磁盤的storefile寫操作先寫入memstore,當(dāng)memstore中的數(shù)據(jù)達到某個閾值,hregionserver會啟動flashcache進程寫入storefile,每次寫入形成單獨的一個storefile

當(dāng)storefile文件的數(shù)量增長到一定閾值后,系統(tǒng)會進行合并(minor、major compaction),在合并過程中會進行版本合并和刪除工作(majar),形成更大的storefile

當(dāng)一個region所有storefile的大小和數(shù)量超過一定閾值后,會把當(dāng)前的region分割為兩個,并由hmaster分配到相應(yīng)的regionserver服務(wù)器,實現(xiàn)負載均衡

客戶端檢索數(shù)據(jù),先在memstore找,找不到再找storefile

hbase通過hdfsclient來存儲數(shù)據(jù)存儲到datenode上



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

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

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