hadoop - 更改主机名后的 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
解决方案
您的主机文件应如下所示
127.0.0.1 localhost
删除包含127.0.1.1
对主机名的硬编码引用的行
您的 DNS 服务器应该知道如何解析hnode1
,而不是让 Pi 指向自身,因为这样 HDFS 客户端在与 Namenode 通信时将被循环回 Pi。
您的 SSH 连接证明 DNS 似乎工作正常。
并将已弃用的属性重命名fs.default.name
为其新名称fs.defaultFS
推荐阅读
- google-apps-script - 可以在没有完全权限的情况下更新表单的电子表格(Google 应用脚本)
- python - Heroku Flask 应用程序成功提交但收到“应用程序错误”
- node.js - Ts and jest 测试路线的最佳方式
- qt - 如何使 QML ListView Width 成为其委托的宽度?
- java - [Spring boot] 使用 join spring data jpa 进行本机查询时出错
- dart - 如何将文本下移一行?输入不起作用
- powershell - Powershell:Get-Content 的 ForEach 行读取是否返回 EOF ..?
- delphi - 我可以将文件写入特定的集群位置吗?
- express - 模型函数似乎无法在数据库中正常运行——express.js / knex
- python - 如何从网络抓取中解析空数据框?无类型错误