HBase备份恢复在CentOS上怎么操作
导读:在 CentOS 上执行 HBase 备份与恢复 一、常用方案与适用场景 快照 Snapshot:对单表进行时间点备份,轻量、快速,适合日常点恢复与克隆测试环境。支持在线创建与恢复。 Export/Import:将表数据导出为 HDFS...
在 CentOS 上执行 HBase 备份与恢复
一、常用方案与适用场景
- 快照 Snapshot:对单表进行时间点备份,轻量、快速,适合日常点恢复与克隆测试环境。支持在线创建与恢复。
- Export/Import:将表数据导出为 HDFS 的 SequenceFile,可跨集群迁移,支持按时间范围导出,适合小规模或跨环境迁移。
- CopyTable:基于 Scan/Put 在表间或集群间复制数据,可指定时间区间、列族、目标表名,适合局部数据修复或同构集群迁移。
- Backup/Restore 工具:HBase 提供的备份框架,支持全量与增量备份,适合生产环境的定期备份与快速回滚。
- HDFS 层面 DistCp/拷贝:在停机或维护窗口对 HBase 根目录做离线全量拷贝,适合跨集群/跨机房迁移或灾备。
- 一致性修复 hbck:当数据文件异常或元数据不一致时,用于检测与修复(如 fixMeta、fixAssignments、fixHdfsOverlaps)。
二、备份操作
-
快照(单表、在线)
- 在 hbase shell 创建快照:
hbase> snapshot ‘sourceTable’, ‘snapshot_20251223’
如需避免内存刷新:hbase> snapshot ‘sourceTable’, ‘snapshot_20251223’, { SKIP_FLUSH => true} - 列出/删除快照:list_snapshots / delete_snapshot ‘snapshot_20251223’
- 克隆为新表(可选):hbase>
clone_snapshot ‘snapshot_20251223’, ‘new_table’
说明:快照默认轻量,仅保存元数据与 HFile 指针,几乎不影响在线业务。
- 在 hbase shell 创建快照:
-
Export/Import(跨集群/按时间)
- 导出到 HDFS:
hbase org.apache.hadoop.hbase.mapreduce.Export sourceTable /backup/hbase/sourceTable_20251223
可加参数:versions=N、starttime=TS、endtime=TS 做增量导出。 - 导入到目标集群/表:
hbase org.apache.hadoop.hbase.mapreduce.Import targetTable /backup/hbase/sourceTable_20251223
说明:适合小规模数据迁移或按时间窗口恢复。
- 导出到 HDFS:
-
CopyTable(表间/集群间复制)
- 同集群复制为新表:
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=tableCopy sourceTable - 跨集群复制(指定对端 ZK):
hbase org.apache.hadoop.hbase.mapreduce.CopyTable \ –peer.adr=dstZK:2181:/hbase \ –new.name=tableCopy sourceTable
说明:可按时间、列族过滤,适合局部修复与复制。
- 同集群复制为新表:
-
Backup/Restore(全量/增量)
- 全量备份:
hbase backup create full hdfs:///backup/hbase/full_20251223 - 增量备份(基于上次备份):
hbase backup create incremental hdfs:///backup/hbase/incr_20251224 - 查看备份列表:
hbase backup list
说明:适合生产环境的定期备份与回滚,需确保备份仓库可用。
- 全量备份:
-
HDFS 离线拷贝(停机窗口)
- 备份:
hadoop distcp hdfs:///hbase hdfs:///backup/hbase/hbase_20251223 - 恢复:
hadoop distcp hdfs:///backup/hbase/hbase_20251223 hdfs:///hbase
说明:停机一致性更好,适合跨机房/跨版本迁移(注意版本兼容)。
- 备份:
三、恢复操作
-
快照恢复(单表)
- 在 hbase shell 禁用表:hbase> disable ‘sourceTable’
- 恢复到快照:hbase> restore_snapshot ‘snapshot_20251223’
- 启用表:hbase>
enable ‘sourceTable’
说明:恢复为快照时刻的数据视图;若启用复制(Replication),恢复后主从可能不一致,需先停同步再恢复。
-
Export/Import 恢复
- 目标表需存在且结构一致(列族一致)。
- 导入:
hbase org.apache.hadoop.hbase.mapreduce.Import targetTable /backup/hbase/sourceTable_20251223
说明:适合跨集群/按时间窗口回滚。
-
CopyTable 恢复
- 将问题数据从备份表/集群复制回原表:
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=srcZK:2181:/hbase \ –new.name=sourceTable backupTable
说明:适合局部数据修复或回滚。
- 将问题数据从备份表/集群复制回原表:
-
Backup/Restore 恢复
- 列出备份:hbase backup list
- 按备份 ID 恢复:
hbase backup restore hdfs:///backup/hbase/full_20251223 < backup_id>
说明:支持时间点回滚,适合生产环境快速恢复。
-
HDFS 拷贝恢复(离线)
- 先停 HBase:stop-hbase.sh
- 备份现有目录:hdfs dfs -mv /hbase /hbase_bak_$(date +%F)
- 恢复:hadoop distcp hdfs:///backup/hbase/hbase_20251223 /hbase
- 启动 HBase:start-hbase.sh
说明:一致性高,适合灾备恢复。
-
仅元数据/Region 异常时的修复(hbck)
- 修复元数据:hbase hbck -fixMeta table_20180811
- 分配 Region:hbase hbck -fixAssignments table_20180811
- 若存在 Region 重叠:hbase hbck -fixHdfsOverlaps table_20180811
- 复核:hbase hbck table_20180811,状态应为 Status: OK
说明:用于数据目录迁移或异常关闭后的修复。
四、注意事项与最佳实践
- 权限与目录:HBase 数据在 HDFS 上,备份/恢复涉及的路径需保证 HDFS 权限与所属用户组正确(如 hbase:hadoop),必要时使用 hdfs dfs -chown/chmod。
- 复制与一致性:启用 Replication 时,快照/导入等方式恢复后主从可能不一致,建议先停同步、恢复到一致时间点后再重建同步。
- 版本兼容:跨大版本迁移谨慎,尤其是 HBase 2.x 之后部分修复命令行为变化,优先使用快照/Export-Import/Backup 框架。
- 影响评估:CopyTable/Export/Import 会触发 Scan/MR 作业,请在业务低峰期执行并控制带宽/并发。
- 校验与演练:定期做恢复演练与校验(如 count、scan 抽样、校验和),确保备份可用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: HBase备份恢复在CentOS上怎么操作
本文地址: https://pptw.com/jishu/779225.html
