HBase导出表和备份表操作
HBase提供了几种导出数据的方式,包括使用HBase自带的工具和使用HBase的API。
本文主要是讲的使用HBase自带的工具进行导出
首先我们创建一个表 插入一些数据
hbase shell
list
create 'hbase_check3', 'data'
put 'hbase_check','row1','data:1','value1'
put 'hbase_check','row2','data:2','value2'
scan 'hbase_check'
get 'hbase_check','row1'
list
使用HBase自带的工具
使用该工具的命令如下
hbase org.apache.hadoop.hbase.mapreduce.Export hbase_check /opt/hbase_check
其中,<tablename>是要导出数据的表名,<outputdir>是导出数据的目录(hdfs的)。
走的是mr的逻辑
这样就可以直接get下来了
备份表操作
我们要备份的是hbase_check表
HBase提供了内置的备份功能,可以通过HBase Shell或HBase Java API进行操作。下面是一个使用HBase Shell进行备份的示例:
基于Hbase snapshot数据快速备份方法:
# 备份表数据
disable 'hbase_check'
snapshot 'hbase_check', 'hbase_check1'
enable 'hbase_check'
# 恢复表数据
disable 'hbase_check'
restore_snapshot 'hbase_check1'
enable 'hbase_check'
#查看快照
list_snapshots
基于hbase提供的类对hbase中某张表进行备份
hbase org.apache.hadoop.hbase.mapreduce.Export hbase_check /opt/hbase_check1
创建备份表
create 'hbase_check3', 'data'
将hdfs上的数据导入到备份目标表中
hbase org.apache.hadoop.hbase.mapreduce.Driver import hbase_check3 /opt/hbase_check/*
走的同样是mr
最后我们查看下数据
scan 'hbase_check3'
ps
手动flushflush ‘hbase_check'