HBase支持多种压缩算法,需根据数据特点和性能需求选择:
修改配置文件
编辑/etc/hbase/conf/hbase-site.xml
,添加或修改以下参数:
<!-- 全局启用压缩 -->
<property>
<name>hbase.regionserver.compression.type</name>
<value>snappy</value> <!-- 替换为所需算法 -->
</property>
<!-- 可选:设置压缩阈值(单位:字节,默认0,即所有数据均压缩) -->
<property>
<name>hbase.regionserver.compression.threshold</name>
<value>10485760</value> <!-- 10MB -->
</property>
<!-- 可选:设置压缩块大小(单位:字节,默认64KB) -->
<property>
<name>hbase.regionserver.compression.blocksize</name>
<value>65536</value> <!-- 64KB -->
</property>
安装依赖库
部分算法需安装对应库,例如Snappy:
sudo yum install snappy-devel
创建表时指定压缩
通过HBase Shell或API指定列族压缩算法:
hbase shell
create 'my_table', {NAME => 'cf1', COMPRESSION => 'SNAPPY'}
修改已有表压缩
使用HBase Shell或Java API更新表配置:
alter 'my_table', {NAME => 'cf1', COMPRESSION => 'LZO'}
动态调整压缩
通过HBase Admin API在代码中动态设置压缩策略。
验证压缩生效
describe 'my_table'
输出中应包含COMPRESSION => 'SNAPPY'
等配置。hbase hbck
检查存储文件是否压缩。监控与调优
参考来源:[1,2,3,4,5,6,7,8,9,10]