HBase數據存取流程


一、HBase的特點是什么
1.HBase一個分布式的基於列式存儲或者行式存儲的數據庫,基於hadoop的hdfs存儲,zookeeper進行管理。
2.HBase適合存儲半結構化或非結構化數據,對於數據結構字段不夠確定或者雜亂無章很難按一個概念去抽取的數據。
3.HBase為null的記錄不會被存儲.
4.數據存儲模式為key,value模式:(Table,Rowkey,Column,Timestamp)-> value 
5.HBase是主從架構。Hmaster作為主節點,Hregionserver作為從節點。
 
二、HBase存數據流程

 

流程:Client請求Zookeeper確定meta表所在的RegionServer所在的地址,接着根據Rowkey找到數據所歸屬的RegionServer;用戶提交put或delete請求時HbaseClient會將put或delete請求添加到本地buffer中,符合一定條件
會通過異步批量提交服務器處理。
 
接着數據到達Region后,服務端處理流程如下:

 

 
流程:RegionServer去獲取RowLock,region更新共享鎖;接着Hbase會先寫寫日志WAL(數據可靠性)再寫緩存MemStore(閾值默認64M,每個列族對應一個Store下的MemStore);然后釋放鎖后將日志落到HDFS;若MemStore達到閾值則將緩存數據落磁盤StoreFile,最后多個StoreFile發生合並;若StoreFile很大會觸發split操作,將當前region分割成2個Region,並同步到Hmaster。
 
三、HBase取數據流程
HbaseClient的操作和存數據類似

服務器操作流程:

 

RegionServer收到get請求后,對當前Region進行Scan,接着會根據列族對Store進行Scan,同時會對對應的MemStore進行Scan;最后找到我們要的數據返回給Client。注意:一個StoreScanner會對應多個StoreFileScanner,整個過程是一個層級關系。

 
四、HBase存取優化
檢索優化(BloomFilter):應用BloomFilter來提高隨機讀的性能,BloomFilter是列族級別的配置
五、HBase API使用

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM