阅读量:0
在 CentOS 上为 HBase 启用数据压缩
一 选择压缩算法与安装本地库
- 常用算法与特点:
- Snappy:压缩/解压速度快、CPU 开销低,适合高吞吐在线业务,压缩率中等。
- GZIP:压缩率高、CPU 开销高,适合离线/批量场景。
- LZO:需额外许可与索引支持,解压快,适合流式/低延迟场景(需安装 LZO 库与索引工具)。
- Zstandard(Zstd):较新的算法,压缩率与速度均衡,需 HBase/Hadoop 版本支持。
- 在 CentOS 安装本地库示例:
- Snappy:
sudo yum install -y snappy snappy-devel - LZO:
sudo yum install -y lzo lzo-devel(如需 LZO 索引/并行解压,按发行版与 Hadoop 版本准备索引工具) - Zstd:安装系统 zstd 开发包(如可用),并确保 Hadoop/HBase 编译时包含 ZstdCodec。
- Snappy:
二 配置 HBase 全局或表级压缩
- 全局默认压缩(可选,影响后续新建表与列族):编辑 $HBASE_HOME/conf/hbase-site.xml,在
内添加或修改: - 使用 Snappy(推荐):
hbase.regionserver.compression.type snappy - 使用 GZIP:
hbase.regionserver.compression.type gzip - 使用 LZO:
hbase.regionserver.compression.type lzo - 如需显式指定 Codec 类(部分版本/发行包需要):
对应 GZIP/LZO 时使用 GzipCodec/LzoCodec。修改后重启 HBase 使全局配置生效。hbase.regionserver.compression.codec org.apache.hadoop.io.compress.SnappyCodec
- 使用 Snappy(推荐):
- 表/列族级压缩(对已存在表生效,不依赖全局默认):
- HBase Shell:
hbase shell # 建表时指定 create 't1', { NAME => 'cf', COMPRESSION => 'snappy' } # 或给已存在列族修改 alter 't1', NAME => 'cf', COMPRESSION => 'snappy' # 建议随后执行 major_compact 使存量数据重写并压缩 major_compact 't1' - 说明:列族级 COMPRESSION 取值为 NONE/SNAPPY/GZIP/LZO/ZSTD 等;生效后新写入的数据按该算法压缩,历史数据需通过 major_compact 重写以完成压缩。
- HBase Shell:
三 验证压缩是否生效
- Shell 查看表/列族配置:
在输出中检查列族的 COMPRESSION 字段是否为 snappy/gzip/lzo/zstd。hbase shell describe 't1' - 验证 WAL 压缩(可选,降低 WAL 体积):
查看 WAL_COMPRESSION 是否为 true;如未启用,可在列族上设置hbase shell describe 't1'WAL_COMPRESSION => 'true'并重启 RegionServer 后验证。
四 注意事项与性能建议
- 重启策略:修改 hbase-site.xml 后需重启 HMaster/RegionServer;仅调整表/列族压缩无需重启集群。
- 资源权衡:压缩提升存储利用率与 I/O 效率,但会增加 CPU 使用;在线高 QPS 场景优先 Snappy/Zstd,离线/批处理可优先 GZIP。
- 生效范围:全局配置影响新建表/列族;存量表需通过 alter + major_compact 重写数据文件以完成压缩。
- 版本与依赖:确保 HBase/Hadoop 版本包含所选算法的 Codec 实现;LZO 需系统库与(可选)索引工具;Zstd 需相应编解码支持。
以上就是关于“centos hbase数据如何压缩”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm