码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • HBase之BlockCache


    目录

    • BlockCache
      • LruBlockCache
      • BucketCache
      • Compressed BlockCache
      • 注意点

    BlockCache

    用于缓存从hdfs读的数据,有两种不同的实现,LruBlockCache(利用堆内存)和BucketCache(利用非堆内存)

    LruBlockCache

    使用LRU算法

    • Single access级:首次从hdfs中读取的block位于该层级,后续也会首先考虑驱逐
    • Multi access级:在single access中的block再次被访问则位于该层级,则block将会升级到该层级。
    • In-memory access:如果列族配置了in-memory,则不考虑访问次数,直接处于该层级

    处于用户block,还缓存

    • Catalog Tables:即hbase:meta表
    • HFiles Indexes:用于搜索hfile时无须读取整个数据文件。索引的大小受块大小、键大小和数据大小决定
    • Keys:row key, family qualifier, and timestamp
    • Bloom Filters:布隆过滤器

    BucketCache

    BucketCache是通过CombinedBlockCache来联合管理的:

    • 使用LruBlockCache缓存index和bloom,数据block存储在BucketCache。
    • BucketCache块缓存可以在堆外、文件或mmaped文件模式下。通过hbase.bucketcache.ioengine参数设定。

    配置方法

    1. 在hbase-env.sh中先配置堆外内存HBASE_OFFHEAPSIZE(比想要的值大,还有其他使用堆外的地方)
    2. 配置相关参数:缓存模式hbase.bucketcache.ioengine、lru缓存大小hfile.block.cache.size、bucketcache缓存大小hbase.bucketcache.size

    Compressed BlockCache

    hbase.block.data.cachecompressed设置为true启用。提高吞吐,同时也会提高延迟和gc、cpu使用。

    注意点

    某些情况下不适合使用blockcache:

    1. 完全随机读模式:数据短时间内不会访问第二次,此时在表上设置块缓存非常浪费。
    2. 大数量的scan,此时可能会导致oom发生
    3. 在一个典型的MapReduce作业中每一行只读取一次,因此不需要将它们放入块缓存。Scan对象可以通过setCacheBlocks方法(将其设置为false)禁用此选项。
  • 相关阅读:
    TensorFlow 的基本概念和使用场景
    大厂一线研发揭秘:怎么样才算全面了解了业务?
    论文阅读 CVPR2022《Rethinking Semantic Segmentation:A Prototype View》
    【C++函数的进化】函数指针,模板,仿函数,lambda表达式
    MySQL 回表
    day25可变参数&综合练习
    Git上传项目到Github
    【实战项目开发技术分享】ChatGPT与机器人的交互
    C++面试知识点总结
    【牛客】HJ1 字符串最后一个单词的长度
  • 原文地址:https://blog.csdn.net/zincooo/article/details/134422273
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号