首先来点Hbase常用命令:
查看所有表:list
查看表结构 describe 'stu'
统计条数:
count 'stu', INTERVAL => 100000
hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'stu'
清空表:truncate 'stu'
删除表:
disable 'int_s6a'
drop 'int_s6a'
exists 'int_s6a' 验证表是否存在
用正则表达式删表
disable_all 'int_*'
drop_all 'int_*'
disable 'IDX_STU'
drop 'IDX_STU'
exists 'IDX_STU'
我使用的是Hbase1.24,默认有三种文件存储格式NONE 、GZ、 LZ4
hbase表默认存储位置在hdfs:///hbase/data/default
查看表未压缩的文件大小:
hdfs dfs -du -h /hbase/data/default
298.5 M 298.5 M /hbase/data/default/stu
修改压缩格式:
1. disable 'stu'
2. alter 'stu', NAME => 'cf1', COMPRESSION => 'snappy' 需要手动安装snappy
alter 'stu', NAME => 'cf1', COMPRESSION => 'LZO' 需要手动安装lzo
NONE GZ LZ4可以使用,随便选一个压缩算法执行
alter 'stu', NAME => 'cf1', COMPRESSION => 'NONE'
alter 'stu', NAME => 'cf2', COMPRESSION => 'NONE'
alter 'stu', NAME => 'cf1', COMPRESSION => 'gz'
alter 'stu', NAME => 'cf2', COMPRESSION => 'gz'
alter 'stu', NAME => 'cf1', COMPRESSION => 'LZ4'
alter 'stu', NAME => 'cf2', COMPRESSION => 'LZ4'
注意:列簇名必须是已经存在的且要写正确,否则会新建一个列簇
3. enable 'stu' enable表后,HBase表的压缩格式并没有生效,还需要一个动作
4. major_compact 'stu'
5. describe 'stu' 查看压缩格式是否修改成功
只需要这5步之后可完成压缩,stu表压缩之后只有162.4 M
而且经过测试:
NONE GZ LZ4三者中LZ4算法最好,可以节省空间和提高速度
最后提一句:如果使用Phoenix创建索引(索引本质也是一张表),也可以执行压缩格式可以节省空间和提高速度:
phoenix sql创建压缩索引表:
create index "idx_stu" on "stu"("cf1"."name") compression='LZ4';
----end---