我在具有两个VM(x1和x2)的单台机器上安装hadoop,并将x1(10.42.0.70)设置为namenode和datanode,x2(10.42.0.71)仅作为datanode。当我开始hadoop。我发现hadoop使用错误的IP地址分配x1和x2。 x1和x2都有IP地址127.0.1.1。我想知道hadoop如何从主机名找到节点的IP地址,问题出在哪里。谢谢你的任何提示。 enter image description here
答案 0 :(得分:1)
127.0.1.1是一个环回接口。你可以粘贴/ etc / hosts文件的内容吗?
另外请查看:https://serverfault.com/questions/424232/how-does-hadoop-decide-what-its-nodes-hostnames-are
答案 1 :(得分:0)
我遇到了同样的问题,发现原因是节点之间如何相互连接。通过使用localhost作为地址(在本例中为hdfs://localhost:9000
),将datanode配置为连接到本地namenode。似乎namenode使用这种连接来将数据节点地址解析为127.0.1.1
以下内容应有所帮助,添加到core-size.xml
:
<property>
<name>fs.defaultFS</name>
<value>hdfs://10.42.0.70:9000</value>
</property>