Hbase定址機制

2021-08-28 00:19:05 字數 1113 閱讀 7797

-root-表結構

.meta.行記錄結構

現在假設我們要從table2裡面查詢一條rowkey是rk10000的資料。那麼我們應該遵循以下步驟: 

1. 從.meta.表裡面查詢哪個region包含這條資料。 

2. 獲取管理這個region的regionserver位址。 

3. 連線這個regionserver, 查到這條資料。

系統如何找到某個row key (或者某個 row key range)所在的region 

bigtable 使用三層類似b+樹的結構來儲存region位置。 

第一層: 儲存zookeeper裡面的檔案,它持有root region的位置。 

第二層:root region是.meta.表的第乙個region其中儲存了.meta.表其它region的位置。通過root region,我們就可以訪問.meta.表的資料。 

第三層: .meta.表它是乙個特殊的表,儲存了hbase中所有資料表的region 位置資訊。

說明: 

(1) root region永遠不會被split,保證了最需要三次跳轉,就能定位到任意region 。 

(2).meta.表每行儲存乙個region的位置資訊,row key 採用表名+表的最後一行編碼而成。 

(3) 為了加快訪問,.meta.表的全部region都儲存在記憶體中。 

(4) client會將查詢過的位置資訊儲存快取起來,快取不會主動失效,因此如果client上的快取全部失效,則需要進行最多6次網路來回,才能定位到正確的region(其中三次用來發現快取失效,另外三次用來獲取位置資訊)。

region定位流程:

Hbase讀寫流程和定址機制

1 client通過 zookeeper 的排程,向 regionserver 發出寫資料請求,在 region 中寫資料。2 資料被寫入 region 的memstore 直到memstore 達到預設閾值。3 memstore中的資料被 flush 成乙個storefile 4 隨著 store...

Hbase的讀寫定址過程

1.hbase的寫入流程 regionserver寫入wal檔案 在將操作寫入metastore之前,會將操作先寫入到wal檔案中。wal檔案的是順序儲存操作記錄的,所有每次新操作直接追加到regionserver對應的wal檔案尾部即可。regionserver寫入metastore 將操作寫入到...

大資料學習之路50 hbase的定址機制原理解析

每個region server管理著許多的region,而集群中又有許多的region server,假如我們要查詢一條資料的話,又如何知道我們要查詢的那條資料在哪個region server的哪個region上呢?當然我們也可以採用hdfs的namenode機制,記錄每個檔案有哪些block,這些...