hbase shell执行list命令验证)。/backup/hbase),并设置正确的权限(chown -R hbase:hbase /backup/hbase)。快照是HBase推荐的备份方式,通过记录表的元数据和HFile列表实现轻量级、一致性备份,不影响集群性能。
snapshot 'snapshot_name', 'table_name'(例如snapshot 'user_table_snapshot', 'user_table'),即可为指定表创建快照。hbase snapshot list查看所有快照;describe_snapshot 'snapshot_name'查看快照详情;delete 'snapshot_name'删除过期快照(避免存储浪费)。restore_snapshot 'snapshot_name',或直接覆盖原表(需先禁用表:disable 'table_name')。适用于需要将数据导出为HFile格式,再导入到另一个HBase集群或本地存储的场景。
export 'table_name', '/path/to/export_dir'(例如export 'user_table', '/backup/user_table_202510'),将表数据导出到指定目录。import 'table_name', '/path/to/export_dir'将导出的数据重新加载到HBase(可导入到不同集群,需确保表结构一致)。利用Hadoop的DistCp工具,高效复制HBase数据到HDFS或其他存储系统,适合大规模集群。
hadoop distcp hdfs:///hbase hdfs:///backup_hbase,将HDFS上的HBase数据目录复制到备份目录(需替换为实际路径)。hadoop distcp hdfs:///backup_hbase hdfs:///hbase,将备份数据恢复到HDFS的HBase目录。若HBase数据存储在HDFS上,可直接复制HBase数据目录(默认路径:/hbase)到HDFS的备份目录,实现底层数据备份。
systemctl stop hbase-master; systemctl stop hbase-regionserver);hdfs dfs -mkdir -p /hbase_backup创建备份目录;hdfs dfs -cp -r /hbase /hbase_backup复制数据;systemctl start hbase-regionserver; systemctl start hbase-master)。周期性备份:
user_table、order_table)。crontab -e):0 2 * * 0 /usr/hbase/bin/hbase backup create 'weekly_full_backup' -backupRootDir /backup/hbase -version 1 # 每周全量
0 2 * * * /usr/hbase/bin/hbase snapshot create 'daily_incremental_snapshot', 'user_table' # 每天增量
备份存储管理:
hbase snapshot list查看,手动或脚本删除过期快照);自动化与监控:
hbase backup status命令检查状态;/var/log/hbase/)接入ELK或Prometheus,当备份失败时发送邮件通知运维人员。恢复演练:
hbase shell执行balancer off暂时关闭负载均衡,备份完成后再开启)。