码迷,mamicode.com
首页 > 其他好文 > 详细

HBase表的数据导出和导入

时间:2018-07-21 18:03:07      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:数据文件   没有   数据   ble   timestamp   time   second   column   value   

1. 表数据导出

hbase org.apache.hadoop.hbase.mapreduce.Export test file:///home/hadoop/test (导入到本地)

hbase org.apache.hadoop.hbase.mapreduce.Export test /user/hadoop/test (导入到hdfs上)

#创建一个test表,一个列簇info
hbase(main):004:0* create ‘test‘,‘info‘
0 row(s) in 4.3820 seconds

=> Hbase::Table - test
hbase(main):005:0> put ‘test‘,‘001‘,‘info:name‘,‘tom‘
0 row(s) in 0.4710 seconds

hbase(main):006:0> put ‘test‘,‘001‘,‘info:age‘,‘18‘
0 row(s) in 0.0490 seconds

hbase(main):007:0> put ‘test‘,‘002‘,‘info:name‘,‘jerry‘
0 row(s) in 0.0490 seconds

hbase(main):008:0> put ‘test‘,‘002‘,‘info:age‘,‘19‘
0 row(s) in 0.0350 seconds

我们将test表导入到hdfs中

[hadoop@SHQZ-PS-IOT-TEST-APP01 ~]$ hbase org.apache.hadoop.hbase.mapreduce.Export  test  /user/hadoop/test

该命令会启动一个mapreduce程序来完成数据的导出,等待程序执行完成,查看导出后的文件

[hadoop@SHQZ-PS-IOT-TEST-APP01 ~]$ hdfs dfs -ls /user/hadoop/test
Found 2 items
-rw-r--r--   3 hadoop supergroup          0 2018-05-17 21:33 /user/hadoop/test/_SUCCESS
-rw-r--r--   3 hadoop supergroup        284 2018-05-17 21:33 /user/hadoop/test/part-m-00000
[hadoop@SHQZ-PS-IOT-TEST-APP01 ~]$ 

注意:上面以part-m开头的文件就是导出的数据文件,我们可以看下它的内容

[hadoop@SHQZ-PS-IOT-TEST-APP01 ~]$ hdfs dfs -cat /user/hadoop/test/part-m-00000
SEQ1org.apache.hadoop.hbase.io.ImmutableBytesWritable%org.apache.hadoop.hbase.client.ResultP
l7D~UL001D

001infoage 218

001infoname 2tom (N002F

002infoage 219
!
002infoname 2jerry (

2. 导入数据

导入数据前,一定要在hbase上创建同名表,否则会报错,找不到表

hbase org.apache.hadoop.hbase.mapreduce.Import test file:///home/hadoop/test (从本地导入)

hbase org.apache.hadoop.hbase.mapreduce.Import test /user/hadoop/test (从hdfs上导入)

# 先删除之前的test表,然后重新创建
hbase(main):004:0> disable ‘test‘
0 row(s) in 2.2780 seconds

hbase(main):006:0> drop ‘test‘
0 row(s) in 1.3260 seconds

#重新创建test表
hbase(main):016:0* create ‘test‘,‘info‘
0 row(s) in 1.2400 seconds

=> Hbase::Table - test

执行命令导入数据,导入目录一定要是数据文件所在目录

[hadoop@SHQZ-PS-IOT-TEST-APP01 ~]$ hbase org.apache.hadoop.hbase.mapreduce.Import  test  /user/hadoop/test

和导出命令类似,该命令同样会启动一个mapreduce任务来完成数据的导入,之后我们进入hbase shell查看数据是否导入了

hbase(main):020:0* scan ‘test‘
ROW                                 COLUMN+CELL                                                                                         
 001                                column=info:age, timestamp=1526563694645, value=18                                                  
 001                                column=info:name, timestamp=1526563629119, value=tom                                                
 002                                column=info:age, timestamp=1526563723288, value=19                                                  
 002                                column=info:name, timestamp=1526563706773, value=jerry                                              
2 row(s) in 0.1570 seconds

可以看到,数据已经成功导入。

另外,我在将数据导出到本地,然后再导入到hbase中时,两个mapreduce任务执行均出现了报错,但是数据导出和导出成功了,而且数据没有丢失,尚未搞清楚,待摸索中~~

HBase表的数据导出和导入

标签:数据文件   没有   数据   ble   timestamp   time   second   column   value   

原文地址:https://www.cnblogs.com/concurrencyy/p/9347354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!