Hbase 备份与恢复的发展历程:
- 从最早使用distcp进行关机全备份
- 到0.94版本使用copyTable工具在线跨集群备份
- 到0.98版本推出在线Snapshot备份
在线Snapshot备份具备的功能:
全/增量备份:
-
业务场景1: 对于重要的业务数据,可以每天备份,以备发生故障时,可以回滚。
-
业务场景2: 如果集群升级时,建议对重要表做升级。
数据迁移:
可以使用ExportSnapshot功能将快照导出到另一个集群,实现数据的迁移。
-
业务场景1: 机房迁移
-
业务场景2:导出到HDFS,再用spark/Hive 的离线分析
在线Snapshot 备份与恢复的用法
在线Snapshot备份与恢复最常用的5个工具:
- snapshot
- restore_snapshot
- clone_snapshot
- ExportSnapshot
- delete_snapshot
1.snapshot:
可以为表打一个快照,但并不涉及数据移动,不执行文件复制
> snapshot 'tableName','snapshotName'
2.restore_snapshot:
用于恢复指定快照,恢复过程会替代原有数据,将表还原到快照点,快照点之后的所有更新将会丢失。用快照恢复数据,它需要先禁用表,再进行恢复。
> restore_snapshot 'snapshotName'
3.clone_snapshot:
可以根据快照恢复出一个新表,恢复过程不涉及数据移动,可以在秒级完成。
> clone_snapshot 'snapshotName','tableName'
4.delete_snapshot:
> delete_snapshot 'snaphotName'
5.ExportSnapshot:
可以将A集群的快照数据迁移到B集群。
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot
SnapshotName -copy-to hdfs:///srv2:8082/hbase
参考:
https://www.cnblogs.com/bugsbunny/p/7779185.html
https://lihuimintu.github.io/2019/03/24/Introduction-hbase-snapshots/