第1关:HBase Shell 操作:分区压缩

任务描述

本关任务:在 HBase Shell 中使用分区压缩命令并将查看到的命令结果复制到指定的文件中。

相关知识

为了完成本关任务,你需要掌握:

1.数据分区压缩的概念;

2.数据分区压缩的原因;

3.数据分区压缩的过程;

4.数据分区压缩的触发时机;

5.数据分区压缩的详解。

数据分区压缩的概念

数据分区压缩的概念如下所述:

Hbase 中 MemStore 中不断进行 flush 刷写操作,就会产生多个 storeFile 的文件,当 storeFile 文件达到一定阈值后,Hbase 就会将 Region 中的 Store 中的一些 HFile 进行合并。

数据分区压缩的原因

数据分区压缩的原因如下所述:

HBase 不停的刷写,导致存储目录中有过多的数据文件,文件太多会导致维护困难、降低数据查询性能和效率。对一堆的文件进行 I/O 操作,耗时太多。所以 HBase 定期会对这些琐碎的文件进行整理,即合并 Compaction。

数据分区压缩的过程

数据分区压缩的过程分为以下几步:

排序文件、合并文件、代替原文件服务。HBase 首先从待合并的文件中读出 HFile 中的 key-value,再按照由小到大的顺序写入一个新文件(storeFile)中。这个新文件将代替所有之前的文件,对外提供服务。

数据分区压缩的触发时机

数据分区压缩的触发时机有如下几点:

  1. MEMStore Flush

内存中的数据 Flush 刷写到硬盘上以后,会对当前 Store 中的文件进行判断,当数量达到阈值,则会触发 Compaction。 Compaction 是以 Store 为单位进行合并的。当 Flush 刷写完成后,整个 Region 的所有 Store 都会执行 Flush。

  1. 后台线程周期性的检查

Compaction Checker线程定期检查是否触发Compaction Checker会优先检查文件数量是否大于阈值,再判断是否满足Major Compaction的条件的时间范围内,如果满足,则触发一次大合并Major Compaction

  1. 手动触发
  • 由于很多业务担心 MajorCompaction 影响读写性能,所以选择在低峰期手动触发合并。

  • 当用户修改表结构后,希望立刻生效,则手动触发合并。

    </
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值