刚刚在向hbase表写数据时发现一个神奇的现象:判断该表显示不存在,建表时发现显示 表已存在。

org.apache.hadoop.hbase.TableExistsException: cash_log:op_info

查看hdfs文件发现该表数据不存在。

查看 zk显示该表 meta信息存在。

zookeeper数据恢复_文件删除


要做的 就是在zk上使用​​rmr /hbase1/table/cash_log:op_info​​删除该表即可。

可是我写成了​​rmr /hbase1/table​​ 导致所有meta表删除

记得以前好像听过使用hbck可以恢复,使用之后 没用。

由于zk的信息都是放在内存的,启动的以后会读取备份信息。那么我们只要保留最新的zk备份版本即可。

zk的备份 文件在zoo.cfg文件中

zookeeper数据恢复_zk数据恢复_02

进入该目录下的version-2目录,把文件名大于你需要恢复的文件删除(如果是集群,每台机器都要删除)重新启动zk集群 (集群每一个) 即可解决 。