hbase入门教程之hbase导入导出
1、创建test1表
# hbase shell
hbase(main):004:0> create 'test1', 'cf'
0 row(s) in 1.2450 seconds
=> Hbase::Table - test1
2、查看创建好的表
hbase(main):005:0> list
test1
1 row(s) in 0.0160 seconds
3、往test1表添加数据
hbase(main):006:0> put 'test1','1','cf:name','名字'
0 row(s) in 0.0730 seconds
4、查看数据
hbase(main):008:0> scan "test1"
ROW COLUMN+CELL
1 column=cf:name, timestamp=1513841265980, value=\xE5\x90\x8D\xE5\xAD\x97
1 row(s) in 0.0130 seconds
5、创建另一个空表test2
hbase(main):009:0> create 'test2','cf'
0 row(s) in 1.2280 seconds
=> Hbase::Table - test2
6、导出表test1的数据
先切换hdfs用户
# su hdfs
导出数据
# hbase org.apache.hadoop.hbase.mapreduce.Driver export test1 /test1
这时候会执行mapreduce,导出数据到hdfs文件目录
查看hdfs文件目录,数据也导出来了
# hadoop fs -ls /
Found 4 items
drwxr-xr-x - hbase hbase 0 2017-12-21 14:20 /hbase
drwxr-xr-x - hdfs supergroup 0 2017-12-21 16:46 /test1
drwxrwxrwt - hdfs supergroup 0 2017-12-20 17:42 /tmp
drwxr-xr-x - hdfs supergroup 0 2017-12-21 11:53 /user
如果想导出数据到本地文件系统,有些博客说加前缀 file:///,也就是
# hbase org.apache.hadoop.hbase.mapreduce.Driver export test1 file:///test1
但测试之后,首先是文件目录的权限问题,文件目录权限好了,导出时也报错_temporary/1不存在
7、导入数据到test2
hbase org.apache.hadoop.hbase.mapreduce.Driver import test3 hdfs://192.168.100.60:8022/test1
备注:hdfs的端口为NameNode 服务 RPC 端口dfs.namenode.servicerpc-address