技术实操丨HBase 2.X版本的元数据修复及一种数据迁移方式
摘要:分享一个HBase集群恢复的方法。
背景
在HBase 1.x中,经常会遇到元数据不一致的情况,这个时候使用HBCK的命令,可以快速修复元数据,让集群恢复正常。
另外HBase数据迁移时,大家经常使用到一种迁移方式是:拷贝HBase的数据目录/hbase/data/default到新的集群,然后在新集群执行HBCK的命令让元数据重建,这种拷贝数据目录然后恢复元数据的方式是一种快速直接的手段。
HBase升级到2.X版本之后,hbase hbck中的一些修复命令已经不再支持,包括,所以在HBase遇到集群故障,无法通过HBCK快速把元数据修复,通过HBase数据目录迁移的方式也就使用不了。
在HBase 2.X的客户端执行hbase hbck时,常用的fixMeta命令已经不再支持。
hbck-1无法使用
HBase 2.X版本加强了可靠性,因为使用了 procedure,由于之前的hbck(hbck-1)是会直接去向region server或者hdfs发送请求进行修复,而在HBase 2.0版本上集群内部操作全部都被挪到了procedure v2(下文都称为procedure)上进行处理。
因为所有的命令都是经过master来协调处理,所以在修复时也需要通过master进行修复。否则反而可能导致更严重的不一致问题。所以hbck-1在HBase 2.x版本是不适用的。

HBase2.X版本中元数据的恢复方法
1. 修改配置hbase.assignment.skip.empty.regions=false
如果是普通的hbase:meta系统表中的元数据不正确,在修改完此参数重启HBase后就已经能恢复
当第一步骤完成后还不能修复,就要使用下面的命令了
例如启动后发现,hbase shell能list出数据,但是表无法put或者scan,这时候hbase:meta表里的t1表记录其实是不正确的

2. hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair -fix
这个命令需要停止HBase然后执行。
当表的数据目录存在(/hbase/data/default/<table>),而在hbase:meta表中元数据不正确时,需要HBase停止后,执行这个meta表修复命令,
执行完成后,启动HBase。
启动完成后,查看hbase:meta表的用户表记录,可以看到t1表的元数据都生成了。

3. 此时用户表就恢复了,如果还存在region空洞fixHdfsHoles或者fixHdfsOverlaps问题,可以使用hbck1中的["-fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixReferenceFiles"]
在华为云EI内核团队的hbase2中,已经将这4个命令重新集成进hbck-1中,便于维护。
新集群清理及数据迁移
看完上面的元数据恢复,应该就知道接下来的这种HBase数据迁移方式的原理:通过拷贝数据目录,让HBase元数据与业务数据目录重新建立关系,达到业务正常读写。
下面例子只考虑用户使用default命名空间
1. 拷贝旧集群的HBase数据目录到新集群,将旧集群的/hbase/data/default目录拷贝到了hdfs上的/mydata/目录;
2. 如果新集群数据不需要清理,则跳过此步骤
停止HBase
清除HBase在数据存储目录,hdfs dfs -rm -r /hbase
清除HBase在zk的节点,使用ZK客户端工具zkCli.sh –server <ZK NODE>:2181 进入后执行deleteall /hbase
启动HBase,让目录结构自动生成
3. 保持HBase集群停止状态,拷贝旧机器数据目录到新集群HBase的数据目录中;
hdfs dfs -cp /mydata/default/* /hbase/data/default/
4. 执行hbase修复命令hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair –fix
5. 设置hbase.assignment.skip.empty.regions=false并启动HBase
运行完上述步骤,在新的集群就能对迁移过来的HBase进行业务访问了。
技术实操丨HBase 2.X版本的元数据修复及一种数据迁移方式的更多相关文章
- 动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路
摘要:一文手把手教你利用RC522射频卡模块与IC卡完成充值消费查询的技术实现思路. 本文分享自华为云社区<RC522射频卡模块与IC卡完成充值消费查询的技术实现思路 ...
- Core Data 版本数据迁移
Core Data版本迁移基础 通常,在使用Core Data的iOS App上,不同版本上的数据模型变更引发的数据迁移都是由Core Data来负责完成的.这种数据迁移模式称为Lightweight ...
- Java初学者作业——编写JAVA程序,要求输入技术部门5位员工的理论成绩和实操成绩,计算并输出各位员工的最终评测成绩。
返回本章节 返回作业目录 需求说明: 某软件公司要求对技术部门的所有员工进行技能评测,技术评测分为两个部分:理论部分以及实操部分,最终评测成绩=理论成绩×0.4+实操成绩×0.6,要求输入技术部门5位 ...
- Hadoop Hbase理论及实操
Hbase特点 HBase是一个构建在HDFS上的分布式列存储系统:HBase是基于Google BigTable模型开发的,典型的key/value系统:HBase是Apache Hadoop生态系 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- SBT实操指南
参考资料:1.英文官方文档2.中文官方文档,内容翻译的不全 SBT是类似maven和gradle的自动构建和包依赖管理工具,SBT是Scala技术体系下的包管理工具,都是Lightbend公司开发的, ...
- 第十章 Fisco Bcos 权限控制下的数据上链实操演练
一.目的 前面已经完成fisco bcos 相关底层搭建.sdk使用.控制台.webase中间件平台等系列实战开发, 本次进行最后一个部分,体系化管理区块链底层,建立有序的底层控管制度,实现权限化管理 ...
- 百度NLP预训练模型ERNIE2.0最强实操课程来袭!【附教程】
2019年3月,百度正式发布NLP模型ERNIE,其在中文任务中全面超越BERT一度引发业界广泛关注和探讨.经过短短几个月时间,百度ERNIE再升级,发布持续学习的语义理解框架ERNIE 2.0,及基 ...
- 大数据学习笔记——Linux完整部署篇(实操部分)
Linux环境搭建完整操作流程(包含mysql的安装步骤) 从现在开始,就正式进入到大数据学习的前置工作了,即Linux的学习以及安装,作为运行大数据框架的基础环境,Linux操作系统的重要性自然不言 ...
随机推荐
- yum管理——ningx部署私有repo源(4)
一.前言: 为了加快安装效率,或者日后服务器处于内网环境,本次特写一片搭建的是一个属于个人私有repo源仓库,思路如下: 1.首先到mirrors.ustc.edu.cn下载用到的源的仓库 2.然后安 ...
- day55:django:cookie&session
目录 1.Cookie 1.Cookie前戏 2.Cookie的引入 3.django中操作cookie 2.Session 1.cookie的局限性 2.session技术 3.django操作se ...
- MVC设计模式-笔记1
MVC不仅仅是一个设计模式,它应该说是一种软件开发架构模式,它包含了很多的设计模式,最为密切是以下三种模式: 1.Observer观察者模式 2.Composite组合模式 3.Strategy策略模 ...
- Java基础一篇过(六)Java8--lambda表达式
一.简介 lambda表达式是Java8的一个重要特性,也可以称为闭包,常用于配合Java8的Stream对集合元素进行操作,使得代码更简介紧凑. 二.代码解析 虽说lambda表达式是一个新的特性, ...
- Spring学习(二)Spring IoC 和 DI 简介
一.IOC(控制反转) 定义:反转控制 (Inversion Of Control)的缩写,即创建对象的反转控制. 正向控制:若要使用某个对象,需要自己去负责对象的创建. 反向控制:若要使用某个对象, ...
- win10病毒和威胁防护无法重新启动解决方法
1.检查电脑中是否安装了任何的第三方反病毒软件 (例如 360.腾讯电脑管家等)?如果有的话,麻烦您将其卸载,卸载完毕后重启设备,再看一下病毒和威胁防护能否正常启动:2.按 "Windows ...
- Solon详解(八)- Solon的缓存框架使用和定制
Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 ...
- Centos-归档文件或目录-tar
tar 对文件或者目录进行打包归档成一个文件,不是压缩 相关选项 -c 新建文件 -r 将目标文件追加都档案文件末尾 -t 列出归档文件中已经归档文件列表 -x 从归档文件中还原文件 -u 新文件更新 ...
- 图像分辨率 像素 大小 LCD显示 为OLED屏增加GUI支持
1. 根据一张标准图片的分辨率,结合每个像素的大小,可以计算得到这张图片的大小(字节数) 补充点:bmp格式的图片有24色或者32色.(其一个像素点可能占用24bits或者32bits) 至于图片怎 ...
- 【SCOI2016】背单词
P3294[SCOI2016]背单词 [提示] 这道题大概是告诉我们,让我们用一堆n个单词安排顺序,如果当前位置为x,当前单词的后缀没在这堆单词出现过,代价就为x,这里的后缀是原意,但不算自己(不算本 ...