温馨提示×

HBase数据恢复Debian方法

小樊
39
2025-12-09 05:47:10
栏目: 智能运维

Debian环境下HBase数据恢复方法

一、先判断场景与优先级

  • 误删数据但表仍在:优先尝试用KEEP_DELETED_CELLSraw scan找回未物理清理的数据,再导出补写回表。
  • 表被禁用/删除但HDFS数据或快照在:用快照恢复ExportSnapshot/Import重建表并导入数据。
  • 元数据损坏/Region不一致:用hbck在线修复,或用OfflineMetaRepair离线重建元数据。
  • 仅WAL残留:用WALPlayer将WAL回放到目标表或导出为HFile再批量导入。
  • 有备份体系:使用HBase Backup/Restore执行全量/增量恢复。以上方法在DebianCentOS等Linux上命令一致,差异主要在包管理与路径习惯。

二、场景化恢复步骤

  • 场景A 误删数据但表未删

    1. 在hbase shell为涉及的列族开启保留删除标记:
      alter ‘t’, { NAME => ‘f’, KEEP_DELETED_CELLS => TRUE }
      若有多个列族,分别设置。注意:若设置了TTL,过期数据仍会被清理。
    2. 用raw模式与时间窗口扫描已删除但尚未被major compaction清理的数据:
      scan ‘t’, { TIMERANGE => [0, 当前时间], RAW => true }
    3. 将扫描结果导出(如to_json/to_csv),再以批量Put/MapReduce作业写回目标表。
    4. 校验行数与关键业务指标,确认恢复完整后,可按需关闭KEEP_DELETED_CELLS(避免存储膨胀)。
  • 场景B 表被禁用或删除,但有HDFS数据或快照

    1. 快照恢复(推荐,轻量且快):
      • 列出快照:list_snapshots
      • 克隆为新表:clone_snapshot ‘snap1’, ‘t_recovered’
      • 校验后可将数据迁回原表或直接使用新表。
    2. 无快照但有HDFS数据文件: