众所周知,当内存中的数据达到某个阈值时,内存中的数据将作为hfile被刷新到hdfs中当我想通过row键获取一段数据,但数据在hdfs上时,hbase如何保证检索速度(或随机访问速度)?看起来比从内存中检索要慢得多?
tf7tbtn21#
来自hbase参考指南:hbase提供了两种不同的blockcache实现来缓存从hdfs读取的数据:默认的on heap LruBlockCache 以及 BucketCache ,通常是堆外的。。。 LruBlockCache 是原始实现,并且完全在java堆中。bucketcache是可选的,主要用于保持块缓存数据远离堆。。。hbase还收集块缓存统计数据,并通过其web用户界面显示这些数据。通过适当的调整,你可以达到90%-95%的命中率,所以你大部分时间还是在读内存。
LruBlockCache
BucketCache
1条答案
按热度按时间tf7tbtn21#
来自hbase参考指南:
hbase提供了两种不同的blockcache实现来缓存从hdfs读取的数据:默认的on heap
LruBlockCache
以及BucketCache
,通常是堆外的。。。LruBlockCache
是原始实现,并且完全在java堆中。bucketcache是可选的,主要用于保持块缓存数据远离堆。。。hbase还收集块缓存统计数据,并通过其web用户界面显示这些数据。通过适当的调整,你可以达到90%-95%的命中率,所以你大部分时间还是在读内存。