0

我在aws上建立了一个2节点hadoop集群,namenode和jobtracker在master上运行,tasktracker和datanode都是master和slave。当我启动 dfs 时,它告诉我它启动了名称节点、两个节点上的数据节点和辅助名称节点。当我启动 map reduce 时,它​​还告诉我 jobtracker 以及两个节点上的 tasktracker 都已启动。我开始运行一个示例以确保它正常工作,但它说在 namenode Web 界面上只使用了一个 tasktracker。我检查了日志,并且从服务器上的 datanode 和 tasktracker 节点日志具有类似以下内容的内容

2013-08-08 21:31:04,196 INFO org.apache.hadoop.ipc.RPC: Server at ip-10-xxx-xxx-xxx/10.xxx.xxx.xxx:9000 not available yet, Zzzzz...
2013-08-08 21:31:06,202 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: ip-10-xxx-xxx-xxx/10.xxx.xxx.xxx:9000. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

namenode 在端口 9000 上运行,这在 datanode 日志中。在 tasktracker 日志中,除了端口 9001 之外,它具有相同的内容;jobtracker 运行的地方。我能够在 apache wiki 上找到有关此错误的信息 http://wiki.apache.org/hadoop/ServerNotAvailable 但我找不到他们所说的任何可能的问题。由于我在 aws 上运行两个节点,因此我还确保两个端口都授予了权限。

总之。

从节点上的tasktracker和datanode不会连接到主节点

我知道IP地址是正确的,我已经检查了很多次

我可以将两个实例的无密码 ssh 密码传递到对方和自己

端口在 aws 上被授予权限

根据日志,namenode 和 jobtracker 都运行良好

我将主机和从机的 ips 放在配置文件中,而不是主机名,因为当我这样做并相应地编辑 /etc/hosts 时,它无法解决它

有人知道其他可能的原因吗?

4

1 回答 1

0

根据原始海报:

好的,很明显,这是因为名称节点正在侦听 127.0.0.1:9000,而不是 ip-10.xxIpOfMaster:9000。请参阅Hadoop Datanodes 找不到 NameNode。我刚刚用 ip-10.xxx:9000 替换了配置文件中的 localhost:9000 并且它起作用了。

于 2017-11-27T15:05:15.623 回答