HBase数据压缩在CentOS如何配置
导读:在 CentOS 上配置 HBase 数据压缩 一 环境准备与算法选择 确认 HBase 版本与运行用户,压缩库需要在 RegionServer 与客户端两端均可用。 常用压缩算法与取舍: SNAPPY:压缩/解压速度快、CPU 占用低...
在 CentOS 上配置 HBase 数据压缩
一 环境准备与算法选择
- 确认 HBase 版本与运行用户,压缩库需要在 RegionServer 与客户端两端均可用。
- 常用压缩算法与取舍:
- SNAPPY:压缩/解压速度快、CPU 占用低,适合在线业务与温数据。
- LZ4:速度更快、压缩率略低,适合对延迟极敏感的场景。
- GZIP:压缩率最高,但速度慢,适合历史归档。
- LZO:压缩率与速度均衡,需额外部署 LZO 库。
- ZSTD:压缩/解压性能优秀,适合在 CPU 较充裕时替代 Snappy/LZ4。
- 在 CentOS 上安装所需库(示例为 Snappy):
- sudo yum install -y snappy snappy-devel
- 如使用 LZO,需安装 lzo lzo-devel 并完成 Hadoop/LZO 编解码器配置。
- 注意:压缩会提升 CPU 使用率,需在存储节省与性能之间权衡。
二 配置步骤
- 编辑配置文件:打开 /etc/hbase/conf/hbase-site.xml,在 内按需添加或修改:
- 设置全局默认压缩算法(可选,优先级低于列族设置):
hbase.regionserver.compression.type
SNAPPY
- 如需对 WAL 也启用压缩(可选):
hbase.regionserver.wal.codec
org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
- 设置全局默认压缩算法(可选,优先级低于列族设置):
- 保存后按顺序重启服务:
- sudo systemctl restart hbase-master
- sudo systemctl restart hbase-regionserver
- 说明:上述属性为常见做法;部分资料还提及 hbase.regionserver.compression.codec 等参数,实际以所用 HBase 版本为准。
三 表与列族级别设置
- 创建表时指定压缩(示例为列族 cf1 使用 SNAPPY):
- create ‘my_table’, ‘cf1’, { NAME => ‘cf1’, COMPRESSION => ‘SNAPPY’}
- 修改已有表/列族的压缩算法(Java API 示例):
- Configuration config = HBaseConfiguration.create();
try (Admin admin = config.getAdmin()) {
TableName tn = TableName.valueOf(“my_table”);
TableDescriptor td = admin.getDescriptor(tn);
ColumnFamilyDescriptor cfd = td.getColumnFamily(“cf1”)
.toBuilder().setCompressionType(Compression.Algorithm.SNAPPY).build();
admin.modifyColumnFamily(tn, cfd);
}
- Configuration config = HBaseConfiguration.create();
- 压缩在写入时自动完成,读取时自动解压,无需在 Put/Get 中单独开关。
四 验证与常见问题
- 验证配置与数据是否压缩:
- HBase Shell 查看表/列族属性:describe ‘my_table’(应看到 COMPRESSION => ‘SNAPPY’)。
- 统计信息/文件层面:major compaction 后查看 HFile 的压缩编解码器(如使用 HFile 工具或 HBase Web UI)。
- 常见问题与排查:
- 出现 “ClassNotFoundException/NoClassDefFoundError” 等,多为压缩库未安装或 RegionServer 与客户端不一致,需在集群各节点安装相同库并重启。
- 使用 LZO 时,确保 Hadoop-LZO 编解码器在 HBase classpath 中。
- 压缩后 CPU 上升属正常,可通过监控选择更合适的算法或调整压缩策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: HBase数据压缩在CentOS如何配置
本文地址: https://pptw.com/jishu/758913.html
