温馨提示×

centos怎样备份hdfs数据

小樊
36
2026-09-15 14:41:18
栏目: 智能运维

在 CentOS 上备份 HDFS 数据,常见做法有几种,取决于你是整集群备份、单目录备份,还是容灾级别备份。下面按实用场景给你讲。


一、使用 hdfs dfs 命令直接备份(最常用)

1. 备份 HDFS 目录到本地

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

适合:

  • 小数据量
  • 临时备份
  • 排查问题

恢复:

hdfs dfs -put /backup/hdfs_data /user/hadoop/data

2. 备份 HDFS 到另一个 HDFS 目录(同集群)

hdfs dfs -cp /user/hadoop/data /backup/hdfs_data_$(date +%F)

二、跨集群备份(推荐生产使用)

使用 distcp(分布式拷贝)

hadoop distcp hdfs://nn1:8020/source hdfs://nn2:8020/backup

特点:

  • 支持跨集群
  • 支持增量(需配合 -diff
  • 带宽可控

示例(限速):

hadoop distcp -bandwidth 10 hdfs://nn1:8020/data hdfs://nn2:8020/backup

三、使用快照(Snapshot)备份(推荐)

1. 开启目录快照

hdfs dfsadmin -allowSnapshot /user/hadoop/data

2. 创建快照

hdfs dfs -createSnapshot /user/hadoop/data snapshot_$(date +%F)

3. 查看快照

hdfs dfs -ls /user/hadoop/data/.snapshot

4. 删除快照

hdfs dfs -deleteSnapshot /user/hadoop/data snapshot_20260101

✅ 快照几乎不占空间,适合时间点备份


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

1. 备份 dfs.namenode.name.dir

通常在:

/dfs/nn

手动或脚本拷贝:

cp -r /dfs/nn /backup/nn_$(date +%F)

2. 定期备份 fsimage

hdfs dfsadmin -fetchImage /backup/fsimage

五、使用企业级方案(生产推荐)

  • HDFS → S3 / OSS / MinIO
hadoop distcp hdfs://nn:8020/data s3a://bucket/backup
  • CDH / HDP
    • Cloudera Manager 备份
    • Ambari + 快照策略

六、CentOS 定时备份示例(crontab)

0 2 * * * /usr/bin/hdfs dfs -createSnapshot /user/hadoop/data snapshot_$(date +\%F)

建议组合方案

✅ 日常:HDFS Snapshot
✅ 周级:distcp 到备份集群
✅ 月级:NameNode 元数据备份

如果你能告诉我:

  • 单集群还是多集群
  • 数据量级别
  • 是否上云

我可以给你一套具体可执行的备份方案

0