温馨提示×

centos怎样备份hdfs

小樊
43
2026-10-09 08:38:15
栏目: 智能运维

在 CentOS 上备份 HDFS(Hadoop 分布式文件系统),常见做法有几种,取决于你是整机/集群备份、数据备份还是元数据备份。下面按实用场景给你一个清晰总结。


一、最常用:使用 distcp 备份 HDFS 数据(推荐)

1. 备份到另一个 HDFS 集群

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

2. 备份到同一集群不同目录

hadoop distcp hdfs:///data hdfs:///data_backup_$(date +%F)

✅ 优点:

  • 官方支持
  • 支持增量(配合 -update -diff)
  • 适合大规模数据

二、本地文件系统备份(CentOS 本地磁盘)

1. 从 HDFS 导出到本地

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

2. 从本地恢复回 HDFS

hadoop fs -put /backup/hdfs_data /user/hadoop/data

⚠ 注意:

  • 不适合超大数据量
  • 本地磁盘要足够大

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

HDFS 数据丢了可以恢复,但 NameNode 元数据丢了就完了。

1. 备份 dfs.name.dir 目录

默认路径(看你 hdfs-site.xml):

/etc/hadoop/hdfs-site.xml

通常包含:

/dfs/name

备份命令:

tar czf namenode_metadata_$(date +%F).tar.gz /dfs/name

2. 启用 Secondary NameNode / Checkpoint

确保:

<property>
  <name>dfs.namenode.checkpoint.dir</name>
  <value>/dfs/namesecondary</value>
</property>

四、使用快照(Snapshot)备份(HDFS 原生)

1. 启用快照

hdfs dfsadmin -allowSnapshot /data

2. 创建快照

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

3. 查看快照

hdfs dfs -ls /data/.snapshot

✅ 适合:

  • 短期备份
  • 快速回滚

五、定时自动备份(CentOS crontab)

crontab -e

示例(每天 2 点备份):

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

六、企业级方案(可选)

  • HDFS → S3 / OSS(对象存储)
  • 使用 Apache Ambari / Cloudera Manager
  • 使用 HBase / Hive 自身导出工具

总结建议

场景 推荐方式
集群间备份 distcp
本地备份 get/put
元数据 备份 name.dir
快速回滚 snapshot
自动备份 crontab

如果你能告诉我:

  • 单节点还是集群
  • 数据量大小
  • 是否生产环境

我可以给你一套具体可执行的备份脚本。

0 踩