温馨提示×

Hadoop Linux系统如何备份

小樊
35
2026-01-01 06:09:59
栏目: 智能运维

Hadoop Linux系统备份实操指南

一 备份范围与总体策略

  • 备份对象应覆盖三层:
    1. HDFS业务数据(可按目录/表/库粒度);
    2. NameNode元数据(fsimage 与 edits,支持时间点恢复);
    3. 配置文件与脚本(/etc/hadoop/conf、部署与备份脚本等)。
  • 策略建议:采用每周全量 + 每日增量的组合;对关键目录启用HDFS快照获取快速回滚能力;跨集群或异地使用DistCp做定期拷贝;对配置与脚本做版本化归档并纳入备份窗口。

二 HDFS数据备份方法

  • 使用 HDFS 快照(Snapshot)做时间点回滚
    1. 开启快照:hdfs dfsadmin -allowSnapshot /path/to/dir
    2. 创建快照:hdfs dfs -createSnapshot /path/to/dir snap_20260101
    3. 查看快照:hdfs dfsadmin -listSnapshots /path/to/dir
    4. 回滚/恢复:hdfs dfs -cp /path/to/dir/.snapshot/snap_20260101 /path/to/dir_restored
    5. 删除快照:hdfs dfs -deleteSnapshot /path/to/dir snap_20260101
      适用:误删/误改后的快速回滚,或做短期时间点保护。
  • 使用 DistCp 做跨目录/跨集群/异地备份
    1. 同集群备份:hadoop distcp hdfs://nn1:8020/src hdfs://nn1:8020/backup/20260101
    2. 跨集群备份:hadoop distcp hdfs://src-nn:8020/data hdfs://backup-nn:8020/backup/20260101
    3. 增量思路:基于上次备份的时间戳/目录标记做定期 DistCp;配合 -update/-diff 可实现更细粒度增量。
      适用:定期全量/增量、集群迁移、异地容灾。
  • 使用 HDFS 基本命令做小规模拷贝与拉取
    • 集群内拷贝:hdfs dfs -cp /src /backup
    • 下载到本地归档:hdfs dfs -get /src /local/backup_20260101
    • 上传本地归档:hdfs dfs -put /local/backup_20260101 /backup
      适用:小数据量、临时备份与校验。

三 NameNode 元数据与配置文件备份

  • NameNode 元数据备份(支持时间点恢复)
    1. 进入安全模式:hdfs dfsadmin -safemode enter
    2. 保存命名空间:hdfs dfsadmin -saveNamespace
    3. 按你的部署将 ${dfs.namenode.name.dir} 目录(包含 fsimage 与 edits 等)离线拷贝到备份存储;恢复时先进入安全模式,再执行 -restoreNamespace 并重启 NameNode(操作前务必确认备份一致性)。
  • 配置文件与脚本备份
    • 打包归档:tar -czvf /backup/hdfs-config-$(date +%Y%m%d%H%M%S).tar.gz /etc/hadoop/conf
    • 建议纳入版本控制(如 Git)并定期同步至备份仓。

四 Linux 操作系统与本地磁盘备份

  • 整盘/分区镜像(适用于系统盘或数据盘的离线/近线备份)
    • 整盘:dd if=/dev/sda of=/backup/disk_sda_20260101.img bs=4M
    • 分区:dd if=/dev/sda1 of=/backup/part_sda1_20260101.img bs=4M
      提示:确保目标存储充足,操作前确认设备名,避免覆盖生产盘。
  • 文件系统级备份(ext2/3/4 等)
    • 安装 dump:yum install -y dump
    • 完全备份:dump -0uj -f /backup/root_fs_full_20260101.bz2 /
    • 增量备份:dump -1uj -f /backup/root_fs_incr_20260101.bz2 /(先有一次 0 级全备)
      适用:操作系统与本地文件系统的定期全量/增量备份。

五 自动化 校验 与 恢复演练

  • 自动化与调度
    • 将 DistCp/快照/配置归档等封装为脚本,使用 cron 定时执行;例如每日 02:00 全量、每小时增量(示例:0 2 * * * /opt/backup/backup_hdfs_distcp.sh)。
  • 备份校验与监控
    • 校验示例:对比源/备目录文件数量 hdfs dfs -count src 与 hdfs dfs -count backup
    • 健康与修复:使用 hdfs fsck 检查块健康,必要时配合 distcp 补齐缺失数据或修复异常块。
  • 恢复演练与注意事项
    • 定期在测试环境演练快照回滚、DistCp 回灌与 NameNode 元数据恢复,验证 RPO/RTO
    • 关键操作前确保有最新备份回滚路径,并在变更窗口内执行,避免业务高峰。

0