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中
[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表的数据导出和导入的更多相关文章
- 浅谈hbase表中数据导出导入(也就是备份)
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=23916356&id=3321832 最近因为生产环境hbase ...
- MYSQL数据导出与导入,secure_file_priv参数设置
https://www.imooc.com/article/41883 MySQL 报错 [Code: 1290, SQL State: HY000] The MySQL server is run ...
- memcached命令行、Memcached数据导出和导入、php连接memcache、php的session存储到memcached
1.memcached命令行 telnet 127.0.0.1 11211set key2 0 30 2abSTOREDget key2VALUE key2 0 2abEND 如: set key3 ...
- MySQL--Workbench表及表种数据导出
MySQL--Workbench表及表种数据导出 1.-->点击Management,--->出现Navigator. 2.点击Date Export,选择导出的库. 3)选择库中的某个表 ...
- memcached命令行、Memcached数据导出和导入
1.memcached命令行 telnet 127.0.0.1 11211set key2 0 30 2abSTOREDget key2VALUE key2 0 2abEND 如: set key3 ...
- MySQL数据导出与导入
工具 mysql mysqldump 应用举例 导出 导出全库备份到本地的目录 mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines -- ...
- mongoDB 数据导出与导入
一.导出 命令格式:在mongodb/bin目录下 mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv ...
- oracle数据库数据导出和导入
oracle的客户端里面的bin下面有两个可执行文件,名称分别为exp.exe和imp.exe. 他俩的用途就是导出和导入数据用的. 全库 导出:exp 用户名/密码@数据库名 full=y file ...
- mysql 开发进阶篇系列 49 表的数据导出(into outfile,mysqldump)
一.概述 在数据库的日常维护中,表的导入和导出是很频繁的操作,本篇讲解如何使用导入功能,并以案例为演示.某些情况下,需要将表里的数据导出为某些符号分割的纯数据文本,而不是sql语句,比如:(1)用来作 ...
随机推荐
- 【NOI2014】魔法森林 - 动态加边SPFA
题目描述 为了得到书法大家的真传,小 E 同学下定决心去拜访住在魔法森林中的隐 士.魔法森林可以被看成一个包含 n 个节点 m 条边的无向图,节点标号为 1,2,3,…,n,边标号为 1,2,3,…, ...
- Git使用之submodule
入职第一周,就因为clone项目而产生了很大的障碍,花了差不多三四个小时才定位问题并解决,记录一下. 一.问题 当我们在使用Git克隆项目的时候,无法克隆下来一个文件夹.记该文件夹为A,A在远程仓库是 ...
- python的一些使用体会
python刚开始接触,因为刚好有点需求,所以写了点小程序,一点点体会. 优点: 1. os.rename()方法不错,c#就没有这个方法 2.字符串的slice操作不错,取substring有时比较 ...
- eric4 打包文件
在.py 工程 所在目录: 按住shift,鼠标右键,在此处打开cmd或shell,然后如下操作 1.打包成文件夹 pyinstaller lrs.py 2.打包成 单文件 pyinstaller - ...
- 操作系统-I/O(4)I/O控制方式
I/O控制的方式分为: 程序直接控制方式(最简单的I/O方式) • 无条件传送:对简单外设定时(同步)进行数据传送 • ...
- Shell编程—图形化脚本
1创建文本菜单 1.1普通的文本菜单 $ cat menu1 #!/bin/bash # simple script menu function diskspace { clear df -k } f ...
- 时间转换c#
简要 本篇文章主要介绍基于.net(c#)封装的时间帮助类.主要功能是将时间戳与DateTime类型相互转换. 1.其中包括将毫秒级时间戳(13位).秒级时间戳(10位)转换为DateTime. 2. ...
- 揭秘!containerd 镜像文件丢失问题,竟是镜像生成惹得祸
导语 作者李志宇,腾讯云后台开发工程师,日常负责集群节点和运行时相关的工作,熟悉 containerd.docker.runc 等运行时组件.近期在为某位客户提供技术支持过程中,遇到了 contain ...
- js区别对象和数组的三种方法
var arr = {}||[]; 区分arr是数组还是对象 1.arr.constructor ...
- Vue.js 实战教程(附demo)
在实战之前,你需要对vuejs的基础语法有一定的了解,可以通过以下几个途径进行学习: vue.js官方文档:https://cn.vuejs.org/v2/guide/index.html vue.j ...