Segment是Hbase2.0的概念,MemStore由一個可寫的Segment,以及一個或多個不可寫的Segments構成。故hbase 1.*版本中的MemstoreScanner變成了SegmentScanner。算法
對應關係表sql
Hbase存儲結構 | Hbase Scanner體系 |
---|---|
Region | RegionScanner |
Store | StoreScanner |
Memstore | SegmentScanner(memstore級別) |
Storefile | StorefileScanner |
hbase scanner體系與hbase存儲組織結構是一一對應的。nosql
數據真正的讀取過程只發生在StorefileScanner,其餘scanner只是幫助縮小查找範圍,相似於多級索引體系。blog
storefilescanner的讀取抽象過程如圖所示:
索引
要想知道讀取細節,首先須要瞭解HFile的結構:get
數據根據索引Root Index Block、Leaf Index Block,定位DataBlock。在64k大小的DataBlock中,能夠根據二分查找等算法,定位到數據。it