【发布时间】:2021-03-18 11:00:57
【问题描述】:
我目前对 HBase 块缓存感到困惑。
我已经意识到 HBase 块缓存的存在,它是为了读取性能。问题是,如果我通过命令停止 HBase,
stop-hbase.sh
并通过命令重启 HBase,
start-hbase.sh
会不会导致HBase的block cache全部丢掉,block cache变空?
谢谢大家的提前。
【问题讨论】:
我目前对 HBase 块缓存感到困惑。
我已经意识到 HBase 块缓存的存在,它是为了读取性能。问题是,如果我通过命令停止 HBase,
stop-hbase.sh
并通过命令重启 HBase,
start-hbase.sh
会不会导致HBase的block cache全部丢掉,block cache变空?
谢谢大家的提前。
【问题讨论】:
是的,没错。 HBase BlockCache 在区域服务器启动时被实例化,并在进程的整个生命周期内保留。
如果您重新启动守护程序,您将有一个空的块缓存,因为区域服务器会再次创建。始终保存的数据是存储在 HFiles 中的数据。
【讨论】:
create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}
void setBlockCacheEnabled(boolean blockCacheEnabled) method
hbase.bucketcache.ioengine 和 doc 如何配置它。
是块缓存是读缓存,存储在内存中,rs重启后不会恢复
【讨论】: