HBase对使用Snappy压缩的表进行Bulkload 2015-09-29 21:00

未压缩表进行Bulkload

创建表:

hbase shell
> create 'csdn_1', {NAME => 'info'}

Bulkload第一步:

export HBASE_HOME=/opt/hbase
export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath`
${HADOOP_HOME}/bin/hadoop jar ${HBASE_HOME}/lib/hbase-server-0.98.11-hadoop2.jar importtsv \
    -Dimporttsv.separator=, \
    -Dimporttsv.columns=HBASE_ROW_KEY,info:password,info:email \
    -Dimporttsv.bulk.output=hdfs://myns1/tmp/csdn_output1 \
    csdn_1 hdfs://myns1/data/csdn/all.csv

Bulkload第二步:

export HBASE_HOME=/opt/hbase
export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath`
${HADOOP_HOME}/bin/hadoop jar ${HBASE_HOME}/lib/hbase-server-0.98.11-hadoop2.jar completebulkload hdfs://myns1/tmp/csdn_output1 csdn_1

查看导入后,整个表占用的HDFS空间:

hdfs dfs -du -s -h /hbase/data/default/csdn_1
677.4 M  /hbase/data/default/csdn_1

占用677.4 M空间

查看导入后表的记录数:

hbase shell
> count 'csdn_1'
=> 6426748

Snappy表压缩进行Bulkload

创建表(指定snappy压缩):

hbase shell
create 'csdn_2', {NAME => 'info', COMPRESSION => 'snappy'}

Bulkload第一步:

export HBASE_HOME=/opt/hbase
export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath`
${HADOOP_HOME}/bin/hadoop jar ${HBASE_HOME}/lib/hbase-server-0.98.11-hadoop2.jar importtsv \
    -Dimporttsv.separator=, \
    -Dimporttsv.columns=HBASE_ROW_KEY,info:password,info:email \
    -Dimporttsv.bulk.output=hdfs://myns1/tmp/csdn_output2 \
    csdn_2 hdfs://myns1/data/csdn/all.csv

Bulkload第二步:

export HBASE_HOME=/opt/hbase
export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath`
${HADOOP_HOME}/bin/hadoop jar ${HBASE_HOME}/lib/hbase-server-0.98.11-hadoop2.jar completebulkload hdfs://myns1/tmp/csdn_output2 csdn_2

查看导入后表的记录数:

hbase shell
> count 'csdn_2'
=> 6426748

查看导入后,整个表占用的HDFS空间:

hdfs dfs -du -s -h /hbase/data/default/csdn_2
260.6 M  /hbase/data/default/csdn_2

占用260.6 M空间

Gzip表压缩进行Bulkload

创建表(指定gz压缩):

hbase shell
create 'csdn_3', {NAME => 'info', COMPRESSION => 'gz'}

最终结果:

hdfs dfs -du -s -h /data/csdn_3
163.7 M  /hbase/data/default/csdn_3

占用163.7 M空间

原始数据

未压缩原始HDFS上的文件大小:

hdfs dfs -du -s -h /data/csdn
249.4 M  /data/csdn

占用249.4 M空间

测试HBase Snappy压缩可用

hbase org.apache.hadoop.hbase.util.CompressionTest file:///tmp/a.txt snappy
Tags: #HBase    Post on Hadoop