我在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 时,它无法解决它
有人知道其他可能的原因吗?