首页 > 解决方案 > 更改主机名后的 java.net.ConnectException

问题描述

我已经在独立模式下设置了 hadoop,默认主机名为“raspberrypi”。

事情似乎奏效了。

然后我通过执行以下操作将主机名更改为hnode1

echo "hnode1" | sudo tee /etc/hostname

/etc/hosts我改变了

127.0.0.1 raspberrypi

127.0.0.1 hnode1

我所做的唯一其他更改是在 core-site.xml 中:

  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
  </property>

改为

  <property>
    <name>fs.default.name</name>
    <value>hdfs://hnode1:9000</value>
  </property>

但是,在尝试从本地文件系统复制到 hdfs 时重新启动服务后,我收到此错误:

Call From hnode1/127.0.1.1 to hnode1:9000 failed on connection exception: java.net.ConnectException: Connection refused; 

我也尝试过重新启动,我已经验证我可以 ssh 到hnode1

标签: hadoop

解决方案


您的主机文件应如下所示

127.0.0.1 localhost

删除包含127.0.1.1对主机名的硬编码引用的行

您的 DNS 服务器应该知道如何解析hnode1,而不是让 Pi 指向自身,因为这样 HDFS 客户端在与 Namenode 通信时将被循环回 Pi。

您的 SSH 连接证明 DNS 似乎工作正常。

并将已弃用的属性重命名fs.default.name为其新名称fs.defaultFS


推荐阅读