HBase基础学习之bulkload了解

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

HBase基础学习之bulkload了解

这两份数据在导入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

HBase基础学习之bulkload了解

会生成一个新的目录

HBase基础学习之bulkload了解

生成内容

/testHfile

HBase基础学习之bulkload了解

这个时候,在

/hbase/data/default/stu_info_importtsv/1ba134e9102fdfb6a6c34c5785a69692

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

HBase基础学习之bulkload了解

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

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

HBase基础学习之bulkload了解

执行语句

/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

HBase基础学习之bulkload了解

速度很快

HBase基础学习之bulkload了解

发现在

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

已经出现了

HBase基础学习之bulkload了解

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

HBase基础学习之bulkload了解

在hbase中看下数据

HBase基础学习之bulkload了解

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

HBase基础学习之bulkload了解

可以使用

major_compact 'stu_info_importtsv'

HBase基础学习之bulkload了解

查看下,发现已经合并了

HBase基础学习之bulkload了解

我们再在网页上查看下

HBase基础学习之bulkload了解

我们手动做一下split操作

split 'stu_info_importtsv' ,'202001061344'

HBase基础学习之bulkload了解

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

HBase基础学习之bulkload了解

这边也是两个了

HBase基础学习之bulkload了解

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

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

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

创建一个类

HBase基础学习之bulkload了解

导入的包

HBase基础学习之bulkload了解

编写Map

HBase基础学习之bulkload了解

Run方法

HBase基础学习之bulkload了解

编写执行方法

HBase基础学习之bulkload了解

创建表

create 'student','info'

HBase基础学习之bulkload了解

查看下数据,是否存在

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

HBase基础学习之bulkload了解

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

HBase基础学习之bulkload了解

HDFS上也存在

HBase基础学习之bulkload了解


分享到:


相關文章: