1. HBase Snapshot(快照)
HBase Snapshot是轻量级、高性能的表级备份方式,仅记录表的元数据(如表结构、Region信息)和HFile文件的列表,不复制实际数据,创建速度快且对集群性能影响小。适用于快速恢复单表数据或克隆新表。
snapshot 'table_name', 'snapshot_name'命令(如snapshot 'user_table', 'user_snapshot_202510')。list_snapshots查看所有快照,delete_snapshot 'snapshot_name'删除不再需要的快照。disable 'table_name'),再执行restore_snapshot 'snapshot_name'恢复数据,最后启用表(enable 'table_name')。clone_snapshot 'snapshot_name', 'new_table_name'快速创建与快照数据一致的新表,无需恢复步骤。2. Export/Import(导出/导入)
Export/Import是全量数据迁移工具,将HBase表数据导出为HFile格式或文本文件,适合跨集群、跨环境的数据迁移或长期归档。
export 'table_name', '/path/to/export_dir'命令(如export 'order_table', '/backup/order_export_202510'),数据会存储为HFile格式(默认)或CSV文件(需指定参数)。import 'table_name', '/path/to/export_dir'命令将导出的数据重新加载到HBase中(如import 'order_table', '/backup/order_export_202510')。3. HBase Replication(集群间复制)
HBase Replication是实时数据同步机制,将源集群的数据自动复制到目标集群,实现跨集群的高可用性和灾难恢复。适用于需要多活或异地备份的场景。
hbase-site.xml中启用复制:<property><name>hbase.replication</name><value>true</value></property>;alter 'user_table', {NAME => 'cf1', REPLICATION_SCOPE => '1'},REPLICATION_SCOPE=1表示开启复制);add_peer '1', 'zk1:2181:/hbase_backup,zk2:2181:/hbase_backup,zk3:2181:/hbase_backup',需填写目标集群的ZooKeeper地址);scan 'user_table',检查是否同步了源集群的数据。4. Hadoop DistCp(分布式复制)
Hadoop DistCp是基于MapReduce的分布式复制工具,适用于大规模HBase数据的跨集群备份(如从生产集群备份到灾备集群)。它利用HDFS的并行传输能力,效率高且支持断点续传。
hadoop distcp hdfs:///hbase hdfs:///backup_hbase(将本地HDFS上的/hbase目录复制到/backup_hbase)。hadoop distcp hdfs:///backup_hbase hdfs:///hbase(将备份数据复制回原集群)。5. 第三方备份工具
第三方工具提供更丰富的功能和更高的灵活性,适合企业级场景(如自动化管理、加密备份、云集成)。常见工具包括:
6. 定时任务自动化
通过Linux cron定时任务实现备份自动化,避免人工干预,确保备份的持续性。适用于固定周期的全量或增量备份。
crontab -e),添加定时任务(如每天凌晨2点执行全量备份):0 2 * * * /usr/hbase/bin/hbase backup create daily_backup /backup/hbase。/var/log/hbase/backup.log查看是否成功);