在 Linux 上备份 HDFS 配置,通常分为配置文件备份和元数据备份两类。下面按常见、可靠的方式说明。
HDFS 配置主要在 $HADOOP_HOME/etc/hadoop/ 目录下,核心文件包括:
hdfs-site.xmlcore-site.xmlhadoop-env.shworkers(或 slaves)log4j.properties(可选)cd $HADOOP_HOME/etc
tar czf hdfs-config-backup-$(date +%F).tar.gz hadoop
scp hdfs-config-backup-*.tar.gz backup@backup-server:/data/hdfs_backup/
或传到对象存储:
hdfs dfs -put hdfs-config-backup-*.tar.gz /backup/config/
HDFS 的“真正数据”是元数据(fsimage + edits),不是配置文件。
在 hdfs-site.xml 中:
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/dfs/name</value>
</property>
先进入 Safe Mode(推荐)
hdfs dfsadmin -safemode enter
备份:
tar czf nn-metadata-$(date +%F).tar.gz /data/hadoop/dfs/name
退出 Safe Mode:
hdfs dfsadmin -safemode leave
如果你有 Secondary NameNode:
dfs.namenode.checkpoint.dirtar czf snn-checkpoint-$(date +%F).tar.gz /data/hadoop/dfs/namesecondary
如果有 HA:
hdfs-site.xmlcore-site.xmltar czf jn-editlog-$(date +%F).tar.gz /data/hadoop/dfs/journal
0 2 * * * tar czf /backup/hdfs-config-$(date +\%F).tar.gz $HADOOP_HOME/etc/hadoop
etc/hadoopdfs.namenode.name.dir| 备份内容 | 是否必须 |
|---|---|
| 配置文件 | ✅ |
| NameNode 元数据 | ✅✅ |
| JournalNode 日志 | HA 必须 |
| 数据块 | 不需要(可从 DataNode 恢复) |
如果你愿意,可以告诉我:
我可以给你一套可直接用的备份脚本。