温馨提示×

centos下hbase如何备份

小樊
34
2026-10-03 10:40:40
栏目: 智能运维

在 CentOS 下备份 HBase,常见做法有几种,取决于你是全量备份、增量备份,还是业务可中断。下面按最常用 → 进阶的顺序说明。


一、最常用:使用 HBase Export/Import(官方推荐,安全)

适合全量备份某个表,不依赖底层文件,兼容性好。

1️⃣ 导出表数据到 HDFS

hbase org.apache.hadoop.hbase.mapreduce.Export \
表名 \
/hbase_backup/表名_20260121

示例:

hbase org.apache.hadoop.hbase.mapreduce.Export \
user_table \
/hbase_backup/user_table_20260121

2️⃣ 从 HDFS 恢复(导入)

hbase org.apache.hadoop.hbase.mapreduce.Import \
表名 \
/hbase_backup/表名_20260121

✅ 优点:

  • 不依赖 HDFS 版本
  • 可跨集群恢复
    ❌ 缺点:
  • 速度较慢
  • 需要表已存在

二、快照方式(推荐生产环境)

不影响线上读写,适合定时备份

1️⃣ 创建快照

hbase shell
snapshot '表名', 'snapshot_20260121'

2️⃣ 查看快照

list_snapshots

3️⃣ 从快照恢复

disable '表名'
restore_snapshot 'snapshot_20260121'
enable '表名'

4️⃣ 导出快照到 HDFS(可拷走)

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \
-snapshot snapshot_20260121 \
-copy-to hdfs://namenode:8020/hbase_backup/

✅ 优点:

  • 快
  • 不影响业务
    ❌ 缺点:
  • 快照只是元数据 + HFile 引用

三、直接拷贝 HDFS 数据(冷备份,不推荐常用)

⚠️ 仅限 HBase 停止或表 disable

hdfs dfs -cp /hbase/data/default/表名 /backup/表名

恢复时再拷回并 enable


四、使用 hbase backup(HBase 2.x+)

企业级备份方案(支持增量)

hbase backup create full hdfs://namenode:8020/backup

五、CentOS 上常见定时备份脚本示例

#!/bin/bash
DATE=$(date +%Y%m%d)
hbase shell <<EOF
snapshot 'user_table', 'user_table_$DATE'
EOF

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \
-snapshot user_table_$DATE \
-copy-to hdfs://namenode:8020/hbase_backup/

加入 crontab:

0 2 * * * /opt/scripts/hbase_backup.sh

六、如何选择?

场景 推荐方式
小表、偶尔备份 Export/Import
生产环境 快照
跨集群 ExportSnapshot
容灾 backup 工具

如果你告诉我:

  • HBase 版本
  • 是否可停服
  • 单表还是全库

我可以给你更精确的备份方案。

0 踩