Hbase讀寫流程和尋址機制


寫操作流程

(1) Client通過Zookeeper的調度,向RegionServer發出寫數據請求,在Region中寫數據。

(2) 數據被寫入RegionMemStore,直到MemStore達到預設閾值。

(3) MemStore中的數據被Flush成一個StoreFile

(4) 隨着StoreFile文件的不斷增多,當其數量增長到一定閾值后,觸發Compact合並操作,將多個StoreFile合並成一個StoreFile,同時進行版本合並和數據刪除。

(5) StoreFiles通過不斷的Compact合並操作,逐步形成越來越大的StoreFile

(6) 單個StoreFile大小超過一定閾值后,觸發Split操作,把當前Region Split2個新的Region。父Region會下線,新Split出的2個子Region會被HMaster分配到相應的RegionServer上,使得原先1Region的壓力得以分流到2Region上。

可以看出HBase只有增添數據,所有的更新和刪除操作都是在后續的Compact歷程中舉行的,使得用戶的寫操作只要進入內存就可以立刻返回,實現了HBase I/O的高機能

讀操作流程

(1) Client訪問Zookeeper,查找-ROOT-表,獲取.META.表信息。

(2) .META.表查找,獲取存放目標數據的Region信息,從而找到對應的RegionServer

(3) 通過RegionServer獲取需要查找的數據。

(4) Regionserver的內存分為MemStoreBlockCache兩部分,MemStore主要用於寫數據,BlockCache主要用於讀數據。讀請求先到MemStore中查數據,查不到就到BlockCache中查,再查不到就會到StoreFile上讀,並把讀的結果放入BlockCache

尋址過程:client-->Zookeeper-->-ROOT--->.META.-->RegionServer-->Region-->client

Hbase尋址機制

 


免責聲明!

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



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