业务场景:

RocketMQ+Storm+Hbase

组件版本:

RocketMQ:3.4.6

Storm:1.2.1

Hbase:1.2.1

1. 问题描述

4月15号早上发现业务系统前一天数据量明显偏低,查看系统发现storm入Hbase的TPS很低,甚至为0。

2. 问题定位

通过查看Hbase和Storm监控页面,发现dscn18节点不在服务中,远程连接比较卡顿,去机房查看没有报警,通过终端查看HRegionServer和Supervisor进程都在,15号上午11点多查看系统日志:/var/log/message:

系统日志:

重启后,日志变为正常

综上判断可能是因为网络通信原因导致dscn18节点异常。

Hbase日志:显示dscn18,region已下线

Storm日志:显示连接超时

Hbase监控页面:RIT问题

综上,可判断,由于dscn18节点连接异常,导致当前节点Hbase和Storm的服务异常,另外Hbase出现RIT,会影响Hbase的写入。

3. 解决过程

当时尝试重启拓扑,但写入TPS很低,后来将dscn18的Regionserver下线,效果仍不理想,最后决定做Hbase在线修复(dscn18已下线):

当时Hbase状态:

步骤:

1. hbase hbck 检查输出所以ERROR信息,每个ERROR都会说明错误信息。

2. hbase hbck -fixTableOrphans 先修复tableinfo缺失问题,根据内存cache或者hdfs table 目录结构,重新生成tableinfo文件。

3. hbase hbck -fixHdfsOrphans 修复regioninfo缺失问题,根据region目录下的hfile重新生成regioninfo文件。

4. hbase hbck -fixHdfsOverlaps 修复region重叠问题,merge重叠的region为一个region目录,并从新生成一个regioninfo。

5. hbase hbck -fixHdfsHoles 修复region缺失,利用缺失的rowkey范围边界,生成新的region目录以及regioninfo填补这个空洞。

6. hbase hbck -fixMeta 修复meta表信息,利用regioninfo信息,重新生成对应meta row填写到meta表中,并为其填写默认的分配regionserver。

7. hbase hbck -fixAssignments 把这些offline的region触发上线,当region开始重新open 上线的时候,会被重新分配到真实的RegionServer上 , 并更新meta表上对应的行信息。

另外,当执行完所有修复步骤后仍然有:

ERROR: Empty REGIONINFO_QUALIFIER found in hbase:meta

执行:

hbase hbck -fixEmptyMetaCells

当时修复了近三个小时,修复完成后,重启了Hbase,RIT异常解决了,再次检查出现了新的问题:

1、元数据缺失

2、region重叠

再利用之前的修复命令无法修复。通过协商得到解决办法:

针对1:

通过执行hbase hbck -fixEmptyMetaCells

修复 ERROR: Empty REGIONINFO_QUALIFIER found in hbase:meta

针对2:

delete 'hbase:meta','DBN_YTO,601889669485241086,1536145292692.f47aaa41740bf9d99b1cc19b3de29d9b.','info:regioninfo'

delete 'hbase:meta','DBN_YTO,601889669485241086,1546409804387.7795e5726f6f9e018cfa2fe93b20556d.','info:regioninfo'

hdfs dfs -rm -r /hbase/data/default/DBN_YTO/f47aaa41740bf9d99b1cc19b3de29d9b

hdfs dfs -rm -r /hbase/data/default/DBN_YTO/7795e5726f6f9e018cfa2fe93b20556d

最后执行:

hbase hbck -fixAssignments -fixMeta -fixHdfsHoles

Hbase状态为正常,到此Hbase修复完毕!

之后重启合并Storm,个别端口连接被占用,重启Storm后检查无僵尸进程,最终将worker数由400改为340(17个Storm节点),任务启动成功,总TPS达到8万左右,到此问题解决完毕。

4. 总结

Hbase在线修复之前首先保证停掉相关业务,并且确保所有region都在线,否则修复可能会产生重复region,另外确保hbase根目录下文件没有损坏丢失,如果有,先移除掉,再修复。

移除命令:

hdfs fsck -delete

/hbase/back/SJYB_FEDEX/fedex_back/e90da00b658869d9e8ec90b871637adc/if/5612ded9b14341e19160bdc7238bf4da

 

Hbase RIT故障修复的更多相关文章

  1. 【转】hbase meta表修复

    [From]https://www.iteye.com/blog/blackproof-2052898 meta表修复一 查看hbasemeta情况 hbase hbck .重新修复hbase met ...

  2. 模拟MBR Grub故障修复

    1.  MBR故障修复 备份 mkdir /pp mount /dev/sdb1 /pp dd if=/dev/sda of=/pp/mrb.bak bs=512 count=1   破坏mrb dd ...

  3. CentOS7.3系统启动故障修复

    CentOS7.3系统启动故障修复 破解CentOS7的root口令方法一 启动时任意键暂停启动菜单,选择启动内核菜单项 按 e 键进入编辑模式 将光标移动 linux16 开始的行,添加内核参数rd ...

  4. MBR扇区故障修复!

    一:进行分区且格式化硬盘 [root@roomc~]#mkfs -t ext4 /dev/sdb1    //格式化sdb1盘 二:模拟破坏/sda主硬盘破坏再修复! [root@roomc~]#mk ...

  5. CentOS 6或7 启动故障修复及root密码破解

    CentOS 6或7 启动故障修复及root密码破解 目录 CentOS 6或7 启动故障修复及root密码破解 CentOS 6启动流程修复: 实验一:删除initramfs-2.6.32-754. ...

  6. 一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

    1. 问题起因 通过snapshot做跨集群数据同步时,在执行拷贝脚本里没有指定所有者及所有组,导致clone时没有权限,客户端卡死.master一直报错,经过一系列操作后,导致RIT异常. 2. 异 ...

  7. hbase meta表修复

    meta表修复一 查看hbasemeta情况hbase hbck1.重新修复hbase meta表(根据hdfs上的regioninfo文件,生成meta表)hbase hbck -fixMeta2. ...

  8. CM记录-CDH故障修复处理记录

    CDH大数据集群修复记录 1)cm web打不开,查看监听7180端口产生了很多进程,于是kill进程:重启cloudera-cmf-server服务,几秒钟就挂了,查看cloudera-scm-se ...

  9. web-project 故障修复功能 传递所有的event_id数据到后台

    <script language=javascript> function IdentifyRepair(event_id) { var url; url = "/View/fa ...

随机推荐

  1. 【WHash】更有空间感的感知哈希

    转载请注明出处 背景 在重复图识别领域,对于识别肉眼相同图片,感知哈希效果是很鲁棒的.上一篇文章 [PHash]更懂人眼的感知哈希 介绍的PHash识别效果很好,但是它有一个缺点,只关注低频信息,并没 ...

  2. 零基础学习python 你该怎么做

    本人文科生,回顾自己近 2 年的Python 自学经历,有一些学习心得和避坑经验分享给大家,让大家在学习 Python 的过程中少走一些弯路!减少遇到不必要的学习困难! 首先,最开始最大的困难应该就是 ...

  3. Python+Selenium基本语法

    对Selenium自动化已有了解,最近开始做h5端的自动化,所以总结了下Python+Selenium自动化基本语法 一.启动浏览器 1.普通方式启动 #coding=utf-8 import tim ...

  4. SecureCRT无法退格删除

    SecureCRT无法退格删除 securecrt无法退格删除问题解决: 如果想要全部会话都可以实现退格删除的功能,需要在全局选项设置. 最后选择全局应用即可.

  5. idea的下载与安装

    1.下载idea.到idea的官网选择你需要下载的,你最喜欢的版本https://www.jetbrains.com/idea/download/ 2.下载jdk.进入Oracle官网,鼠标指在Dow ...

  6. c++日常小问题

    语法解析问题. 当给一个变量构造函数传递一个临时变量,而不是命名的变量,c++编译器会将其解析为函数声明,而不是类型对象的定义. class hello { void operator()() { s ...

  7. 移动端SCSS

    一.什么是SASS SASS是一种强化CSS的辅助工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单可维护. #二.安装和使用(VS Code中) #1.安装 下载扩展文件 ...

  8. Spring Data JPA 整合Spring

    1.1   Spring Data JPA 与 JPA和hibernate之间的关系 JPA是一套规范,内部是有接口和抽象类组成的.hibernate是一套成熟的ORM框架,而且Hibernate实现 ...

  9. 拥抱云原生,如何将开源项目用k8s部署?

    微信搜索[阿丸笔记],关注Java/MySQL/中间件各系列原创实战笔记,干货满满. k8s以及云原生相关概念近年来一直比较火热,阿丸最近搞了个相关项目,小结一下. 本文将重点分享阿里开源项目otte ...

  10. Neighbour-Joining (NJ算法)

    clc;clear all;close all; Distance = [0,2,4,6,6,8; 2,0,4,6,6,8; 4,4,0,6,6,8; 6,6,6,0,4,8; 6,6,6,4,0,8 ...