java hbase创建_HBase基础学习之bulkload了解

2f020207ad423045c278419202a86071.png

之前在学习importTSV我们准备两份数据

37201b904fee204e90486245b56a5508.png

这两份数据在导入hbase后,数据还是存在的,我们如果想要实现和hive中类似“剪切”的功能该怎么办?这种可以跨过先写入memstore,直接将数据转换为storefile文件。

我们来操作

第一步:转换为Hfile

执行语句

/opt/bigdata/hadoop-2.7.3/bin/yarn jar /opt/bigdata/hbase-1.2.1/lib/hbase-server-1.2.1.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,f1:name,f2:age,f3:addr,f1:location -Dimporttsv.bulk.output=/testHfile stu_info_importtsv /importTSVData/stu_info_out

e30e77b81da208ae4358dd30c00660a7.png

会生成一个新的目录

ed78f38aa697bc1a71be8abf0fec3585.png

生成内容

/testHfile

d943c8b93ed2f30e36ca21722c90178a.png

这个时候,在

/hbase/data/default/stu_info_importtsv/1ba134e9102fdfb6a6c34c5785a69692

下我们可以看到f1,f2,f3

cab82fe56bfc622a1e1b9ce6ab88bd00.png

我们接下来只需要将/testHfile/f1下的文件移动到/hbase/data/default/stu_info_importtsv/1ba134e9102fdfb6a6c34c5785a69692/f1就可以了

第二步:将Hfile导入到hbase表中 completebulkload (hdfs上做了移动文件的操作)

d9b8a365e59e789ecf9d7b8d66544f08.png

执行语句

/opt/bigdata/hadoop-2.7.3/bin/yarn jar /opt/bigdata/hbase-1.2.1/lib/hbase-server-1.2.1.jar completebulkload /testHfile stu_info_importtsv

0dbf156f24de4dbd5f508448bd9f3e02.png

速度很快

395bbc406fd497f52b6021c997fcdb2e.png

发现在

/hbase/data/default/stu_info_importtsv/1ba134e9102fdfb6a6c34c5785a69692/f1

已经出现了

f83623be6c51f10d449664d7a2c8604b.png

而在/testHfile/f1已经没有数据了

d08cdd7a22ef0679e9245b4b127e09c4.png

在hbase中看下数据

54c5bd9f6f6aed2fabb478a20358e729.png

我们可以合并这两个文件吗?

39a4d06c91b088d3f0c102e805fb905a.png

可以使用

major_compact 'stu_info_importtsv'

e67b13ef18001c37b4aa93edd8583672.png

查看下,发现已经合并了

ebca70517889c5cdb04eea8c54138c06.png

我们再在网页上查看下

acf20f68bf72c0730ef0a71cd379fd2a.png

我们手动做一下split操作

split 'stu_info_importtsv' ,'202001061344'

cdbd1eb625088e7783c24b0e55ee6bb4.png

发现已经手动切割了,上下限也有了

6e440a0f6fe7f9430ffde0ec2617892b.png

这边也是两个了

4d58c72ffc8534ff86b0b7cc6b772f2d.png

第二步像hive的load加载,IO消耗比较低,减少了client和节点之间的RPC通信

将批量的文件先转换为Hfile,可以批量导入hbase中(底层还是封装好的java程序)

bulkload方式还是可以用代码实现的

创建一个类

284be25da8cf36d095cbf158ae3064e3.png

导入的包

d7c6a2b3efcaecb1814e22837f3d3195.png

编写Map

019863f4d0e62bafa234ba2a2b6eea33.png

Run方法

e3c751ffe9b04a84ba379a7f535fc387.png

编写执行方法

8d335702fac5fe398762e5d07826844f.png

创建表

create 'student','info'

5ef0498aabce49b285d1250755e13a48.png

查看下数据,是否存在

/opt/bigdata/hadoop-2.7.3/bin/hdfs dfs -text /importTSVData/stu_info_out

a07d51eb352ba64675d0dc99db34fc3f.png

运行代码,查看生成的数据

8c6b16ec450bb499e0f2f9c5eb58c20f.png

HDFS上也存在

d98314bae7364640351dfb917c92dad2.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值