侧边栏壁纸
博主头像
AllInOne博主等级

随风来,随风去

  • 累计撰写 45 篇文章
  • 累计创建 27 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Hbase异常停机问题(实战篇)

AllInOne
2024-06-24 / 0 评论 / 0 点赞 / 176 阅读 / 455 字
温馨提示:
点赞-关注-不迷路。

故障现象:

image-1719218659835

常见于节点异常下线后,重启节点regionserver的ServerName与注册信息中的name不一致(时间戳不同),导致分区无法找到。此时重启的节点被认为新节点

image-1719218694078

修复步骤:

以下步骤仅在紧急情况下使用,且操作过程中需谨慎仔细(涉及到服务下线与数据移动),需保障数据安全。

1. 关闭hbase集群

 bin/stop-hbase.sh

2. 检查各节点服务是否已正常关闭,以及backup master服务是否关闭

3. 清空zookeeper中hbase的注册信息

rmr /dmhbase

4. 将hdfs中hbase数据备份

hadoop fs -mv /hbase /hbase_20240624

5. 新建一个空的hbase目录

hadoop fs -mkdir /hbase

6. 启动hbase集群,以初始化一个空hbase集群。此时系统表meta, namespace应自动创建成功,否则可能为步骤3未执行

 bin/start-hbase.sh

7. 关闭hbase集群

 bin/stop-hbase.sh

8. 将备份的数据中要恢复的namespace移回对应目录,

hadoop fs -mv /hbase_20240624/data/erec /hbase/data/erec

9. 启动hbase集群,观察erec空间是否自动注册完成,此时通常情况下regions并未自动注册

bin/start-hbase.sh

10. 将hbck2 jar 拷贝到hbase 的lib目录,并重启集群

image-1719219169486

11. 运用hbck工具修复meta中的命名空间注册信息,运行后会打印提示需要assign的分区信息

hbase org.apache.hbase.HBCK2   addFsRegionsMissingInMeta erec

image-1719219200156

12. 重启hbase集群

bin/stop-hbase.sh
bin/start-hbase.sh

13. Assign 所有分区

hbase org.apache.hbase.HBCK2 assigns 08f5ff612e9007c97ff5d1599fd8967d 15096dce733e6575b3d0d38dce202a64。。。

执行成功后的如下

image-1719219251680

此时hbase webui页面上会出现各分区开始分配信息,并自动执行至所有分区恢复。

0

评论区