往HBase导入数据的几种操作

HBase作为Hadoop DataBase,除了使用put进行数据导入之外,还有以下几种导入数据的方式:

(1)使用importTsv功能将csv文件导入HBase;

(2)使用import功能,将数据导入HBase;

(3)使用BulkLoad功能将数据导入HBase。

接下来,小编将对这三种方法分别进行介绍~

 

一、使用importTsv功能将csv文件导入HBase

        使用importTsv功能可以将csv格式的文件导入到HBase中,其格式如下:

hbase [类] [分隔符] [行键,列族] [表] [导入文件]

例如:

1、创建f.csv文件,其内容如下:

2、将文件上传至HDFS,并修改相应的读写权限

3、创建HBase表

4、执行上述的MapReduce操作

/etc/init.d/TDH-Client/hyperbase/bin/hbase \
org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," \
-Dimporttsv.columns=HBASE_ROW_KEY,f1 test /user/f.csv

MapReduce执行成功之后会显示下图结果:

5、查看导入HBase中的数据

 

二、使用import功能,将数据导入HBase

        使用import功能进行数据导入,导入的文件必须是sequence文件。与import相对的还有export功能,export功能导出的文件为sequence文件。

例如:

1、首先使用export功能将HBase表中的数据导出,代码如下:

/etc/init.d/TDH-Client/hyperbase/bin/hbase \
org.apache.hadoop.hbase.mapreduce.Export test /user/hbase/output

得到结果如下图所示:

2、创建一个新的HBase表,此处需要注意的是:新表的列族需跟导出表的列族一致

3、执行import的MapReduce

/etc/init.d/TDH-Client/hyperbase/bin/hbase \
org.apache.hadoop.hbase.mapreduce.Import test2 /user/hbase/output

4、查看HBase表中的数据

 

三、使用BulkLoad功能将数据导入HBase

       HBase支持BulkLoad的导入方式,它是利用HBase的数据信息按照特定格式存储在hdfs内这一原理,直接在HDFS中生成持久化的HFile数据格式文件,然后上传至适当位置,即完成巨量数据快速入库的办法。配合MapReduce完成,不占用region资源,在大数据量写入时,能极大的提高写入效率,并降低对HBase节点的写入压力。 
通过使用先生成HFile,然后再BulkLoad到HBase的方式来导入数据有如下的好处: 
1、消除了对HBase集群的插入压力;
2、提高了Job的运行速度,降低了Job的执行时间。

其格式如下:

1、通过importTsv生成HFile文件,此过程会主动创建HBase表和HDFS上对应的目录

hbase [类] [分隔符] [输出存储路径] [行键,列族] [表] [导入原始数据文件]

2、通过completebulkload将数据导入到HBase表

hadoop jar [hbase server jar包] completebulkload [HFile文件路径] [表名]

例如:

1、通过importTsv生成HFile文件

/etc/init.d/TDH-Client/hyperbase/bin/hbase \
org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," \
-Dimporttsv.bulk.output=/user/hbase/hfile_output \
-Dimporttsv.columns=HBASE_ROW_KEY,f1 test4 /user/f.csv

此过程会主动创建HBase表和HDFS上对应的目录

2、将数据导入到HBase表中

hadoop jar \
/etc/init.d/TDH-Client/hyperbase/lib/hbase-server-0.98.6-transwarp-5.1.1.jar \
completebulkload /user/hbase/hfile_output test4

 

你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。

  • 11
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

象在舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值