Skip to content

首先检查HDFS 是否支持 snappy 压缩

hadoop checknative

2.1 创建表时指定压缩算法

create 'test', {NAME => 'info', VERSIONS => 1, COMPRESSION => 'snappy'}
# 表创建之后,使用describe命令查看表信息
describe 'test'

2.2 创建表后指定或修改压缩算法

1) disable需要修改的表

disable 'exlive_data_20210713'

2) 使用alter命令进行更改

alter 'exlive_data_20210713', NAME => 'f', COMPRESSION => 'snappy'

NAME即column family,列族。HBase修改压缩格式,需要一个列族一个列族的修改,注意大小写,不要弄错了。如果修改错了,将会创建一个新的列族,且压缩格式为snappy。当然,假如你还是不小心创建了一个新列族的话,可以通过以下方式删除:

alter 'test', {NAME=>'info', METHOD=>'delete'}

3) 重新enable表

enable 'exlive_data_20210713'

4) 对表进行major_compact操作,使压缩生效

major_compact  'exlive_data_20210713'

注意,如果表的数据较多,该操作需要较长时间,所以尽量选择一个不忙的时间

修改 hbase-env.sh,添加

shell
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/:/usr/local/lib/
export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/
export CLASSPATH=$CLASSPATH:$HBASE_LIBRARY_PATH