HBase 讀寫數據流程


一 寫數據流程

1)Client先訪問zookeeper,獲取hbase:meta表位於哪個RegionServer。
2)訪問對應的RegionServer,獲取hbase:meta表,根據讀請求的namespace:table/rowkey,查詢出目標數據位於哪個RegionServer中的哪個Region中。並將該table的region信息以及meta表的位置信息緩存在客戶端的metacache,方便下次訪問。
3)與目標RegionServer進行通訊;
4)將數據順序寫入(追加)到WAL;
5)將數據寫入對應的MemStore,數據會在MemStore進行排序;
6)向客戶端發送ack;
7)等達到MemStore的刷寫時機后,將數據刷寫到HFile。

 

二 讀數據流程

1)Client先訪問zookeeper,獲取hbase:meta表位於哪個RegionServer。
2)訪問對應的RegionServer,獲取hbase:meta表,根據讀請求的namespace:table/rowkey,查詢出目標數據位於哪個RegionServer中的哪個Region中。並將該table的region信息以及meta表的位置信息緩存在客戶端的metacache,方便下次訪問。
3)與目標RegionServer進行通訊;
4)分別在BlockCache(讀緩存),MemStore和StoreFile(HFile)中查詢目標數據,並將查到的所有數據進行合並。此處所有數據是指同一條數據的不同版本(timestamp)或者不同的類型(Put/Delete)。
5)將從文件中查詢到的數據塊(Block,HFile數據存儲單元,默認大小為64KB)緩存到BlockCache。
6)將合並后的最終結果返回給客戶端。


免責聲明!

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



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