HBase恢复数据任务报错回滚失败
问题现象
HBase恢复任务执行失败后系统自动回滚数据,如果页面详情中提示“Rollback recovery failed”信息,表示回滚失败。由于回滚失败后就不会处理数据,所以有可能产生垃圾数据,需要如何解决?
处理步骤
在下次执行备份或恢复任务前,需要手动清除这些垃圾数据。
- 安装集群客户端,例如安装目录为“/opt/client”。
- 使用客户端安装用户,执行以下命令配置环境变量:
source /opt/client/bigdata_env - 执行以下命令认证用:
kinit admin
- 执行以下命令连接ZooKeeper
zkCli.sh -server ZooKeeper节点业务IP地址:2181
- 执行以下命令删除垃圾数据:
deleteall /recovering
执行该命令会导致数据丢失,请谨慎操作。
再执行quit退出ZooKeeper连接。
- 执行以下命令删除临时数据:
hdfs dfs -rm -f -r /user/hbase/backup
- 登录FusionInsight Manager界面,选择“运维 > 备份恢复 > 恢复管理”,在任务列表中对应任务的“操作”列,单击“查询历史”,在弹出的窗口中,在指定一次执行记录前单击
,即可查看相关的快照名称信息:
Snapshot [ snapshot name ] is created successfully before recovery.
- 切换到客户端,执行hbase shell登录HBase客户端,然后运行以下命令删除临时快照:
delete_all_snapshot 'snapshot name.*'