1.起因

此次修复数据情况是:服务器中毒导致HBASE异常关闭, 启动各种错误,实在没搞懂就清理了ZK关于HBASE的目录(rmr /hbase 建议先看原因,实在不行在做这个删除ZK操作,不对任何人负责,只是记录我修复的过程,仅供参考),本人的HBASE版本是2.0.5。

2.查找资料

关于如何修复ZK相关数据,查找到了相关文章 (HBase指南 | HBase 2.0之修复工具HBCK2运维指南 https://mp.weixin.qq.com/s/GVMWwB1WsKcdvZGfvX1lcA?spm=a2c4e.11153940.blogcont683107.11.49d762a815MegW),了解工具的历史和试用条件.重要的一个条件的 Master 必须启动,而且UI查看界面可以使用。链接的文章很重要的一点是取github 下载项目如何进行编译,文章是说要改<hbase.version>这个配置。我修改了相关配置但是编译报错了。所以我就没有改配置,直接进行 mvn clean package ,打包的JAR还是可以直接使用的,只有几个命令是不可用的,因为版本问题。但是不影响整体的修复工作,JAR包名称:hbase-hbck2-1.2.0-SNAPSHOT.jar,这个JAR包需要上传到你的服务器。具体使用方法,后续内容会提及

3.修复数据

修复数据的时候要保证MASTER是启动的,可以通过tail -f -n 200 /xxxxx/xxxxxx/hbase-2.0.5/logs/hbase-hadoop-master-hbasemaster.log  hbase-hadoop(用户名)-master(master服务)-hbasemaster(应用服务器的hostname).log,没有报错就表示启动成功,或者通过hbase shell也可以查看是否启动成功

A.前提是我们环境是因为启动各种报错,然后我删除了ZK后,hbase这个命名空间的meta表没有任何数据。但是namespace本身是有数据,所以是需要恢复的,恢复流程和我们后写的修复普通表没什么不同,只是换下表名即可(表名hase:namespace和下面的目录路径匹配/hbase/hbase/namespace 后面的目录/hbase/namespace 表示命名空间和表名)

B.一下以用户表为例开始演示修复流程

1.查看需要修复的表:hdfs dfs -ls /hbase/data/product/t_user_label

使用的是hadoop的命令查看的目录,/hbase/data 是HBASE配置的数据根目录,/product/t_user_label 表示的是命名空间和表名,组合的表就是product:t_user_label

2.查看哪些region是没有分配

使用命名/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar addFsRegionsMissingInMeta product:t_user_label

/xxxxxx/xxxxx/hbase-2.0.5/bin/ (表示安装的目录)

-j ./hbase-hbck2-1.2.0-SNAPSHOT.jar (jar的引入方式)

addFsRegionsMissingInMeta product:t_user_label 增加product:t_user_label到meta表中。

xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar --help 可以查看有哪些可用的命令

最下面可以看到有哪些是没有分配region的,因为这个表没有修复过,所以作为修复案例,和上面hdfs dfs -ls /hbase/data/product/t_user_label 查看的目录也可以看出,目录和未分配的region是一致。

根据提示需要重启hbase /xxxxxx/xxxxx/hbase-2.0.5/bin//stop-hbase.sh 和 /xxxxxx/xxxxx/hbase-2.0.5/bin/start-hbase.sh

3.打开master的管理界面 http://xxx.xxx.xxx.xxx:16010/master-status 替换下IP即可,如果不能访问,可以看下是否端口和IP服务器对外开放,IPTABLES设置问题,还有要查看master的启动日志查看master是否启动完成,

界面打开后查看Regions in Transition 提示这个表不能初始化,实际原因是需要分配region

   界面上端有如下界面,获取一个服务器的id,后面的命令需要用到

5.随便选择一个ID上面的:1617781509723,使用这个服务作为手动分配region的服务,不用担心负载问题。即时你只配置到这个服务器,HBASE也会自动帮你负载到其他服务,取ID只是为了让命令执行。命令如下:

/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 04afb633c1e7d4291a8346b3f707d700
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 064be6f94771b529acaa956cd6507ade
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 0d2f203debd08a3893591554f87e826f
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 1870d781f38982776a2fc5fe77c47912
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 2b8c9ab134317196eff7e898a90e3481
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 3c8fb548ac2ef08687b0fc7c64cdb053
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 551a410f04bf420491102c43b9a4f238
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 59d371972a1f6ea8a02d9585214e89f8
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 60896d8a39b539e2c2b8deb37fbd114e
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 6c0837d0cb6736e85a5600006d53e1e2
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 7f1cf3f1f1a346f8bffd08cba564420b
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 8a9ceb920cf8beb7d95ad98e180b0f23
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 96abbdebce0f72858d950754a7976598
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 ca12b877f375284f8378d2f2ae886033
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 ca5fa48e951c12efbe3e8a454b25b8e4
/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar assigns 1617781509723 cafe78ca52776b4fd054364917602344

执行完后可以在mater的UI界面上的tables,online Regions从原来的0变成了16,标识表加载成功

6.检验下是否可以正常使用hbase shell,count  'product:t_user_label'

基本数据就回复完成.

6.可以查看是否还有漏掉的region没同步

/xxxxxx/xxxxx/hbase-2.0.5/bin/hbase hbck -j ./hbase-hbck2-1.2.0-SNAPSHOT.jar reportMissingRegionsInMeta product:t_user_label

提示:Missing Regions for each table:
        product:t_user_label -> No mismatching regions. This table is good! 就表示region分配完成。恢复完成

如果显示还有region未分配继续执行上面的上一步assigns操作

HBase 2.0之修复工具HBCK2,修复数据相关推荐

  1. HBase集群修复工具HBCK2

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

  2. 古籍制作 - 古书制作 - 古籍制作工具 - 古籍制作软件 - 古籍修复工具 -古籍修复软件 - 古书制作软件 - 古书修复工具 - 古籍修复软件 -古籍修复软件

    古籍制作 - 古籍制作工具 - 古籍制作软件 - 古籍修复工具 -古籍修复软件 - 古书制作 - 古书制作软件 - 古书修复工具 - 古籍修复软件 -古籍修复软件 前言 自己开发的古籍制作工具 一.看 ...

  3. 可靠的手机问题修复工具分享 - 修复各种 Android 系统问题

    一般来说,安卓手机都可以流畅运行.但不幸的是,有时您的Android手机可能无法正常运行,例如无响应.突然重启等.在这种情况下,您将需要Android手机维修软件.这些 Android 修复工具可以帮 ...

  4. outlook修复工具_修复Outlook 2007中缓慢的“即时搜索”问题

    outlook修复工具 If Outlook 2007's new Instant Search just isn't- instant- there's a patch from Microsoft ...

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

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

  6. 修复工具-斑点修复画笔工具、修复画笔工具、修补工具、红眼工具

    斑点修复画笔工具:修中一部分内容,根据选中部分的大多数部分的颜色去填充修补整个选中部分的内容. 修复画笔工具:需要选取参照点,把涂抹的部分用选中的参照点去填充修补. 修补工具:直接选中某部分内容拖动到 ...

  7. chkdsk修复工具怎么修复

    点击开始进入运行 输入cmd点击确认.输入chkdsk H:(表示你的目标磁盘) /f:按照指示选择Y,即可恢复

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

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

  9. HBCK2修复RIT实践笔记

    目录 前言 1. 下载 2. 使用命令 使用方法 1. 查找问题 2. 实践例子 3. 注意事项 前言 本文记录了作者使用HBCK2工具对线上HBase发生RIT状态的处理,仅供参考,若有疵漏,还望指 ...

最新文章

  1. 【Python 小知识】[:-1] 和 [::-1]
  2. 一台古老电脑之维修记
  3. FPS, VSync, Triple Buffering
  4. 封装cookie设置和获取的简易方法
  5. 河南省高考让不让带计算机,河南高考2018严禁携带的东西有哪些?这种衣服不能进考场...
  6. JZOJ5787轨道(容斥+DP)
  7. c语言程序 题库管理,C语言程序设计题库管理系统-20210412073918.docx-原创力文档
  8. 软件项目进度控制表(自制)
  9. YDOOK:Maxwell 电磁场仿真 最新版的 Maxwell 软件 使用什么软件进行电磁场仿真
  10. 成为会带团队的技术人 业务理解:深入业务是做好架构的前提
  11. Flask图片验证码注册功能
  12. 拓视角丨拓宽市场边界,数智化转型构建产业新格局
  13. 开始时间和结束时间,用例设计
  14. java 502错误_nginx 502 超时错误解决(java版本)
  15. 手动制作解除U盘写保护文件
  16. 开源中国众包平台 —— 为什么我们需要托管赏金
  17. 20常见的手机问题及其解决方案
  18. Unity格子类三消游戏【物体下落】小细节(Unity萌新的备忘录)
  19. MATALB APP DESIGNER 回调函数创建及StartupFcn函数
  20. 云服务器gitlab,云服务器CentOS7.4下搭建GitLab

热门文章

  1. Agv、Rgv 车辆控制调度系统开发第八篇-错误纠正
  2. HttpUrlConnection实现文件下载
  3. Android Aidl 爱之初体验?
  4. 国科大学习资料–图像处理(彭思龙、杨戈)--第四次作业
  5. Python编写薅羊毛脚本经验分享
  6. Metasploit学习笔记(一)——简单使用
  7. 国务院关于印发节能与新能源汽车产业 发展规划(2012―2020年)的通知
  8. 为何要进行教育培训app开发?教育培训app应具备何种功能?
  9. 华硕主板B560M中win安装linux双系统
  10. 【2022/3/18】自定义数据类型