首页主机资讯Ubuntu HDFS备份恢复怎么做

Ubuntu HDFS备份恢复怎么做

时间2026-01-22 02:44:04发布访客分类主机资讯浏览400
导读:Ubuntu 环境下 HDFS 备份与恢复实操指南 一 备份策略与常用手段 回收站 Trash:开启后,删除文件会进入用户目录的 /user/用户名/.Trash/Current,在保留期内可直接 mv 回原路径,适合短时误删恢复。关键参...

Ubuntu 环境下 HDFS 备份与恢复实操指南

一 备份策略与常用手段

  • 回收站 Trash:开启后,删除文件会进入用户目录的 /user/用户名/.Trash/Current,在保留期内可直接 mv 回原路径,适合短时误删恢复。关键参数:fs.trash.interval(保留分钟,0 为关闭)、fs.trash.checkpoint.interval(检查点间隔,建议与前者一致或更小)。
  • 快照 Snapshot:对目录开启快照后可快速回滚到某一时刻,空间开销小、对业务影响低。常用命令:hdfs dfsadmin -allowSnapshot hdfs dfs -createSnapshot []hdfs dfs -cp /.snapshot//… hdfs snapshotDiff
  • DistCp 跨集群/跨机房备份:用于定期或持续的全量/增量同步,适合灾备与迁移。示例:hadoop distcp hdfs://src/ hdfs://backup/
  • 本地归档备份:将关键目录拉到 Ubuntu 本地或 NAS,配合 cron 定时执行,命令:hdfs dfs -get
  • 纠删码与副本:在存储受限场景可用 Erasure Coding 降低容量占用;常规用 副本数(dfs.replication,默认 3) 保障高可用与自动修复。
  • NameNode 元数据备份:定期备份 fsimageedits(可由 Secondary/Checkpoint NameNode 辅助生成),用于极端故障时的元数据恢复。

二 快速恢复步骤

  • 回收站恢复(误删未过保留期)
    1. 查看回收站:hdfs dfs -ls /user/用户名/.Trash/Current
    2. 恢复到原路径:hdfs dfs -mv /user/用户名/.Trash/Current/原/路径/文件 /原/路径/
    3. 若回收站已过期,转快照或备份恢复。
  • 快照恢复(目录已启用快照)
    1. 查看快照:hdfs dfs -ls /path/.snapshot
    2. 恢复文件/目录:hdfs dfs -cp /path/.snapshot//子路径 /restore/路径
    3. 如需回滚整个目录,可先备份当前目录,再用快照覆盖。
  • 备份还原(DistCp/本地)
    1. 跨集群:hadoop distcp hdfs://backup/路径 hdfs://prod/路径
    2. 本地归档:hdfs dfs -put /local/备份 hdfs/目标/路径
    3. 大数据量建议用 DistCp 并限速/并发参数优化。
  • 副本自愈与块修复(节点故障/副本不足)
    1. 提高副本数触发修复:hdfs dfs -setrep -w 3 /path
    2. 检查健康:hdfs fsck / -files -blocks -locations
    3. 对损坏块:hdfs fsck / -delete(谨慎,先评估影响)。
  • NameNode 元数据损坏/丢失(极端情况)
    1. 使用已备份的 fsimage 恢复(必要时结合 edits),或启动 NameNode 恢复流程:hdfs namenode -recover,按交互指引合并/回滚元数据。
    2. 恢复后执行 hdfs dfsadmin -safemode leave 退出安全模式并核验。

三 关键配置与检查命令

  • 启用回收站(core-site.xml)
    fs.trash.interval1440
    fs.trash.checkpoint.interval1440
  • 开启目录快照:hdfs dfsadmin -allowSnapshot
  • 健康巡检:hdfs fsck / -files -blocks -locations;缺失块过多会进入 Safe mode,修复后可执行 hdfs dfsadmin -safemode leave 退出。
  • 副本数调整:hdfs dfs -setrep -w 3 /path(根据业务与存储权衡设置)。

四 自动化与异地备份示例

  • 定时本地归档备份脚本(Ubuntu crontab)
    • 备份脚本:
      #!/usr/bin/env bash
      set -e
      HDFS_SRC=“/data/important”
      LOCAL_DST=“/backup/hdfs/$(date +%F)”
      mkdir -p “$LOCAL_DST”
      hdfs dfs -get “$HDFS_SRC” “$LOCAL_DST”

      可加:校验、压缩、上传至远端等

    • 定时任务(每天 01:00):
      0 1 * * * /usr/bin/env bash /opt/backup/hdfs_backup.sh > > /var/log/hdfs_backup.log 2> & 1
  • 跨集群/异地备份(DistCp)
    • 例行全量/增量:hadoop distcp -m 50 -bandwidth 100 hdfs://prod/ hdfs://backup/
    • 带宽/并发按网络与集群负载调节,避免影响线上业务。

五 常见陷阱与建议

  • 不要随意格式化 NameNode:格式化会清空元数据与 fsimage/edits,导致数据不可达;操作前务必确认已有有效备份。
  • 快照不是备份:快照是同一集群内某时刻的只读视图,不能替代跨集群/异地备份;关键数据应配合 DistCp/本地归档
  • 回收站默认关闭:务必在 core-site.xml 中开启并设置合理保留期,误删后第一时间从 .Trash/Current 恢复。
  • 恢复演练与校验:定期做恢复演练与校验(如 fsck、抽样比对),确保备份可用与 RPO/RTO 达标。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu HDFS备份恢复怎么做
本文地址: https://pptw.com/jishu/789433.html
Debian VNC防火墙设置需要注意什么 Ubuntu HDFS权限设置怎样进行

游客 回复需填写必要信息