正常运行的hbase服务,修改zookeeper.znode.parent后,重启。hbase master服务可以启动成功,但是仅有meta表上线,且hbase:meta表中元数据丢失。仅残留table:state列的值,其他列的值全部丢失。
解决方案:
在社区issue里搜到类似问题(HBASE-24286、HBASE-24833)及解决方案。该问题在2.5.*版本修复,手动修复方案需要使用hbck2。修复步骤如下:
2.1、停止hbase服务
2.2、删除${hbase.rootdir}/MasterRegion目录,命令如下
hdfs dfs -mv /hbase24/data2417/MasterData /hbase24/data2417/MasterData.bak
2.3、删除zk中数据
2.3、启动HBase,观察hbase master ui页面
2.4、手动修复meta表数据。需要填写所有表,其中hbase:namespace是必须的,其他表根据需要填写。
bin/hbase --config conf hbck -j hbase-hbck2-1.2.0-SNAPSHOT.jar addFsRegionsMissingInMeta hbase:namespace default:t1
2.5、根据提示,重启HBase master,并上线region即可。
上线region的命令如下所示,region的信息在上一步有提示,直接使用即可。
bin/hbase --config conf hbck -j hbase-hbck2-1.2.0-SNAPSHOT.jar assigns da40a3af76b21d9d4abace62ab828c91 4e92be62063be6d10746278e06028719
2.6、查看集群是否恢复正常
命令行查询: