温馨提示×

centos hdfs怎么备份

小樊
41
2026-08-20 05:21:29
栏目: 智能运维

CentOS 上备份 HDFS,常见做法取决于你是备份数据本身元数据,还是整体集群容灾。下面按最常用场景给你系统说明。


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

✅ 方法 1:使用 distcp(官方推荐)

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

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

✅ 优点

  • 支持增量、并行复制
  • 可跨集群
  • 生产环境首选

✅ 常用参数

hadoop distcp \
  -update \
  -skipcrccheck \
  hdfs://source/ hdfs://target/

✅ 方法 2:HDFS → 本地磁盘 / NFS

适合 小规模数据

hadoop fs -copyToLocal /user/hdfs/data /backup/hdfs_data

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

⚠️ 注意

  • NameNode 不能直接挂载磁盘
  • 建议在 DataNode 或备份机执行

✅ 方法 3:HDFS → 对象存储(推荐)

S3 / OSS / MinIO

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

需要配置 core-site.xml

<property>
  <name>fs.s3a.access.key</name>
  <value>xxx</value>
</property>
<property>
  <name>fs.s3a.secret.key</name>
  <value>xxx</value>
</property>

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

✅ 手动备份 NameNode 元数据

元数据目录一般在:

/dfs/nn

备份:

tar czvf namenode-meta-$(date +%F).tar.gz /dfs/nn

✅ 建议定期备份:

  • fsimage
  • edits
  • VERSION

✅ 使用 hdfs dfsadmin

1️⃣ 进入安全模式

hdfs dfsadmin -safemode enter

2️⃣ 保存命名空间

hdfs dfsadmin -saveNamespace

3️⃣ 退出安全模式

hdfs dfsadmin -safemode leave

三、HDFS 快照(推荐,轻量级)

✅ 开启快照

hdfs dfsadmin -allowSnapshot /data

✅ 创建快照

hdfs dfs -createSnapshot /data backup_2026_01_21

✅ 查看快照

hdfs dfs -ls /data/.snapshot

✅ 特点

  • 秒级创建
  • 不占额外空间(只记录差异)
  • 适合 误删恢复

四、定时自动备份(生产必备)

✅ 使用 crontab

crontab -e

示例(每天 2 点):

0 2 * * * /opt/backup/hdfs_backup.sh

hdfs_backup.sh

#!/bin/bash
BACKUP_DIR=/backup/hdfs
hadoop fs -copyToLocal /user/hdfs/data $BACKUP_DIR/$(date +%F)

五、备份策略建议(生产环境)

场景 推荐方案
数据容灾 distcp 到另一个 HDFS
误删恢复 HDFS Snapshot
元数据保护 定期备份 NameNode
冷数据归档 HDFS → S3 / OSS
全集群恢复 元 + 数据双备份

六、常见错误

❌ 直接在 NameNode 用 cp ✅ 用 distcpdfsadmin

❌ 不备份 fsimage ✅ 元数据比数据更重要


如果你愿意,我可以:

  • ✅ 给你 完整备份脚本
  • ✅ 按 CDH / HDP / 原生 Hadoop 定制
  • ✅ 设计 RPO / RTO 容灾方案

你现在用的是 单 NameNode 还是 HA

0