大数据 Docker Hbase 表数据导入/导出

前言

本文软件环境
Hadoop3.3.6
Hbase2.5.10

创建test表并插入数据

hbase shell -n
list
create 'test','dz'
put 'test','rowkey0001','dz:a','0001'
put 'test','rowkey0002','dz:b','0002'
put 'test','rowkey0003','dz:b','0003'
scan 'test'
exit

导出表数据

导出表数据到hdfs目录/tmp/hbase-export

hbase org.apache.hadoop.hbase.mapreduce.Export test hdfs://hadoop-04:8020/tmp/hbase-export/test

提示:可以通过-D hbase.xxx=xx来限定数据范围
-D hbase.mapreduce.scan.column.family=dz 限定列簇,多个以逗号分隔
-D hbase.mapreduce.scan.row.start=rowkey0001 开始RowKey
-D hbase.mapreduce.scan.row.stop=rowkey0003 结束RowKey
上面命令可写为
hbase org.apache.hadoop.hbase.mapreduce.Export -D hbase.mapreduce.scan.column.family=dz -D hbase.mapreduce.scan.row.start=rowkey0001 -D hbase.mapreduce.scan.row.stop=rowkey0003 test hdfs://hadoop-04:8020/tmp/hbase-export/test

用命令查看导出结果

hdfs dfs -ls /tmp/hbase-export/test

如下:

[hadoop@hadoop-04 exp]$ hdfs dfs -ls /tmp/hbase-export/test
Found 2 items
-rw-r--r--   3 hadoop supergroup          0 2024-12-25 13:27 /tmp/hbase-export/test/_SUCCESS
-rw-r--r--   3 hadoop supergroup        279 2024-12-25 13:27 /tmp/hbase-export/test/part-m-00000

导出数据文件到本地

hdfs dfs -copyToLocal -f /tmp/hbase-export/test ~/expData/
ls -lR ~/expData

如下

[hadoop@hadoop-04 expData]$ hdfs dfs -copyToLocal -f /tmp/hbase-export/test ~/expData/
[hadoop@hadoop-04 expData]$ ls -lR ~/expData
/home/hadoop/expData:
total 4
drwxr-xr-x 2 hadoop hadoop 4096 1225 13:54 test

/home/hadoop/expData/test:
total 4
-rw-r--r-- 1 hadoop hadoop 279 1225 13:54 part-m-00000
-rw-r--r-- 1 hadoop hadoop   0 1225 13:54 _SUCCESS

导入表数据

上传数据文件到hdfs导入目录

hdfs dfs -mkdir -p /tmp/hbase-import
hdfs dfs -copyFromLocal -f ~/expData/test /tmp/hbase-import
hdfs dfs -ls /tmp/hbase-import/test

结果如下

[hadoop@hadoop-04 expData]$ hdfs dfs -mkdir -p /tmp/hbase-import
[hadoop@hadoop-04 expData]$ hdfs dfs -copyFromLocal -f ~/expData/test /tmp/hbase-import
[hadoop@hadoop-04 expData]$ hdfs dfs -ls /tmp/hbase-import/test
Found 2 items
-rw-r--r--   2 hadoop supergroup          0 2024-12-25 14:23 /tmp/hbase-import/test/_SUCCESS
-rw-r--r--   2 hadoop supergroup        244 2024-12-25 14:23 /tmp/hbase-import/test/part-m-00000

导入数据到Hbase

创建导入表

hbase shell -n
list
create 'test1','dz'
scan 'test1'
exit

结果如下

hbase:008:0> create 'test1','dz'
Created table test1
Took 8.3095 seconds                                                                                                                            
=> Hbase::Table - test1
hbase:009:0> scan 'test1'
ROW                                  COLUMN+CELL                                                                                               
0 row(s)
Took 0.0540 seconds                                                                                                                            
hbase:010:0> 

执行导入

hbase org.apache.hadoop.hbase.mapreduce.Import test1 hdfs://hadoop-04:8020/tmp/hbase-import/test

查看导入结果

hbase shell -n
scan 'test1'

结果如下

hbase:010:0> scan 'test1'
ROW                                  COLUMN+CELL                                                                                               
 rowkey0001                          column=dz:a, timestamp=2024-12-25T14:11:10.592, value=0001                                                
 rowkey0002                          column=dz:b, timestamp=2024-12-25T14:11:10.758, value=0002                                                
2 row(s)
Took 0.0261 seconds 

从结果可以看出导出中批量开始结束rowkey,是一个左闭右开的集合区间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值