一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)
1. 问题起因
通过snapshot做跨集群数据同步时,在执行拷贝脚本里没有指定所有者及所有组,导致clone时没有权限,客户端卡死。master一直报错,经过一系列操作后,导致RIT异常。
2. 异常记录
- 不指定所有者,默认权限是hdfs:hbase,会导致异常

- 执行clone_snapshot <snapshot_name>,<table_name>时,master异常信息

- 经过一系列操作后(重启、删除hdfs相关目录)出现了RIT:


3. 解决过程
因之前使用hbase1.2.6版本可以通过hbck做修复,但habse2.0之后,大多hbck命令已经无法使用

- 于是尝试其他操作:
(1)通过删除hdfs相关目录及zk下hbase目录等操作无效
(2)删除hbase:meta表中相关表记录无效
(3)删除zk下hbase目录,重启无效
4. 最终通过hbck2解决
由于HBCK2已经被剥离出HBase成为了一个单独的项目,如果你想要使用这个工具,需要根据自己HBase的版本,编译源码。
GitHub地址为:https://github.com/apache/hbase-operator-tools.git
(1)下载后在项目根目录下编译:mvn clean install -DskipTests(普通方式编译会报错)
现在使用的版本是hbase2.1.0版本,不支持编译hbck2,所以使用的默认hbase2.1.6编译完成,在hase-hbck2的target目录下可以找到我们最后需要的jar


- 使用方法:
hbase hbck -j ./hbase-hbck2-1.1.0-SNAPSHOT.jar <命令>
(2)使用assigns方法解决 RIT
hbase hbck -j ./hbase-hbck2-1.1.0-SNAPSHOT.jar unassigns <regionname>
将一个或多个region unassign,返回值是创建的pid则为成功,-1则为失败。
在hbase页面找到rit相关的regionname

- 执行命令,如图返回进程号为1819

- master日志:

- 可以看到rit数减少了一个

- 重复以上操作,rit解决!
(3)在hbase界面上找到Procedure相关进程id释放
hbase hbck -j ./hbase-hbck2-1.1.0-SNAPSHOT.jar bypass <Procedure id>
当rit显示后,hbase依然不正常,hbaseshell无法操作,使用hbase hbck检查显示 Master is initializing

- 执行后返回true代表成功,页面会显示RUNNABLE(Bypass)


- 可以看到当前procedure还有很多子进程

- 经过大约一小时之后,进程才结束

- 此时页面也显示完成

- 随后消失

- 此时,检查hbase,hbase hbck,显示OK,解决过程到此结束!

一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)的更多相关文章
- hadoop2.2.0 + hbase 0.94 + hive 0.12 配置记录
一开始用hadoop2.2.0 + hbase 0.96 + hive 0.12 ,基本全部都配好了.只有在hive中查询hbase的表出错.以直报如下错误: java.io.IOException: ...
- File /hbase/.tmp/hbase.version could only be replicated to 0 nodes instead of minReplication (=1).
File /hbase/.tmp/hbase.version could only be replicated to 0 nodes instead of minReplication (=1). 这 ...
- org/apache/hadoop/hbase/mapreduce/TableReducer:Unsupported major.minor version52.0
问题详情: 问题原因: <dependency> <groupId>org.apache.hbase</groupId> <artifactId& ...
- 【hbase】hbase-2.2.1配置独立的zookeeper的安装与测试
下载hbase-2.2.1-bin.tar.gz并执行安装命令: [hadoop@hadoop01 ~]$ tar -zxvf hbase--bin.tar.gz 查看安装目录: [hadoop@ha ...
- 相同版本的CDH集群间迁移hdfs以及hbase
前言 由于项目数据安全的需要,这段时间看了下hadoop的distcp的命令使用,不断的纠结的问度娘,度娘告诉我的结果也让我很纠结,都是抄来抄去, 还好在牺牲大量的时间的基础上还终于搞出来了,顺便写这 ...
- Hbase RIT故障修复
业务场景: RocketMQ+Storm+Hbase 组件版本: RocketMQ:3.4.6 Storm:1.2.1 Hbase:1.2.1 1. 问题描述 4月15号早上发现业务系统前一天数据量明 ...
- 基于:Hadoop 2.6.0-cdh5.4.0 hive1.1.0 HBase 1.0.0-cdh5.4.0 关键配置文件
core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value ...
- .Net Core 1.0升级2.0(xproj项目迁移到.csproj )
vs2015的创建的项目是以*.xproj的项目文件,迁移到vs2017需要如下准备: 1.安装好vs2017(废话) 2.下载最新的SDK和 .NET Core 2.0 Preview 1 Runt ...
- 安装配置和使用HBASE Cluster(基于发行版CDH5.0.2)——系列随笔
本系列文章只是记录了笔者本人在学习实验安装和使用基于CDH5.0.2的HBASE集群过程中的一些经验教训和心得,绝不是详细的安装过程,因本人不过一初学者,很多方面不甚了了,如果能让不幸读到的人有所得则 ...
随机推荐
- 开始学习Django,配置静态登录页面
开始学习Django,配置静态登录页面 准备阶段 众所周知,Django是一个重量级的设备齐全的web开发框架.在学习Django前我们需要具备如下的知识点: python基础编程 并发 网络编程 H ...
- RMAN迁移数据库(不改变文件目录)
1.目标库创建相应目录mkdir -p /u01/app/oracle/oradata/orclmkdir -p /u01/app/oracle/fast_recovery_area/ORCLmkdi ...
- SpringBoot整合RabbitMQ实践教程
1. MQ MQ(Message Queue),消息队列,是生产者和消费者模型中传递信息的容器,主要用于线程或进程之间通信. MQ主要的应用场景为:应用解耦.异步处理,流量削锋,日志处理等. ...
- Java——排序算法
java排序从大的分类来看,可以分为内排序和外排序:其中,在排序过程中只使用了内存的排序称为内排序:内存和外存结合使用的排序成为外排序. 下面讲的都是内排序. 内排序在细分可以这样分: 1.选择排序: ...
- Spring Data JPA的基本学习之了解
Spring Data JPA 是 什 么 可以理解为JPA规范的再次封装抽象,底层还是使用了Hibernate的JPA技术实现,引用JPQL(Java Persistence Query Langu ...
- mysqldump 导出命令
在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefo ...
- matlab双坐标轴设定
clc; clear all; close all; x1 = 0:.1:40; y1 = 4 * cos(x1)./(x1 + 2); x2 = 1:.2:20; y2 = x2.^2 ./ x2. ...
- 痞子衡嵌入式:MCUXpresso IDE下SDK工程导入与workspace管理机制
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下SDK工程导入与workspace管理机制. MCUXpresso IDE是恩智浦软件团队倾注很大心血研发 ...
- 关于ajax已经成功了,却报404的错误的问题
经分析是请求没有返回状态码,这是因为我用的是SpringMVC框架,前后端使用JSON传递数据,因为返回的是对象,而忘记了添加 @ResponseBody 注解,所以 Spring对我的返回值进行了映 ...
- JVM 完整深入解析
工作之余,想总结一下JVM相关知识.以下内容都是针对于jdk1.7的. Java运行时数据区: Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途 ...