Debian 上 HBase 数据备份方法

一、方法总览与选型
二、快照 Snapshot 备份与恢复
<property><name>hbase.snapshot.enabled</name><value>true</value></property># 1) 创建快照snapshot 'mytbl', 'snap_20251219'# 2) 列出/校验list_snapshots# 3) 克隆为新表(不产生数据拷贝)clone_snapshot 'snap_20251219', 'mytbl_bak'# 4) 回滚到快照(需先禁用表)disable 'mytbl'restore_snapshot 'snap_20251219'enable 'mytbl'# 5) 删除快照delete_snapshot 'snap_20251219'hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snap_20251219 -copy-from hdfs://src-nn:8020/hbase -copy-to hdfs://dst-nn:8020/hbase -mappers 16 -bandwidth 100提示:快照是元数据+HFile引用,创建/克隆/回滚在线完成,性能开销小。三、Export/Import 备份与恢复
# 导出到 HDFS(默认导出最新版本)hbase org.apache.hadoop.hbase.mapreduce.Export mytbl /backup/hbase/mytbl_20251219# 导入(目标表需先存在;可走普通写入)hbase org.apache.hadoop.hbase.mapreduce.Import mytbl /backup/hbase/mytbl_20251219# 导出最近 3 个版本,指定时间窗口(单位 ms)hbase org.apache.hadoop.hbase.mapreduce.Export mytbl /backup/hbase/mytbl_20251219 3 1734566400000 1734652800000# 导入时可使用 bulk 方式提升效率(需 HFile 路径)hbase org.apache.hadoop.hbase.mapreduce.Import mytbl /backup/hbase/mytbl_20251219说明:Export 支持 versions/starttime/endtime,适合按时间做准增量备份;Import 可走 bulk 导入以减少写放大。四、CopyTable 表间复制
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=mytbl_copy mytblhbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=zk1:2181,zk2:2181,zk3:2181:/hbase mytblhbase org.apache.hadoop.hbase.mapreduce.CopyTable --starttime=1734566400000 --endtime=1734652800000 --families=cf1,cf2 --peer.adr=zk1:2181:/hbase mytbl提示:CopyTable 通过 Scan + Put/Delete 实现,适合小中型表或定向迁移,大表对线上会有一定负载。五、Replication 与 DistCp 及实践建议
# 开启复制hbase shell> enable_replication# 添加对端(CLUSTER_KEY 格式:zk_quorum:clientPort:znode_parent)hbase shell> add_peer '1', 'zk1:2181,zk2:2181,zk3:2181:/hbase'# 对指定列族开启复制作用域hbase shell> disable 'mytbl'hbase shell> alter 'mytbl', {NAME => 'cf1', REPLICATION_SCOPE => '1'}hbase shell> enable 'mytbl'说明:基于 WAL 的异步复制,适合主从/主主容灾;误删等逻辑错误也会被复制,需配合快照/离线备份做回滚点。# 同集群备份hadoop distcp hdfs://nn1:8020/hbase /backup/hbase/hbase_20251219# 跨集群备份hadoop distcp hdfs://nn1:8020/hbase hdfs://nn2:8020/hbase_backup/20251219提示:为减少不一致,建议在停机或只读窗口执行;恢复时可将备份目录拷回 HBase 根目录并校验元数据。