HBase表的数据导出和导入

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中

[[email protected] ~]$ hbase org.apache.hadoop.hbase.mapreduce.Export  test  /user/hadoop/test

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

[[email protected] ~]$ 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
[[email protected] ~]$ 

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

[[email protected] ~]$ 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

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

[[email protected] ~]$ 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任务执行均出现了报错,但是数据导出和导出成功了,而且数据没有丢失,尚未搞清楚,待摸索中~~

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

时间: 2024-12-24 18:12:26

HBase表的数据导出和导入的相关文章

MYSQL数据导出与导入,secure_file_priv参数设置

https://www.imooc.com/article/41883 MySQL 报错 [Code: 1290, SQL State: HY000]  The MySQL server is running with the –secure-file-priv option so it cannot execute this statement 通过show variables like ‘%secure_file_priv%’; secure_file_priv参数说明 这个参数用来限制数据

21.5 memcached命令行;21.6 memcached数据导出和导入;21.7 php连接

21.5 memcached命令行 Memcached语法规则: 1. <command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n 注:\r\n在windows下是Enter键 2. <command name> 可以是set, add, replace 3. set表示按照相应的<key>存储该数据,没有的时候增加,有的时候覆盖 4.

memcached命令行以及数据导出和导入、 php连接memcached以及储到sessions

memcached命令行 进入到memcached中,如果没有可以yum安装telnet 127.0.0.1 11211Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.set key2 0 30 2set:是用来储存数据的key:这里面key2是key的名字,因为memcached是属于key- valux,存数据要有一个key,也要有一个valux.2:这里面的2是你要存到数值是两位的,或者是两个字节.比如我

HBase表数据导出和导入

本文不是技术收集贴,就是记录一下,因此没有收集所有的HBase表导入导出方式,只是记录一下自己用过的一种. 数据表的导出: 1 $ bin/hbase org.apache.hadoop.hbase.mapreduce.Driver export <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]] 需要注意的是,outputdir指的是HDFS上的路径,建议使用绝对路径(没

MongoDB数据导出、导入及索引建立

(1)    数据导出--每个表一个文件: # mongoexport --db project --collection 表名 --out 输出文件名,如: # mongoexport --db project --collectionstock --out stock.json,导出所有F10数据到文件/root/stock.json中 (2)    数据导入--每个表一个文件: # mongoimport --db users --collection 表名 --file输入文件名 (3)

MySQL数据导出与导入

发一篇基础的,关于MySQL数据导出导入的文章,目的有二: 1.备忘 2.供开发人员测试 工具 mysql/source 导入mysqldump 导出 应用举例 导出 导出全库备份到本地的目录 mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --lock-all-tables --add-drop-database -A > db.all.sql 导出指定库到本地的目录(

oracle数据库数据导出和导入

oracle的客户端里面的bin下面有两个可执行文件,名称分别为exp.exe和imp.exe. 他俩的用途就是导出和导入数据用的. 全库 导出:exp 用户名/密码@数据库名 full=y file=c:xxxx.dmp owner=数据库用户 导入:imp 用户名/密码@数据库名 full=y file=c:xxxx.dmp owner=数据库用户 单表 导出:exp 用户名/密码@数据库名 grants=y tables=table_name file=c:xxx.dmp owner=数据

oracle简单数据导出,导入

oracle数据备份/恢复(exp/imp) 通过exp 可以备份用户数据 例如: exp user/passwd file=/tmp/date_bak.dmp 通过imp 可以恢复备份的用户数据 例如: imp user/passwd file=/tmp/date_bak.dmp 在导出.导入时可以加一些参数 full=y ignore=y table=table_a 或者 tables=(a,b)完全导出,忽略主键,仅仅备份某些表====详情参考官房文档使用 原文地址:https://blo

Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)

Elasticseach目前作为查询搜索平台,的确非常实用方便.我们今天在这里要讨论的是如何做数据备份和type删除.我的ES的版本是2.4.1. ES的备份,可不像MySQL的mysqldump这么方便,需要一个插件进行数据的导出和导入进行备份和恢复操作.这里要说的插件是elasticdump. elasticdump的安装: [[email protected] ~]# yum install elasticdump 已加载插件:fastestmirror, product-id, subs