首先來點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---