Hbase压缩文件

Posted 一个程序媛的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hbase压缩文件相关的知识,希望对你有一定的参考价值。

首先来点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---


以上是关于Hbase压缩文件的主要内容,如果未能解决你的问题,请参考以下文章

HBase MOB压缩分区策略介绍

hbase优化之region合并和压缩

python颜色压缩的结果颜色比保存颜色深

什么是HBase HBase的运维工具

HBase写入性能改造(续)--MemStoreflushcompact参数调优及压缩卡的使用

hbase的四种压缩格式