HBase在Debian上的数据恢复指南
一 恢复前准备与故障定位
hdfs dfs -cp -r /hbase /hbase_bak_$(date +%F_%T)。status 'simple'与list,确认集群与表状态;必要时先停写相关表或应用。二 场景化恢复步骤
误删数据且尚未发生Major Compaction
alter 'tbl', {NAME => 'cf', KEEP_DELETED_CELLS => TRUE}。scan 'tbl', {RAW => true, TIMERANGE => [ts_start, ts_end]}。alter 'tbl', {NAME => 'cf', KEEP_DELETED_CELLS => FALSE},避免空间膨胀与查询性能下降。使用快照恢复(时间点恢复)
list_snapshots。clone_snapshot 'snap_20241201', 'tbl_restore' 或 restore_snapshot 'snap_20241201'(恢复前建议对目标表做备份/禁用)。count 'tbl_restore'。使用Export/Import导出导入(跨集群/跨环境迁移与恢复)
hbase org.apache.hadoop.hbase.mapreduce.Export 'tbl' /backup/hbase_tbl_20241201。create 'tbl', 'cf1', 'cf2'。hbase org.apache.hadoop.hbase.mapreduce.Import 'tbl' /backup/hbase_tbl_20241201。使用DistCp复制HBase目录(整库/整表物理迁移)
stop-hbase.sh(或暂停写入)。hadoop distcp -m 50 hdfs://src/hbase /hbase_bak。start-hbase.sh。使用HFile直拷恢复(按HFile粒度找回历史文件)
hdfs dfs -ls /hbase/data/default/tbl/region_x/cf/。hdfs dfs -mv ... /hbase/data/default/tbl_restore/...。major_compact 'tbl_restore'促使加载新HFile,并校验数据。一致性修复与Region问题处理
hbase hbck。hbase hbck -repair(修复前务必做好备份)。三 恢复效率与风险控制
四 常用命令清单
snapshot 'tbl', 'snap_20241201'clone_snapshot 'snap_20241201', 'tbl_restore'restore_snapshot 'snap_20241201'list_snapshotshbase org.apache.hadoop.hbase.mapreduce.Export 'tbl' /backup/hbase_tbl_20241201hbase org.apache.hadoop.hbase.mapreduce.Import 'tbl' /backup/hbase_tbl_20241201hdfs dfs -ls /hbase/data/default/tbl/region_x/cf/hdfs dfs -mv <src_hfile> <dst_tbl_region_cf>/hbase hbck / hbase hbck -repairstart-hbase.sh / stop-hbase.shstatus 'simple'