BulkLoad加载本地文件到HBase表
BulkLoad加载文件到HBase表
1、功能
将本地数据导入到HBase中
2、原理
BulkLoad会将tsv/csv格式的文件编程hfile文件,然后再进行数据的导入,这样可以避免大量数据导入时造成的集群写入压力过大。
1、tsv格式的文件:字段之间以制表符\t分割 2、csv格式的文件:字段之间以逗号,分割
3、作用
- 减小HBase集群插入数据的压力
- 提高了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’