在 Debian 上备份 Hadoop 通常需要从 元数据(NameNode)、数据(HDFS 数据)、配置文件 和 任务/依赖 几个层面来考虑。下面给你一套实用、可落地的备份方案。
hdfs dfsadmin -safemode enter
备份完成后:
hdfs dfsadmin -safemode leave
通常路径在:
/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
✅ 这是最核心的备份
dfs.datanode.data.dir
⚠️ 不推荐:数据量大、恢复复杂
distcp(推荐)复制到另一集群或异地:
hadoop distcp hdfs://namenode:8020/ hdfs://backup-nn:8020/backup/
hdfs dfs -allowSnapshot /user
hdfs dfs -createSnapshot /user snap01
tar -czvf hadoop-conf-$(date +%F).tar.gz /etc/hadoop
包含:
tar -czvf zk-data-$(date +%F).tar.gz /var/lib/zookeeper
getent passwd | grep hadoop
getent group | grep hadoop
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
/etc/hadoop✅ 定期备份 NameNode 元数据
✅ 配置文件纳入 Git
✅ 使用异地备份(NFS / 对象存储)
✅ 定期做恢复演练
如果你愿意,可以告诉我:
我可以给你一份定制备份脚本。