在 Linux 上“恢复 HDFS 配置”通常分几种场景,下面按常见情况给你一套可操作的恢复思路。
一般在:
$HADOOP_HOME/etc/hadoop/
常见文件:
core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlhadoop-env.sh如果你之前有备份:
cp /backup/hadoop/core-site.xml $HADOOP_HOME/etc/hadoop/
cp /backup/hadoop/hdfs-site.xml $HADOOP_HOME/etc/hadoop/
如果目录被 Git 管理:
cd $HADOOP_HOME/etc/hadoop
git status
git checkout -- hdfs-site.xml
从正常节点拷贝:
scp namenode2:$HANDOOP_HOME/etc/hadoop/hdfs-site.xml \
$HADOOP_HOME/etc/hadoop/
适用于 NameNode 元数据丢失但 Secondary 正常:
# 停止 NameNode
stop-dfs.sh
# 拷贝 fsimage
scp secondary:/path/to/namesecondary/* \
$HADOOP_HOME/data/dfs/name/
# 启动
start-dfs.sh
如果是 HA:
hdfs haadmin -getServiceState nn1
hdfs haadmin -transitionToActive nn2
hdfs fsck / -files -blocks -locations
hdfs fsck / -delete
hdfs dfs -setrep -R 3 /
如果想“重来”:
rm -rf $HADOOP_HOME/etc/hadoop/*
cp $HADOOP_HOME/etc/hadoop.template/* $HADOOP_HOME/etc/hadoop/
如果你能告诉我:
我可以直接给你精确恢复命令。