温馨提示×

centos如何备hdfs数据

小樊
36
2026-09-12 08:12:28
栏目: 智能运维

在 CentOS 上“备份 HDFS 数据”通常有多种方式,取决于你是要整体灾备目录级备份还是元数据备份。下面按常见场景给你一个清晰、可落地的说明。


一、HDFS 数据备份的常见方式

方式 1:使用 distcp(最常用、官方推荐)

适合:集群间备份、跨机房容灾

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

示例(本集群内备份):

hadoop distcp /user/hive/warehouse /backup/hive_warehouse_$(date +%F)

特点:

  • 支持增量(加 -update -append
  • 支持带宽限制(-bandwidth
  • 适合 TB~PB 级数据

方式 2:HDFS 快照(Snapshot)

适合:误删恢复、短期备份

hdfs dfsadmin -allowSnapshot /user/data
hdfs dfs -createSnapshot /user/data snap_20260121

恢复:

hdfs dfs -cp /user/data/.snapshot/snap_20260121/file /user/data/

优点:

  • 秒级创建
  • 不占额外空间(仅记录差异)

方式 3:导出到本地 / 对象存储

适合:冷备份、合规存档

导出到本地磁盘

hdfs dfs -get /data /backup/data_$(date +%F)

导出到对象存储(S3 / OSS / MinIO)

hadoop distcp /data s3a://bucket/backup/

方式 4:NameNode 元数据备份(非常重要)

适合:集群崩溃恢复

备份目录(默认):

/dfs/nn

手动备份:

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

或者使用:

hdfs dfsadmin -fetchImage /backup/nn_image

⚠️ 只备份数据不备份元数据 = 无法恢复


二、CentOS 上的定时备份示例(crontab)

crontab -e

每天凌晨 2 点备份:

0 2 * * * /usr/bin/hadoop distcp /user/data /backup/data_$(date +\%F)

三、推荐生产级备份方案(总结)

场景 推荐方式
跨集群容灾 distcp
误删恢复 HDFS 快照
合规存档 distcp → 对象存储
集群恢复 NN 元数据 + 数据备份

四、我可以继续帮你

如果你愿意,可以告诉我:

  • HDFS 版本(CDH / HDP / 原生)
  • 数据量级别
  • 是否跨集群 / 上云

我可以直接给你可执行的备份脚本

0