Debian环境下HBase数据备份策略
快照是HBase推荐的轻量级备份方式,通过元数据记录表结构和HFile文件列表,创建过程无需复制数据,对业务无影响。适用于表级快速备份,恢复时可选择还原到特定快照点。
hbase snapshot create命令,指定快照名称和表名(如hbase snapshot create -n test_snapshot -t test)。hbase snapshot list命令列出所有快照。restore_snapshot命令还原到原表(如restore_snapshot 'test_snapshot'),或通过clone_snapshot克隆为新表(如clone_snapshot 'test_snapshot','test_2')。ExportSnapshot工具(如hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot test_snapshot -copy-to hdfs://backup_cluster/hbase/backup/test_snapshot)。适用于跨集群或大规模数据迁移,支持增量备份(通过--starttime和--endtime参数指定时间范围)。
hbase org.apache.hadoop.hbase.mapreduce.Export命令,将表数据导出到HDFS(如hbase org.apache.hadoop.hbase.mapreduce.Export oldtable /backup/oldtable)。hbase org.apache.hadoop.hbase.mapreduce.Import命令导入数据(如hbase org.apache.hadoop.hbase.mapreduce.Import newtable /backup/oldtable)。WAL日志记录所有写入操作的原始数据,是恢复最新未提交数据的关键。需定期将WAL日志备份到外部存储(如HDFS)。
hbase.regionserver.hlog.dir)同步到HDFS(如使用hadoop distcp命令),或在hbase-site.xml中配置hbase.wal.archive.dir指向HDFS路径。借助Hadoop DistCp或Apache Phoenix等工具,实现高效、灵活的备份(支持增量、全量、定时备份)。
hadoop distcp /hbase/data/default/test_table hdfs://backup_cluster/hbase/backup/test_table),适合大规模数据备份。hbase org.apache.phoenix.util.Export -t test_table -d /backup/test_table),便于后续处理。通过HBase的主从复制机制,实现集群间实时数据同步(延迟低,数据一致性高)。适用于高可用场景,确保主集群故障时从集群可快速接管。
hbase-site.xml中启用复制(hbase.replication设为true),并在主集群添加从集群的ZooKeeper地址(hbase.replication.peer.zk.quorum),最后配置需要复制的表。cron作业实现定时备份(如每天凌晨2点执行全量备份:0 2 * * * /usr/hbase/bin/hbase backup create 'daily_backup')。