温馨提示×

centos怎么恢复hdfs节点

小樊
57
2026-10-09 08:33:13
栏目: 智能运维

在 CentOS 上“恢复 HDFS 节点”通常分几种场景,下面按最常见情况给你说明,你可以对照自己的情况操作。


一、DataNode 宕机 / 离线(最常见)

1. 检查节点状态

在 NameNode 上执行:

hdfs dfsadmin -report

看该 DataNode 是否 Dead。

2. 启动 DataNode

在出问题的 CentOS 节点上:

# 使用 hadoop 用户
sudo -u hdfs /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh start datanode

或(CDH/HDP 不同):

systemctl start hadoop-hdfs-datanode

3. 检查日志

tail -f /var/log/hadoop-hdfs/hdfs-datanode-*.log

二、DataNode 无法注册到 NameNode(clusterID 不一致)

现象

日志中常见:

Incompatible clusterIDs

解决方法(谨慎)

不要直接删数据目录(除非确认可丢)

方法 1:同步 clusterID(推荐)

从 NameNode 获取:

cat /dfs/nn/current/VERSION

修改 DataNode:

vi /dfs/dn/current/VERSION

把 clusterID 改成一致。

重启:

systemctl restart hadoop-hdfs-datanode

三、NameNode 故障恢复

1. NameNode 进程挂了

systemctl status hadoop-hdfs-namenode
systemctl start hadoop-hdfs-namenode

2. NameNode 元数据损坏

如果有 Secondary NameNode / Standby:

hdfs namenode -bootstrapStandby

如果是单节点:

hdfs namenode -format

⚠️ 会清空 HDFS 数据


四、节点被错误 Decommission(退役)

查看状态

hdfs dfsadmin -report

重新上线

编辑:

/etc/hadoop/conf/dfs.hosts

确保包含该节点 hostname

刷新:

hdfs dfsadmin -refreshNodes

五、CentOS 系统层面的恢复建议

# 防火墙
systemctl stop firewalld
systemctl disable firewalld

# 磁盘
df -h
ls -l /dfs/dn

# 时间同步
ntpdate cn.pool.ntp.org

六、快速判断你该用哪种

场景 操作
DataNode 挂了 启动 datanode
clusterID 不一致 修改 VERSION
NameNode 挂 启动 / bootstrap
节点被踢 refreshNodes
数据全丢 format

如果你能告诉我:

  • HDFS 版本(CDH / HDP / 原生)
  • 哪类节点(NameNode / DataNode)
  • 具体报错日志

我可以直接给你精确命令。

0 踩