【问题标题】:Is HBase block cache dropped when restart HBase?重新启动 HBase 时是否会丢弃 HBase 块缓存?
【发布时间】:2021-03-18 11:00:57
【问题描述】:

我目前对 HBase 块缓存感到困惑。

我已经意识到 HBase 块缓存的存在,它是为了读取性能。问题是,如果我通过命令停止 HBase,

stop-hbase.sh

并通过命令重启 HBase,

start-hbase.sh

会不会导致HBase的block cache全部丢掉,block cache变空?

谢谢大家的提前。

【问题讨论】:

    标签: hadoop hdfs hbase


    【解决方案1】:

    是的,没错。 HBase BlockCache 在区域服务器启动时被实例化,并在进程的整个生命周期内保留。

    如果您重新启动守护程序,您将有一个空的块缓存,因为区域服务器会再次创建。始终保存的数据是存储在 HFiles 中的数据。

    【讨论】:

    • 我认为当我重新启动包含区域服务器守护进程的 HBase 时,它​​会在区域服务器内存中重建块缓存,因为吞吐量不会改变。有没有办法手动删除HBase的blockcache?
    • 我不知道如何在区域服务器执行期间删除块缓存。我所知道的是您可以在创建列族时禁用块缓存功能。例如你可以create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}
    • 另外,你可以在使用java运行界面时做同样的事情。也许,您可以在管道执行期间禁用块缓存void setBlockCacheEnabled(boolean blockCacheEnabled) method
    • 此外,块缓存可以配置为在重启后保持不变,请参阅配置键 hbase.bucketcache.ioenginedoc 如何配置它。
    【解决方案2】:

    是块缓存是读缓存,存储在内存中,rs重启后不会恢复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多