Hbase压缩文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinadrew/article/details/79954995

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


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页