Hbae批量装载(Bulk Loading)

什么是bulk load

HBase 有好几种方法将数据装载到表。最直接的方式即可以通过MapReduce任务,也可以通过普通客户端API。但是这都不是高效方法。
批量装载特性采用 MapReduce 任务,将表数据输出为HBase的内部数据格式,然后可以将产生的存储文件直接装载到运行的集群中。批量装载比简单使用 HBase API 消耗更少的CPU和网络资源。

使用BULKLoad加载海量数据样例,操作步骤如下

  • 第1步:建立student.tsv文件。
  • 第2步:编辑student.tsv文件,添加以下内容,并保存。


  • 第3步:创建一个目录


    image.png
  • 第4步:上传文件


  • 第5步:导入Hfile(1-4都是通过MapReduce 任务准备数据)

export HBASE_HOME=/opt/sofewares/hbase/hbase-0.98.6-hadoop2
export HADOOP_HOME=/opt/cdh5.3.6/hadoop-2.5.0-cdh5.3.6
 HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp` ${HADOOP_HOME}/bin/hadoop jar $HBASE_HOME/lib/hbase-server-0.98.6-hadoop2.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:age,info:sex,info:address,info:phone -Dimporttsv.bulk.output=hdfs://hadoop-senior.beifeng.com:8020/user/beifeng/hbase/hfileoutput student2 hdfs://hadoop-senior.beifeng.com:8020/user/beifeng/hbase/importtsv
  • 第6步:使用BulkLoad命令 completebulkload 完成Hfile数据装载
 HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp` ${HADOOP_HOME}/bin/hadoop jar $HBASE_HOME/lib/hbase-server-0.98.6-hadoop2.jar completebulkload hdfs://hadoop-senior.beifeng.com:8020/user/beifeng/hbase/hfileoutput student2 

推荐阅读更多精彩内容