Hbase表迁移-元数据逆向恢复

Hbase迁移方法较多,本次使用的是逆向恢复,即直接将hbaes数据目录get到本地,并put到新集群的hdfs目录下,并进行元数据恢复,简单粗暴,以下为详细步骤

  1. 在源集群上将hbase表整个目录get到本地磁盘
hdfs dfs -get /apps/hbase/data/data/namespace/tablename 
或者hadoop fs -copyToLocal  /apps/hbase/data/data/namespace/tablename 
  1. 将本地磁盘当前目录下的数据put到目标hbase集群的hdfs目录下
hdfs dfs -put ./tablename  /apps/hbase/data/data/namespace
或者hadoop fs -copyFromLocal ./tablename  /apps/hbase/data/data/namespace

在这里插入图片描述
要注意权限 put上去权限会修改为hdfs:hdfs 需要修改hbase:hdfs
在这里插入图片描述
切换hbase用户 查看表 并无数据
在这里插入图片描述
3. 通过hbase自带的修复命令做逆向恢复

hbase hbck -fixMeta -ignorePreCheckPermission namespace:tablename
hbase hbck -fix -ignorePreCheckPermission namespace:tablename

修复时执行第一个命令后,可以在hbase上看到这张表,但没有数据,无法查看,且状态为INCONSISTENT,如下

在这里插入图片描述
执行第二个命令后,表状态显示为OK,hbase中也有数据 则迁移成功,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

补充一点
hdfs copytolocal 和 get的区别
它们的区别在于copyToLocal的源路径只能是一个本地的文件。而put的源路径可能是多个文件,也可能是标准输入。
当hadoop fs -put - hdfs://host:port/hadoop/hadoopfile时表示从标准输入接收数据,这个时候目标路径必须是一个文件
简单的说,-put更宽松,可以把本地或者HDFS上的文件拷贝到HDFS中;而-copyFromLocal则更严格限制只能拷贝本地文件到HDFS中。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值