众所周知,Hbase 中随着某个table 数量的增多必然会分裂成多个region,这些region 中的start-key 和 end-key 首位相连组成一个闭环.如下图所示

在表健康的时候可以用hbck工具来扫描整个表.结果当然是健康的状态

hbase hbck -details
Summary:
-ROOT- is okay.
Number of regions: 1
Deployed on: dw72.kgb.sqa.cm4:60020
.META. is okay.
Number of regions: 1
Deployed on: dw72.kgb.sqa.cm4:60020
tt1 is okay.
Number of regions: 7
Deployed on: dw71.kgb.sqa.cm4:60020 dw72.kgb.sqa.cm4:60020
0 inconsistencies detected.
Status: OK

如果我们此时由于程序的原因或者由于误操作,导致meta 表中的某行region信息被删除掉,则region 的start key 和end key 不能造成闭环. 导致某些region无法被读写.此处我特意手工删掉一行以row-14069613为start key的region. 此时再用hbck scan 发现就会有错误信息.

ERROR: Region hdfs://dw73.kgb.sqa.cm4:9000/hbase/tt1/e89a212d03926e2e7cbd5cbe4a7e1ae5 not in META, but deployed on dw71.kgb.sqa.cm4:60020
Chain of regions in table tt1 is broken; edges does not contain row-14069613

从提示 中可以看到这个table的region 出现了空洞. 此时修复空洞的工具可以出场了.

hbase org.jruby.Main check_meta.rb --fix 
.................
11/10/12 14:42:18 WARN check_meta: hole after REGION => {NAME => 'tt1,,1318400592225.d616037235511888ea51864931988ad3.', STARTKEY => '', ENDKEY => 'row-14069613', ENCODED => d616037235511888ea51864931988ad3, TABLE => {{NAME => 'tt1', FAMILIES => [{NAME => 'cf1', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}]}}
11/10/12 14:42:19 INFO check_meta: Plugged hole in .META. at: REGION => {NAME => 'tt1,row-14069613,1318401075104.e89a212d03926e2e7cbd5cbe4a7e1ae5.', STARTKEY => 'row-14069613', ENDKEY => 'row-17015881', ENCODED => e89a212d03926e2e7cbd5cbe4a7e1ae5, TABLE => {{NAME => 'tt1', FAMILIES => [{NAME => 'cf1', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}]}}
...........................

修复完了. hbck检查一下发现OK了. check_meta.rb是用ruby写的一个小工具,原理其实十分简单,主要检测前面region info的end key 和 后面start key是否相等.如果不相等则表示有空洞,再读取hdfs上的.regioninfo文件获取相应的信息并写入到meta table里面去.代码量非常少.

Hbase region空洞修复工具相关推荐

  1. HBase集群修复工具HBCK2

    Apache HBase HBCK2 工具 HBCK2是 Apache HBase 集群的修复工具. 一. Region信息一致性 一致性是指Region在meta表的信息.Regionserver服 ...

  2. HBase 2.0.0 META 数据修复工具

    必须先吐槽一下 Cloudera 6.x 和 Hbase 2.0 太坑了! 不久前生产上的一套Hbase集群出现著名的RIT(Regions in Transition)问题. 查看hbase web ...

  3. HBase 2.0之修复工具HBCK2,修复数据

    1.起因 此次修复数据情况是:服务器中毒导致HBASE异常关闭, 启动各种错误,实在没搞懂就清理了ZK关于HBASE的目录(rmr /hbase 建议先看原因,实在不行在做这个删除ZK操作,不对任何人 ...

  4. Hbase Hbck2修复工具介绍和实践

    关于Hbase hbck 工具网上有很多大佬已经很详细的介绍关于它的获取构建和运行方式. 今天我就结合最近项目中遇到的一些实际的问题来介绍一下在什么问题下怎样使用这个工具去解决! 构建和运行 hbck ...

  5. HBase 2.0 之修复工具 HBCK2 运维指南

    使用 2.1 下载 社区希望把 HBase 相关的外围工具抽离出 HBase 项目,所以在 github 上建了一 个 project hbase-operator-tools: hbase-oper ...

  6. HBase常见运维工具整理

    HBase自带许多运维工具,为用户提供管理.分析.修复和调试功能,这些工具一部分的入口是hbase shell 客户端,另一部分是在hbase的Jar包中. 大多数可通过执行以下形式的命令实现: hb ...

  7. HBase Region 简介和建议数量大小

    Region是HBase数据管理的基本单位,region有一点像关系型数据的分区. region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region. ...

  8. HBASE region简介

    HBASE region简介 一.为什么要预分区 二.region拆分方式 (一)自动拆分 (二)预拆分 (三)强制拆分 三.推荐Region拆分的方案 四.Hbase的Web界面简单介绍 五.ROW ...

  9. hbase region in transition

    Region-In-Trasition机制 从字面意思来看,Region-In-Transition说的是Region变迁机制,实际上是指在一次特定操作行为中Region状态的变迁,那这里就涉及这么几 ...

最新文章

  1. 华三h3c交换机最详细的配置实例手册_华为/思科/华三基本命令对比
  2. 警惕!国内某广告SDK内置“后门”功能,Google Play商店已强制下架
  3. 同规格装箱问题c语言算法,装箱问题C语言实现(算法分析报告)(4页)-原创力文档...
  4. 小度智能音箱维修点_会投屏电视的智能音箱——小度智能音箱PLAY青春版轻体验...
  5. 总结 XSS 与 CSRF 两种跨站攻击
  6. flask高级编程-循环引用
  7. java如何重复userinput_如何使用Scanner Java重复读取用户输入
  8. php实现单,双向链表,环形链表解决约瑟夫问题
  9. Linux下部署wowza流媒体HA文档
  10. ubuntu搜狗拼音输入法选词框乱码
  11. linux批量修改文件编码格式(包含子目录)
  12. java thread queue_java线程池技术(一):ThreadFactory与BlockingQueue
  13. 专注于Win7系统清除附带推广和工具
  14. mongodb 启动报错 ERROR: child process failed, exited with error number 1
  15. 主要Linux发行版和FreeBSD概述
  16. win10系统安装AutoCAD2021问题解决
  17. 机器学习中的置信区间与置信度
  18. Mixly第26课~第28课,内容抢先看 | Mixly米思齐纯干货系列
  19. 人人皆可做的抖音108个赚钱项目:抖音美妆行业赚钱术(10)
  20. 常见的网页布局解决方案

热门文章

  1. GoDaddy虚拟专享服务器,推出新套餐?GoDaddy最高版虚拟主机方案评测
  2. 0228 我的潘多拉
  3. 百融否认有人因“数据问题”被带走调查;AI明星创企现造假丑闻:雇人背后悄悄操控机器人;国会议员提议分拆Facebook...
  4. 第十周项目三——小学生数学考试系统(2)
  5. 【Python】之 os.path 模块详解
  6. 2018Python元年
  7. OSGi框架之Eclipse Equinox
  8. echart地图以及地图链路样式
  9. 中微区块链集团参加第六届中国产业互联网大会
  10. 什么是神经网络技术,三种常见的神经网络