- HFile 带有索引文件 , 读取对应 RowKey 数据会比较快 。
- Block Cache 会缓存之前读取的内容和元数据信息,如果 HFile 没有发生变化(记录在 HFile 尾信息中),则不需要再次读取 。
- 使用布隆过滤器能够快速过滤当前 HFile 不存在需要读取的 RowKey,从而避免读取文件 。(布隆过滤器使用 HASH 算法 , 不是绝对准确的,出错会造成多扫描一个文件,对读取数据结果没有影响)
Compaction 分为两种,分别是 Minor Compaction 和 Major Compaction 。MinorCompaction会将临近的若干个较小的 HFile 合并成一个较大的 HFile , 并清理掉部分过期和删除的数据,有系统使用一组参数自动控制,Major Compaction 会将一个 Store 下的所有的 HFile 合并成一个大 HFile , 并且会清理掉所有过期和删除的数据,由参数 hbase.hregion.majorcompaction控制,默认 7 天 。
文章插图
- Minor Compaction 控制机制:参与到小合并的文件需要通过参数计算得到 , 有效的参数有 5 个
- hbase.hstore.compaction.ratio(默认 1.2F)合并文件选择算法中使用的比率 。
- hbase.hstore.compaction.min(默认 3) 为 Minor Compaction 的最少文件个数 。
- hbase.hstore.compaction.max(默认 10) 为 Minor Compaction 最大文件个数 。
- hbase.hstore.compaction.min.size(默认 128M)为单个 Hfile 文件大小最小值,小于这个数会被合并 。
- hbase.hstore.compaction.max.size(默认 Long.MAX_VALUE)为单个 Hfile 文件大小最大值,高于这个数不会被合并 。小合并机制为拉取整个 store 中的所有文件,做成一个集合 。之后按照从旧到新的顺序遍历 。
- 判断条件为:
- 过小合并,过大不合并 。
- 文件大小/ hbase.hstore.compaction.ratio < (剩余文件大小和) 则参与压缩 。所有把比值设置过大,如 10 会最终合并为 1 个特别大的文件,相反设置为 0.4,会最终产生 4 个 storeFile 。不建议修改默认值 。
- 满足压缩条件的文件个数达不到个数要求(3 <= count <= 10)则不压缩 。
- 自定义分区:每一个 region 维护着 startRow 与 endRowKey,如果加入的数据符合某个 region 维护的rowKey 范围,则该数据交给这个 region 维护 。那么依照这个原则,我们可以将数据所要投放的分区提前大致的规划好,以提高 HBase 性能 。
# 手动设定预分区create 'student1','info', SPLITS => ['1000','2000','3000','4000']# 生成 16 进制序列预分区create 'student2','info',{NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}# 按照文件中设置的规则预分区,创建 student-splits.txt 文件内容如下:aaaabbbbccccdddd# 然后执行:create 'student3', 'info',SPLITS_FILE => 'student-splits.txt'
文章插图
- 系统拆分:Region 的拆分是由 HRegionServer 完成的,在操作之前需要通过 ZK 汇报 master,修改对应的 Meta 表信息添加两列 info:splitA 和 info:splitB 信息 。之后需要操作 HDFS 上面对应的文件,按照拆分后的 Region 范围进行标记区分,实际操作为创建文件引用,不会挪动数据 。刚完成拆分的时候,两个 Region 都由原先的 RegionServer 管理 。之后汇报给 Master,由Master将修改后的信息写入到Meta表中 。等待下一次触发负载均衡机制,才会修改Region的管理服务者 , 而数据要等到下一次压缩时,才会实际进行移动 。不管是否使用预分区,系统都会默认启动一套 Region 拆分规则 。
推荐阅读
- 玩魔方的秘诀(十大诡异魔方)
- 巧用VBA实现:基于多个关键词模糊匹配Excel多行数据
- 影驰1650ultra大将oc怎么样_影驰1650ultra大将oc性能测评
- 小米11价格大概多少_小米11上市时间及价格
- JuiceFS 元数据引擎选型指南
- 原神草神最新表情包有哪些-原神草神最新表情包大全分享2022
- 盗墓长生印最佳队伍是什么-盗墓长生印最佳队伍推荐大全攻略
- 详解ROMA Connect API 流控实现技术
- 世界十大顶级面料:全球十大顶级男装面料排行榜 你知道哪些?
- 王者荣耀露娜怎么玩(王者露娜连招张大仙)