分享

hbase日志中包含的cache信息,求解?

fanbells 发表于 2014-4-16 14:35:32 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 10198
本帖最后由 fanbells 于 2014-4-16 14:38 编辑

Hbase集群中有一个节点的io特大,查看了hbase日志发现全是下面的日志,问一下是什么原因导致的?
       DEBUG org.apache.hadoop.hbase.io.hfile.LruBlockCache: Block cache LRU eviction completed; freed=50.89 MB, total=381.31 MB, single=251.01 MB, multi=190.39 MB, memory=0 KB
      DEBUG org.apache.hadoop.hbase.io.hfile.LruBlockCache: Block cache LRU eviction started; Attempting to free 50.82 MB of total=431.71 MB

      DEBUG org.apache.hadoop.hbase.io.hfile.LruBlockCache: Block cache LRU eviction completed; freed=50.9 MB, total=386.07 MB, single=255.71 MB, multi=190.52 MB, memory=0 KBDEBUG org.apache.hadoop.hbase.io.hfile.LruBlockCache: Block cache LRU eviction started; Attempting to free 50.83 MB of total=431.72 MB

       DEBUG org.apache.hadoop.hbase.io.hfile.LruBlockCache: Block cache LRU eviction completed; freed=50.85 MB, total=381.18 MB, single=250.91 MB, multi=190.52 MB, memory=0 KB

       DEBUG org.apache.hadoop.hbase.io.hfile.LruBlockCache: Block cache LRU eviction started; Attempting to free 50.82 MB of total=431.7 MB

我猜测原因是不是在对表扫描时开启了块缓存,导致一次又一次的触发缓存驱逐过程。


已有(2)人评论

跳转到指定楼层
howtodown 发表于 2014-4-16 15:49:56
读请求先到Memstore中查数据,查不到就到BlockCache中查,再查不到就会到磁盘上读,并把读的结果放入BlockCache。由于BlockCache采用的是LRU策略,因此BlockCache达到上限(heapsize * hfile.block.cache.size * 0.85)后,会启动淘汰机制,淘汰掉最老的一批数据。

从上面应该可以得出,不断的缓存驱逐过程是因为达到了BlockCache达到上限(heapsize * hfile.block.cache.size * 0.85)后,会启动淘汰机制。

产生这个原因,可能数据量太大,条件允许可以设置的BlockCache大一些
详细过程可以参考:
HBase Block Cache实现机制分析

回复

使用道具 举报

fanbells 发表于 2014-4-16 17:03:40
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条