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

2021-06-28 05:22:13 字數 910 閱讀 9811

整體過程是:

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的。

HBase查詢一條資料的過程

hbase中的client如何路由到正確的regionserver 在hbase中,大部分的操作都是在regionserver完成的,client端想要插入,刪除,查詢 資料都需要先找到相應的 regionserver。什麼叫相應的regionserver?就是管理你要操作的那個region的reg...

ThinkPHP find方法 查詢一條資料記錄

thinkphp find 方法是和 select 用法類似的乙個方法,不同之處 find 查詢出來的始終只有一條資料,即系統自動加上了 limit 1 限制。當確認查詢的資料記錄只能是一條記錄時,建議使用 find 方法查詢,如使用者登入賬號檢測 public function chekuser ...

優化mysql查詢最新一條資料

title 優化mysql查詢最新一條資料 date 2019 07 24 11 23 21 categories 今天寫web時,發現有個請求一直沒有響應,用谷歌f12看了一下,請求出現了乙個問題。我第一反應是網路延遲,又試了幾次,還是這個問題,便看了一下後台控制台也沒報錯,便想是不是sql查詢時...