You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HDFS双节点集群连接异常求助:NameNode端口连接被拒绝

解决双节点HDFS集群的连接拒绝问题

从你的描述和netstat输出来看,核心问题是NameNode只绑定了本地回环地址127.0.0.1:54310——这就导致只有本机用localhost访问能通,用master主机名(对应192.168.X.X)或者从Slave节点访问都会被拒绝。下面是具体的解决步骤:

1. 修改HDFS配置,让NameNode监听全局可访问地址

编辑hdfs-site.xml,添加以下配置项,强制NameNode绑定到master主机对应的外网IP(或者0.0.0.0,允许所有网卡访问):

<property>
  <name>dfs.namenode.rpc-address</name>
  <value>master:54310</value>
  <description>The address where the NameNode IPC server listens on.</description>
</property>

这个配置会覆盖默认的绑定行为,让NameNode监听master主机名对应的IP地址,而不是仅局限于本地回环。

2. 确保所有节点的hosts配置完全一致

检查Master和Slave节点的/etc/hosts文件,确保都有正确的IP-主机名映射,比如:

192.168.X.X  master
192.168.Y.Y  slave

注意:两个节点的hosts内容必须完全相同,避免出现主机名解析不一致的问题。

3. 清理临时文件并重启HDFS集群

  • 先停止所有HDFS服务:
    stop-dfs.sh
    
  • 删除Master节点的Hadoop临时目录(即你core-site.xml里配置的/app/hadoop/tmp):
    rm -rf /app/hadoop/tmp/*
    
  • 重新格式化NameNode(注意:仅配置变更或首次启动时执行,不要频繁操作):
    hdfs namenode -format
    
  • 启动HDFS集群:
    start-dfs.sh
    

4. 验证配置生效

  • 在Master节点执行netstat -an | grep 54310,确认输出类似这样(监听的是你的192.168.X.X或者0.0.0.0,而非127.0.0.1):
    tcp 0 0 192.168.X.X:54310 0.0.0.0:* LISTEN
    
  • 在Slave节点测试连通性:
    telnet master 54310
    

如果能成功建立连接,说明配置已经生效。之后再测试HDFS的读写操作,应该就能正常工作了。

补充说明:你之前把core-site.xml里的fs.default.name改成localhost:54310能在Master本地工作,是因为此时客户端只会访问本地回环地址,但Slave节点无法通过localhost访问Master的NameNode,所以必须让NameNode监听全局可访问的IP。

内容的提问来源于stack exchange,提问作者user1289

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:51:38