1. 程式人生 > >HBase 查詢一條資料的過程 白話理解

HBase 查詢一條資料的過程 白話理解

整體過程是:

1.client訪問zk,查詢-ROOT-表,獲取.META.表資訊

2.從.META.表查詢,獲取存放資料的region資訊(找到region sever)

3.最後通過RegionServer獲取查詢的資料


不懂?別急,我們先了解ROOT表和META表的結構:

            

從這裡可以看出,META表裡麵包含了region的資訊(一行),region資訊包括:region name(對應row_key),還有region sever(就是哪個sever管理這個region的)等資訊

META存放了太多的region資訊了,可能太大,會被分成多個region的,那麼,META表的region怎麼管理呢?就讓ROOT表來管理吧,ROOT表也是同樣的結構,只是管理的是META表的region資訊而已。當然,ROOT表不可能會非常大的,不需要其它表來管理了,不然也不叫ROOT了,是吧。

一句話:META表管理的是實際建立的表的region資訊,ROOT表管理的是META表的region資訊,明白了吧?

到這裡,先client--->root---->meta--->region sever這個順序應該知道了吧。。

接下來看看什麼是RegionServer

資料的讀寫操作,都是在RegionServer上操作的,RegionServer它一方面維護region的狀態,提供對region的管理和服務(增刪改查等),一方面跟Master交換,上傳region的負載資訊,參與Master的分散式協調管理(就是要負載均衡啦)。。。

ok,也就是說,最後查詢還得是通過RegionServer來操作,到這裡,client--->root---->meta--->region sever----->獲取資料 整個流程就打通了。

其實,最後在查詢資料的時候,會先查menstore,沒有再查block cach,最後才查hfile的。