必须在HFiles, MemStore和BLOCKCACHE之间协调对HBase的读取.BlockCache旨在将来自HFiles的频繁访问的数据保留在内存中, 以避免磁盘读取。每个列族都有自己的BlockCache.BlockCache包含以下形式的数据“块”, 是HBase单次从磁盘读取的数据单位.HFile物理上排列为一系列块以及这些块上的索引。这意味着从HBase读取块仅需要在索引中查找该块的位置并从磁盘中检索它。
块:它是最小的索引数据单元, 也是可以从磁盘读取的最小数据单元。默认大小为64KB。
方案, 当首选较小的块大小时:执行随机查找。具有较小的块会创建较大的索引, 从而消耗更多的内存。
方案, 当首选更大的块大小时:频繁执行顺序扫描。这样可以节省内存, 因为较大的块意味着较少的索引条目, 因此较小的索引。
从HBase读取一行需要首先检查MemStore, 然后检查BlockCache, 最后, 访问磁盘上的HFile。
评论前必须登录!
注册