更新时间:2024-09-18 GMT+08:00

HBase恢复数据任务报错回滚失败

问题

HBase恢复任务执行失败后系统自动回滚数据,如果页面详情中提示“Rollback recovery failed”信息,表示回滚失败。由于回滚失败后就不会处理数据,所以有可能产生垃圾数据,需要如何解决?

回答

在下次执行备份或恢复任务前,需要手动清除这些垃圾数据。

  1. 安装集群客户端,例如安装目录为“/opt/client”。
  2. 使用客户端安装用户,执行source /opt/client/bigdata_env命令配置环境变量。
  3. 执行kinit admin命令。
  4. 执行zkCli.sh -server ZooKeeper节点业务IP地址:2181连接ZooKeeper。
  5. 执行deleteall /recovering删除垃圾数据。然后执行quit退出ZooKeeper连接。

    执行该命令会导致数据丢失,请谨慎操作。

  6. 执行hdfs dfs -rm -f -r /user/hbase/backup删除临时数据。
  7. 登录FusionInsight Manager界面,选择“运维 > 备份恢复 > 恢复管理”,在任务列表中对应任务的“操作”列,单击“查询历史”,在弹出的窗口中,在指定一次执行记录前单击,即可查看相关的快照名称信息:

    Snapshot [ snapshot name ] is created successfully before recovery.

  8. 切换到客户端,执行hbase shell,然后运行delete_all_snapshot 'snapshot name.*'删除临时快照。