我是 Linux 和 Hadoop 的新手,遇到了与这问题。我想我知道是什么原因造成的,但我不知道如何解决它(不知道他们说的“编辑 Hadoop 服务器的配置文件,使其包含其 NIC 的地址”是什么意思)。他们链接的另一篇文章说配置文件应该引用机器的外部可访问主机名。我认为我理解的没错,因为每个 Hadoop 配置文件都引用“master”,而 etc/hosts 文件通过其私有 IP 地址列出了 master。我该如何解决这个问题?
编辑:我有 5 个节点:、、、master
并且全部运行debian。这是 中的 hosts 文件:slavec
slaved
slavee
slavef
master
127.0.0.1 master
10.0.1.201 slavec
10.0.1.202 slaved
10.0.1.203 slavee
10.0.1.204 slavef
这是主机文件slavec
(在其他从属服务器中看起来很类似):
10.0.1.200 master
127.0.0.1 slavec
10.0.1.202 slaved
10.0.1.203 slavee
10.0.1.204 slavef
主文件位于master
:
master
从属文件位于master
:
master
slavec
slaved
slavee
slavef
masters 和 slaves 文件中slavex
只有一行:slavex
答案1
首先,这是一个很棒的 Hadoop 入门教程: http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
其次,分析您的环境,似乎 /etc/hosts、“master”和“slave”文件配置错误。您可以设置一个“hosts”文件并共享到所有节点。从您的场景来看,应该是这样的:
127.0.0.1 localhost
10.0.1.200 master
10.0.1.201 slavec
10.0.1.202 slaved
10.0.1.203 slavee
10.0.1.204 slavef
第三,应该配置“master”和“slaves”文件仅有的在“主”节点上。第一个文件仅包含将运行 JobTracker 和 NameNode 的服务器,第二个文件包含将运行 TaskTracker 和 DataNode 的所有服务器。