温馨提示×

centos hdfs怎样备份

小樊
46
2026-10-03 11:33:43
栏目: 智能运维

在 CentOS 上备份 HDFS 常见有几种方式,取决于你是想备份数据本身,还是备份元数据(NameNode),或者是整集群容灾。下面按常用场景给你梳理一下。


一、HDFS 数据备份(最常用)

1️⃣ 使用 distcp 跨集群备份(推荐)

适合:集群间数据备份、迁移

hadoop distcp hdfs://namenode1:8020/source/path hdfs://namenode2:8020/backup/path

示例(本地集群备份到备份集群):

hadoop distcp hdfs://centos1:8020/user/hive/warehouse hdfs://backup1:8020/backup/hive

✅ 优点

  • 支持增量(-update)
  • 带宽可控(-bandwidth)
  • 官方推荐

2️⃣ 使用 hdfs dfs -copyToLocal 备份到本地磁盘

适合:小数据量、临时备份

hdfs dfs -get /user/data /data/backup/

或:

hdfs dfs -copyToLocal /user/data /backup/

⚠️ 不建议大数据量使用(慢、占用本地空间)


3️⃣ 备份到远程服务器(rsync + 本地缓存)

hdfs dfs -get /user/data /local/backup/
rsync -avz /local/backup/ backup@remote:/hdfs_backup/

二、HDFS 元数据备份(NameNode 非常重要)

1️⃣ 备份 NameNode 元数据目录

默认路径(看你配置):

/etc/hadoop/hdfs-site.xml

常见路径:

/dfs/nn
/var/lib/hadoop-hdfs/cache/hdfs/dfs/name

备份命令:

tar -zcvf nn_backup_$(date +%F).tar.gz /dfs/nn

⚠️ 必须在 SafeMode 或低峰期操作


2️⃣ 使用 hdfs dfsadmin -fetchImage

只备份 fsimage(元数据镜像):

hdfs dfsadmin -fetchImage /backup/namenode

三、HDFS 快照备份(推荐生产环境)

1️⃣ 开启快照

hdfs dfsadmin -allowSnapshot /user/data

2️⃣ 创建快照

hdfs dfs -createSnapshot /user/data backup_20260101

3️⃣ 查看快照

hdfs lsSnapshottableDir

✅ 快照:

  • 零拷贝
  • 不影响性能
  • 可快速恢复

四、定时自动备份(CentOS 实战)

crontab 示例(每天凌晨备份)

0 2 * * * /usr/bin/hadoop distcp hdfs://centos1:8020/user/data hdfs://backup1:8020/backup/data >> /var/log/hdfs_backup.log

五、备份策略建议

场景 推荐方式
集群容灾 distcp
误删恢复 HDFS 快照
元数据保护 fsimage + nn 目录
小数据 copyToLocal

如果你能告诉我:

  • 是 单集群还是多集群
  • 数据量大概多少
  • 是否使用 Hive / HBase

我可以直接给你一套 可落地的备份方案 + 脚本。

0 踩