在 CentOS 上为 HBase 启用数据压缩
一 选择压缩算法与安装本地库
sudo yum install -y snappy snappy-develsudo yum install -y lzo lzo-devel(如需 LZO 索引/并行解压,按发行版与 Hadoop 版本准备索引工具)二 配置 HBase 全局或表级压缩
<property>
<name>hbase.regionserver.compression.type</name>
<value>snappy</value>
</property>
<property>
<name>hbase.regionserver.compression.type</name>
<value>gzip</value>
</property>
<property>
<name>hbase.regionserver.compression.type</name>
<value>lzo</value>
</property>
<property>
<name>hbase.regionserver.compression.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
对应 GZIP/LZO 时使用 GzipCodec/LzoCodec。修改后重启 HBase 使全局配置生效。hbase shell
# 建表时指定
create 't1', { NAME => 'cf', COMPRESSION => 'snappy' }
# 或给已存在列族修改
alter 't1', NAME => 'cf', COMPRESSION => 'snappy'
# 建议随后执行 major_compact 使存量数据重写并压缩
major_compact 't1'
三 验证压缩是否生效
hbase shell
describe 't1'
在输出中检查列族的 COMPRESSION 字段是否为 snappy/gzip/lzo/zstd。hbase shell
describe 't1'
查看 WAL_COMPRESSION 是否为 true;如未启用,可在列族上设置 WAL_COMPRESSION => 'true' 并重启 RegionServer 后验证。四 注意事项与性能建议