寫在前面
hbase讀的速度比寫的速度慢,是一個讀慢寫快的數據庫,因爲hbase的讀的時候要做很多事.
寫流程
1)Client 先訪問zookeeper,獲取hbase:meta 表位於哪個Region Server。
2)訪問對應的Region Server,獲取hbase:meta 表,根據讀請求的namespace:table/rowkey,查詢出目標數據位於哪個Region Server 中的哪個Region中。並將該table 的region 信息以
及meta 表的位置信息緩存在客戶端的meta cache,方便下次訪問。
3)與目標Region Server 進行通訊;
4)將數據順序寫入(追加)到WAL;
5)將數據寫入對應的MemStore,數據會在MemStore 進行排序;
6)向客戶端發送ack;
7)等達到MemStore 的刷寫時機後,將數據刷寫到HFile。
讀流程
1)Client 先訪問zookeeper,獲取hbase:meta 表位於哪個Region Server。
2)訪問對應的Region Server,獲取hbase:meta 表,根據讀請求的namespace:table/rowkey,查詢出目標數據位於哪個Region Server 中的哪個Region中。並將該table 的region 信息以
及meta 表的位置信息緩存在客戶端的meta cache,方便下次訪問。
3)與目標Region Server 進行通訊;
4)將數據順序寫入(追加)到WAL;
5)將數據寫入對應的MemStore,數據會在MemStore 進行排序;
6)向客戶端發送ack;
7)等達到MemStore 的刷寫時機後,將數據刷寫到HFile。