温馨提示×

Ubuntu HDFS如何数据备份

小樊
37
2025-12-20 19:35:37
栏目: 智能运维

Ubuntu 上 HDFS 数据备份与恢复实用指南

一 备份方式总览

  • HDFS 快照 Snapshot:对目录创建只读时间点副本,开销小,适合频繁快速回滚。
  • DistCp 跨集群复制:在集群之间全量/增量数据拷贝,适合异地/云端备份与迁移。
  • HDFS 副本与纠删码:通过提高副本数 dfs.replication或启用纠删码提升容错,属于同集群冗余,不替代跨集群备份。
  • NameNode 元数据备份:定期备份 fsimage 与 edits,用于NN 故障后的快速恢复。
  • 回收站与常规文件操作:误删可从回收站恢复;小规模或一次性迁移可用 hdfs dfs -cp/-get/-put
  • 第三方工具:如 Ambari Backup、Cloudera Manager 提供的备份恢复能力,适合企业级统一管理。

二 常用备份方法操作示例

  • 快照 Snapshot(目录需先允许快照)
    1. 允许快照:hdfs dfsadmin -allowSnapshot /path/to/dir
    2. 创建快照:hdfs dfs -createSnapshot /path/to/dir snap_20251220
    3. 查看快照:hdfs dfsadmin -listSnapshots /path/to/dir
    4. 基于快照恢复(示例思路):先备份当前内容,再用快照内容拷回
      • hdfs dfs -cp /path/to/dir/.snapshot/snap_20251220 /path/to/dir_bak
      • 校验一致后切换业务或覆盖回滚
    5. 删除快照:hdfs dfs -deleteSnapshot /path/to/dir snap_20251220
  • DistCp 跨集群备份(示例)
    • 全量:hadoop distcp -m 50 hdfs://src-nn:8020/path hdfs://backup-nn:8020/backup/path_$(date +%F)
    • 增量(基于上次时间戳):hadoop distcp -update -m 50 hdfs://src-nn:8020/path hdfs://backup-nn:8020/backup/path
    • 带宽限速(示例 100MB/s):-bandwidth 100
  • 元数据备份(NameNode)
    1. 进入安全模式:sudo -u hdfs hdfs dfsadmin -safemode enter
    2. 保存命名空间:sudo -u hdfs hdfs dfsadmin -saveNamespace
    3. 备份元数据目录(示例):sudo -u hdfs cp -r /dfs/nn/current /backup/nn_$(date +%F)
    4. 退出安全模式:sudo -u hdfs hdfs dfsadmin -safemode leave
  • 回收站与误删恢复
    • 查看回收站:hdfs dfs -ls /user/hdfs/.Trash/Current
    • 恢复:hdfs dfs -mv /user/hdfs/.Trash/Current/path /path
  • 小规模导出到本地归档
    • hdfs dfs -get /path /local/backup_$(date +%F).tar.gztar czf 打包后离线保存

三 异地与云端备份落地方案

  • 架构建议:在生产集群与异地/云端备份集群之间定期执行 DistCp;对关键目录启用快照做细粒度回滚;对 NameNode 元数据做每日冷备并异地存放。
  • 示例流程
    1. 每日凌晨全量:hadoop distcp -m 100 hdfs://prod-nn:8020 /data hdfs://backup-nn:8020/backup/prod_data/$(date +%F)
    2. 每小时增量:hadoop distcp -update -m 50 hdfs://prod-nn:8020 /data hdfs://backup-nn:8020/backup/prod_data/latest
    3. 关键业务目录启用快照(见第二节),保留7–30 天;定期校验快照可用性。
    4. 备份完成后执行校验:hdfs dfs -count hdfs://backup-nn:8020/backup/... 与抽样 hdfs dfs -test -e/md5sum(落地到本地后)。

四 恢复与演练要点

  • 快照恢复:优先使用快照目录 .snapshot/<name> 的内容拷回业务路径,先备份当前版本再切换,确保可回退
  • DistCp 回滚:将备份集群数据反向 DistCp 回生产,或切换到备份集群承载业务。
  • 元数据恢复:在 安全模式下用已备份的 fsimage/edits 替换当前 NameNode 元数据目录,校验权限与目录属主后启动 NameNode
  • 数据一致性校验:结合 hdfs fsck、目录计数、抽样对比与业务侧校验和,确保恢复后可用且一致

五 高可用不等于备份

  • HA(高可用)通过 Active/Standby NameNode、ZooKeeper、JournalNode 等实现故障自动切换,提升服务连续性,但不提供跨集群的数据副本
  • 建议同时建设:
    • 跨机房/云端备份集群(DistCp 定期/持续同步)
    • 快照策略(关键目录)
    • 元数据冷备与异地存放
    • 定期恢复演练与监控告警

0