Hbase 导入CSV文件的两种方法

目前已不了解Hadoop相关知识,如有问题,请查找其他博客解决。

要求

把格式如下的数据导入到Hbase表中

过程

一、利用ImportTsv将CSV文件导入

1.先创建一个表(hbase-csv1),且列族为info

[hadoop@MASTER ~]$ hbase shell
hbase(main):002:0> create 'hbase-csv1','info'

2.把文件上传至HDFS

#要上传的文件
[hadoop@MASTER ~]$ ls -l small_user_hbase.csv 
-rw-r--r-- 1 hadoop hadoop 12542830 Dec  3  2018 small_user_hbase.csv
#上传
[hadoop@MASTER ~]$ hadoop fs -put small_user_hbase.csv /

3.把small_user_hbase.csv导入hbase的hbase-csv1表中

格式:hbase [类] [分隔符] [行键,列族] [表] [导入文件]
[hadoop@MASTER ~]$ hbase  org.apache.hadoop.hbase.mapreduce.ImportTsv  -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,info:user_id,info:item_id,info:behavior_type,info:behavior_type,info:time hbase-csv1 /small_user_hbase.csv

info是列族,后边的user_id,item_id...是small_user_hbase.csv中的头部信息,导入后就是info列族中的列

4.查看是否导入

hbase(main):002:0> scan 'hbase-csv1'
ROW                                    COLUMN+CELL                                                                                                  
 10001082                              column=info:behavior_type, timestamp=1543569641473, value=2014-12-14 16                                      
 10001082                              column=info:item_id, timestamp=1543569641473, value=1                                                        
 10001082                              column=info:user_id, timestamp=1543569641473, value=85851739                                                 
 100029775                             column=info:behavior_type, timestamp=1543569641473, value=2014-12-09 18                                      
 100029775                             column=info:item_id, timestamp=1543569641473, value=1                                                        
 100029775                             column=info:user_id, timestamp=1543569641473, value=70394849                                                 
 100068031                             column=info:behavior_type, timestamp=1543569641473, value=2014-12-11 09                                      
 100068031                             column=info:item_id, timestamp=1543569641473, value=1                                                        
 100068031                             column=info:user_id, timestamp=1543569641473, value=315643365                                                
 100076491                             column=info:behavior_type, timestamp=1543569641473, value=2014-12-09 08                                      
 100076491                             column=info:item_id, timestamp=1543569641473, value=1                                                        
 100076491                             column=info:user_id, timestamp=1543569641473, value=75205807                  

导入成功!

5.导出CSV文件

[hadoop@MASTER ~]$ hbase org.apache.hadoop.hbase.mapreduce.Export hbase-csv1 /test1

6.查看

[hadoop@MASTER ~]$ hadoop fs -cat /test1/part-m-00000

导出成功!

二、利用Import将CSV文件导入

1.将hbase-csv1表信息导出至HDFS

[hadoop@MASTER ~]$ hbase org.apache.hadoop.hbase.mapreduce.Export hbase-csv1 /test2

2.创建新表

[hadoop@MASTER ~]$ hbase shell
hbase(main):002:0> create 'hbase-csv2','info'

3.导入Hbase

[hadoop@MASTER ~]$ hbase org.apache.hadoop.hbase.mapreduce.Import hbase-csv2 /test2

4.查看

[hadoop@MASTER ~]$ hbase shell
hbase(main):002:0> scan 'hbase-csv2'
101570788          column=info:user_id, timestamp=1543569641473, value=
                    314675107                                           
 101575870          column=info:behavior_type, timestamp=1543569641473, 
                    value=2014-12-13 19                                 
 101575870          column=info:item_id, timestamp=1543569641473, value=
                    1                                                   
 101575870          column=info:user_id, timestamp=1543569641473, value=
                    401863214                                           
 101612200          column=info:behavior_type, timestamp=1543569641473, 
                    value=2014-11-25 09                                 
 101612200          column=info:item_id, timestamp=1543569641473, value=
                    1                                                   

导入成功!

参考

[1]HBase数据导入的几种操作_李国冬的博客-CSDN博客_hbase导入数据

[2]Hbase表两种数据备份方法-导入和导出示例_Data_IT_Farmer的博客-CSDN博客_hbase 备份

[3]hbase_数据备份(导入/导出)_qq_41665356的博客-CSDN博客_hbase数据导出

[4]HBase 常用Shell命令 - 五三中 - 博客园

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

real向往

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

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

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

打赏作者

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

抵扣说明:

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

余额充值