温馨提示×

如何备份debian hadoop

小樊
39
2026-09-11 10:59:52
栏目: 智能运维

在 Debian 上备份 Hadoop 通常需要从 元数据(NameNode)、数据(HDFS 数据)、配置文件 和 任务/依赖 几个层面来考虑。下面给你一套实用、可落地的备份方案。


一、备份前准备

1. 确认 Hadoop 部署方式

  • 原生 Debian 安装(tar 包 / apt)
  • 是否启用 HA(JournalNode / ZooKeeper)
  • 是否使用 Kerberos

二、备份 NameNode 元数据(最重要)

1. 停止写入(推荐,但非必须)

hdfs dfsadmin -safemode enter

备份完成后:

hdfs dfsadmin -safemode leave

2. 备份 NameNode 目录

通常路径在:

/etc/hadoop/hdfs-site.xml 中:
dfs.namenode.name.dir

例如:

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

备份命令:

tar -czvf namenode-meta-$(date +%F).tar.gz /var/lib/hadoop-hdfs/dfs/name

✅ 这是最核心的备份


三、备份 HDFS 数据(可选)

方案 A:直接备份 DataNode 数据(不推荐)

dfs.datanode.data.dir

⚠️ 不推荐:数据量大、恢复复杂


方案 B:使用 distcp(推荐)

复制到另一集群或异地:

hadoop distcp hdfs://namenode:8020/ hdfs://backup-nn:8020/backup/

方案 C:使用快照(HDFS Snapshot)

hdfs dfs -allowSnapshot /user
hdfs dfs -createSnapshot /user snap01

四、备份配置文件(必做)

tar -czvf hadoop-conf-$(date +%F).tar.gz /etc/hadoop

包含:

  • core-site.xml
  • hdfs-site.xml
  • yarn-site.xml
  • mapred-site.xml
  • workers / slaves

五、备份 ZooKeeper(如果用 HA)

tar -czvf zk-data-$(date +%F).tar.gz /var/lib/zookeeper

六、备份系统用户与权限

getent passwd | grep hadoop
getent group | grep hadoop

七、自动化备份示例(cron)

0 2 * * * root /opt/backup/hadoop_backup.sh

hadoop_backup.sh 示例:

#!/bin/bash
DATE=$(date +%F)
tar -czf /backup/namenode-$DATE.tar.gz /var/lib/hadoop-hdfs/dfs/name
tar -czf /backup/hadoop-conf-$DATE.tar.gz /etc/hadoop

八、恢复基本流程(概述)

  1. 重新安装相同版本 Hadoop
  2. 恢复 /etc/hadoop
  3. 恢复 NameNode 元数据
  4. 启动 NameNode
  5. 启动 DataNode
  6. 离开安全模式

九、最佳实践建议

✅ 定期备份 NameNode 元数据
✅ 配置文件纳入 Git
✅ 使用异地备份(NFS / 对象存储)
✅ 定期做恢复演练


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

  • 是否 HA
  • Hadoop 版本
  • 是否 生产环境

我可以给你一份定制备份脚本。

0 踩