Hadoop Linux系统如何备份
小樊
35
2026-01-01 06:09:59
Hadoop Linux系统备份实操指南
一 备份范围与总体策略
- 备份对象应覆盖三层:
- HDFS业务数据(可按目录/表/库粒度);
- NameNode元数据(fsimage 与 edits,支持时间点恢复);
- 配置文件与脚本(/etc/hadoop/conf、部署与备份脚本等)。
- 策略建议:采用每周全量 + 每日增量的组合;对关键目录启用HDFS快照获取快速回滚能力;跨集群或异地使用DistCp做定期拷贝;对配置与脚本做版本化归档并纳入备份窗口。
二 HDFS数据备份方法
- 使用 HDFS 快照(Snapshot)做时间点回滚
- 开启快照:hdfs dfsadmin -allowSnapshot /path/to/dir
- 创建快照:hdfs dfs -createSnapshot /path/to/dir snap_20260101
- 查看快照:hdfs dfsadmin -listSnapshots /path/to/dir
- 回滚/恢复:hdfs dfs -cp /path/to/dir/.snapshot/snap_20260101 /path/to/dir_restored
- 删除快照:hdfs dfs -deleteSnapshot /path/to/dir snap_20260101
适用:误删/误改后的快速回滚,或做短期时间点保护。
- 使用 DistCp 做跨目录/跨集群/异地备份
- 同集群备份:hadoop distcp hdfs://nn1:8020/src hdfs://nn1:8020/backup/20260101
- 跨集群备份:hadoop distcp hdfs://src-nn:8020/data hdfs://backup-nn:8020/backup/20260101
- 增量思路:基于上次备份的时间戳/目录标记做定期 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 元数据备份(支持时间点恢复)
- 进入安全模式:hdfs dfsadmin -safemode enter
- 保存命名空间:hdfs dfsadmin -saveNamespace
- 按你的部署将 ${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;
- 关键操作前确保有最新备份与回滚路径,并在变更窗口内执行,避免业务高峰。