我们知道,当内存中的数据达到阈值时,内存中的数据将作为HFile刷新到HDFS
当我想通过行键获取一条数据,但是数据在HDFS上时,HBase如何保证检索速度(或随机访问速度)?看起来这比从内存存储中检索要慢得多?
答案 0 :(得分:1)
从HBase Reference Guide:
HBase提供了两种不同的BlockCache实现来缓存数据 从HDFS中读取:默认的堆上
LruBlockCache
和BucketCache
, 通常是堆外的...
LruBlockCache
是原始的 实现,并且完全在Java堆中。 “ BucketCache”为 可选,主要用于保持块缓存数据不在堆中。
HBase还收集块缓存统计信息,并通过其Web UI呈现它们。通过适当的调整,您可以达到90%-95%的命中率,因此您大部分时间仍在从内存中读取数据。