什么是bulk load
HBase 有好几种方法将数据装载到表。最直接的方式即可以通过MapReduce任务,也可以通过普通客户端API。但是这都不是高效方法。
批量装载特性采用 MapReduce 任务,将表数据输出为HBase的内部数据格式,然后可以将产生的存储文件直接装载到运行的集群中。批量装载比简单使用 HBase API 消耗更少的CPU和网络资源。
使用BULKLoad加载海量数据样例,操作步骤如下
- 第1步:建立student.tsv文件。
-
第2步:编辑student.tsv文件,添加以下内容,并保存。
-
第3步:创建一个目录
-
第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