HBase BulkLoad批量写入数据实战

本文介绍了HBase的BulkLoad技术,详细阐述了为什么使用BulkLoad方式导入数据以及其实现原理,并通过实战示例展示了如何通过MapReduce生成HFile并批量加载到HBase表中,从而提高数据导入效率和节省资源。
摘要由CSDN通过智能技术生成

目录

一、HBase BulkLoad介绍

1、前言

2、为什么要用bulkload方式导入?

3、bulkload的实现原理

二、HBase BulkLoad批量写入数据实战

1、开发生成HFile文件的代码

2、打成jar包提交到集群中运行

3、观察HDFS上输出的结果

4、加载HFile文件到hbase表中

5、总结


一、HBase BulkLoad介绍

1、前言

在前面的文章中我们介绍了HBASE的存储机制,HBASE存储数据其底层使用的是HDFS来作为存储介质,HBASE的每一张表对应的HDFS目录上的一个文件夹,文件夹名是以HBASE表的名字来命名(如果没有使用命名空间,那么默认是在default目录下)。在表文件夹下存放着若干个region命名的文件夹,而region文件夹中的每个列族也是用文件夹进行存储的,每个列族中存储的就是实际的数据,以HFile的形式存在。路径格式:/hbase/data/default/<tbl_name>/<region_id>/<cf>/<hfile_id>

2、为什么要用bulkload方式导入?

在进行数据传输中,批量加载数据到HBase集群有多种方式,比如通过HBase API进行批量写入数据、使用Sqoop工具批量导数到HBase集群、使用MapReduce批量导入等。这些方式,在导入数据的过程中,如果数据量过大,可能耗时会比较严重或者占用HBase集群资源较多(如磁盘IO、HBase Handler数等)。

3、bulkload的实现原理

按照HBase存储数据按照HFile格式存储在HDFS的原理,使用MapReduce直接生成HFile格式的数据文件,然后再通过RegionServer将HFile数据文件移动到相应的Region上去。

  • HBase数据正常写流程

  • bulkload方式的处理示意图

  • bulkload的好处

    • 导入过程不占用Region资源

    • 能快速导入海量的数据

    • 节省内存

二、HBase BulkLoad批量写入数据实战

需求

通过bulkload的方式,将我们放在HDFS上面的这个路径/hbase/input/user.txt的数据文件,转换成HFile格式,然后load到myuser2这张Hbase表里面去。

1、开发生成HFile文件的代码

自定义map类

package xsluo.hbase;

import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值