温馨提示×

CentOS Hadoop 数据如何备份

小樊
40
2025-11-22 05:03:23
栏目: 智能运维

CentOS 上 Hadoop HDFS 数据备份与恢复指南

一 备份策略与总体建议

  • 明确备份范围:区分业务数据(如 /user/、/data/**)与元数据(NameNode 元数据、配置文件),两者备份方式不同。
  • 选择备份方式:优先使用 HDFS 快照(目录级时间点副本)、distcp(跨目录/跨集群/跨存储的高效复制)、NameNode 元数据检查点(fsimage 级别),必要时再配合 rsync/tar 做落地归档或配置备份。
  • 周期与保留:结合变更频率设定全量/增量节奏与保留策略(如近 7/30/90 天),并定期做恢复演练与校验。
  • 高可用前提:HDFS 副本(如 dfs.replication=3)提供可用性,不等于备份;备份用于灾难恢复、误删回滚、合规归档等场景。

二 常用备份方法步骤

  • HDFS 快照(目录级时间点副本)

    • 开启快照:hdfs dfsadmin -allowSnapshot /path/to/dir
    • 创建快照:hdfs dfs -createSnapshot /path/to/dir snapshot_20251122
    • 查看快照:hdfs dfsadmin -listSnapshots /path/to/dir
    • 恢复快照:hdfs dfs -cp /path/to/dir/.snapshot/snapshot_20251122 /path/to/restore
    • 删除快照:hdfs dfs -deleteSnapshot /path/to/dir snapshot_20251122
    • 适用:关键目录的“快速回滚点”,对在线业务影响小。
  • distcp 跨目录/跨集群/跨存储复制

    • 同集群备份:hadoop distcp /user/hadoop/data /backup/hdfs/2025-11-22
    • 跨集群备份:hadoop distcp hdfs://nn1:8020/user/hadoop/data hdfs://nn2:8020/backup/hdfs/2025-11-22
    • 备份到对象存储(HDFS 兼容接口,如 S3/MinIO):hadoop distcp /user/hadoop/data s3a://backup-bucket/hdfs/2025-11-22
    • 常用选项:-m 并行度、-update/-overwrite 增量/覆盖、-bandwidth 限速
    • 适用:定期全量/增量迁移、跨机房/跨云灾备、对象存储落地。
  • NameNode 元数据检查点(fsimage 级别)

    • 进入安全模式:hdfs dfsadmin -safemode enter
    • 保存命名空间:hdfs dfsadmin -saveNamespace
    • 退出安全模式:hdfs dfsadmin -safemode leave
    • 校验一致性:hdfs fsck / -files -blocks -locations
    • 适用:配合快照/备份策略,降低元数据损坏带来的恢复难度。
  • 配置文件与本地落地归档

    • 配置备份:tar -czvf /backup/hadoop-config-$(date +%Y%m%d%H%M%S).tar.gz /etc/hadoop/conf
    • 本地数据目录落地(仅限非生产/测试或停机窗口):rsync -avz /usr/local/hadoop/data/ /backup/hdfs/data-$(date +%Y%m%d)
    • 远程传输:scp hadoop-config-20251122.tar.gz user@backup-server:/backup/
    • 适用:快速保护配置与有限场景的落地归档。

三 自动化与监控

  • 定时任务示例(crontab)
    • 每天 02:00 执行 distcp 备份:
      • 0 2 * * * /usr/local/bin/hdfs_backup_distcp.sh >> /var/log/hdfs_backup.log 2>&1
    • 每天 01:00 备份配置文件:
      • 0 1 * * * /usr/local/bin/hdfs_backup_config.sh >> /var/log/hdfs_config_backup.log 2>&1
  • 建议:统一日志目录与日志轮转(logrotate),脚本内做“返回码检查/失败告警”,并保留最近 N 份备份与校验信息。

四 恢复与校验

  • 从快照恢复:hdfs dfs -cp /path/to/dir/.snapshot/snapshot_20251122 /path/to/restore
  • 从 distcp 备份恢复:hadoop distcp hdfs://backup-nn:8020/backup/hdfs/2025-11-22 /user/hadoop/data
  • 回收站误删恢复:hdfs dfs -mv /user/root/.Trash/Current/file /user/root/original
  • 一致性校验:hdfs fsck / -files -blocks -locations;必要时再做小样本抽样读取验证。

五 注意事项与最佳实践

  • 快照前先允许:对目标目录执行 -allowSnapshot,避免快照失败。
  • 变更窗口与限流:大目录备份建议选择低峰期,并使用 distcp 的 -bandwidth-m 控制带宽与并发,减少对业务影响。
  • 保留与异地:按 RPO/RTO 设定保留周期,关键备份建议“同城+异地/对象存储”双地留存。
  • 定期演练:至少每 季度做一次恢复演练与校验,确保备份可用。
  • 安全合规:备份链路与存储加密,访问权限最小化,审计留痕。

0