HBase 读取
HBase的读取必须在HFiles、MemStore和BLOCKCACHE之间进行协调。BlockCache被设计用于将HFiles中经常访问的数据保留在内存中,以避免磁盘读取。每个列族都有自己的BlockCache。BlockCache以’块’的形式包含数据,作为HBase从磁盘中读取的数据单元。HFile在物理上是一系列块加上这些块的索引。这意味着从HBase中读取一个块只需要在索引中查找该块的位置并从磁盘中检索它。
块: 它是最小的索引数据单元,也是可以从磁盘读取的最小数据单元。默认大小为64KB。
优选较小的块大小的场景: 进行随机查找。较小的块会创建较大的索引,从而占用更多的内存。
优选较大的块大小的场景: 频繁进行顺序扫描。这可以节省内存,因为较大的块意味着较少的索引条目,从而得到较小的索引。
从HBase中读取一行需要首先检查MemStore,然后是BlockCache,最后访问磁盘上的HFiles。