BulkLoad加载本地文件到HBase表

Posted alexzhang92

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BulkLoad加载本地文件到HBase表相关的知识,希望对你有一定的参考价值。

BulkLoad加载文件到HBase表

1、功能

将本地数据导入到HBase中

2、原理

BulkLoad会将tsv/csv格式的文件编程hfile文件,然后再进行数据的导入,这样可以避免大量数据导入时造成的集群写入压力过大。

1、tsv格式的文件:字段之间以制表符\t分割
2、csv格式的文件:字段之间以逗号,分割

3、作用

  1. 减小HBase集群插入数据的压力
  2. 提高了Job运行的速度,降低了Job执行时间

4、案例

Step1、配置临时环境变量

$ export HBASE_HOME=/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/
$ export HADOOP_HOME=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6
$ export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp`

Step2、创建一个新的HBase表

$ bin/hbase shell

hbase(main):001:0> create ‘fruit_bulkload‘,‘info‘

Step3、将tsv/csv文件转化为HFile (别忘了要确保你的fruit格式的文件fruit.tsv在input目录下)

$ /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/bin/yarn jar 
/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/lib/hbase-server-0.98.6-cdh5.3.6.jar importtsv 
-Dimporttsv.bulk.output=/output_file 
-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:color  
fruit hdfs://hadoop-senior01.itguigu.com:8020/input_fruit

Step4、把HFile导入到HBase表fruit_bulkload

上一步完成之后,你会发现在HDFS的根目录下出现了一个output_file文件夹,里面存放的就是HFile文件,紧接着:把HFile导入到HBase表fruit_bulkload

$ /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/bin/yarn jar 
/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/lib/hbase-server-0.98.6-cdh5.3.6.jar 
completebulkload /output_file fruit_bulkload

Step5、查看使用bulkLoad方式导入的数据

hbase(main):001:0> scan ‘fruit_bulkload’

  

以上是关于BulkLoad加载本地文件到HBase表的主要内容,如果未能解决你的问题,请参考以下文章

spark将数据加载到hbase--bulkload方式

spark将数据加载到hbase--bulkload方式

spark将数据加载到hbase--bulkload方式

[How to] HBase的bulkload使用方法

Hbase的bulkload代码

通过Spark生成HFile,并以BulkLoad方式将数据导入到HBase