我在aws上建立了一个2节点的hadoop集群,namenode和jobtracker在master上运行,tasktracker和datanode同时是master和slave。当我启动dfs时,它告诉我它启动namenode、两个节点上的datanode和辅助namenode。当我启动map reduce时,它还告诉我jobtracker已经启动,以及两个节点上的tasktracker。我开始运行一个示例来确保它正常工作,但它说只有一个tasktracker在namenodeweb界面上被使用。我检查了日志,从机上的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之外,它有相同的内容;工作追踪器运行的地方。我在apachewiki上找到了关于这个错误的信息http://wiki.apache.org/hadoop/servernotavailable 但我找不到他们说的任何可能的问题。因为我在aws上运行这两个节点,所以我还确保对这两个端口都授予了权限。
总而言之。
从节点上的tasktracker和datanode无法连接到主节点
我知道ip地址是对的,我查过多次了
我可以将这两个示例中的ssh无需密码就可以传递到彼此和自身中
这些港口被授予aws许可
根据日志,namenode和jobtracker运行正常
我将主服务器和从服务器的IP地址放在配置文件中,而不是主机名,因为当我这样做并相应地编辑/etc/hosts时,它无法解析它
有人知道其他可能的原因吗?
1条答案
按热度按时间u0sqgete1#
根据原始海报:
显然,这是因为namenode监听的是127.0.0.1:9000,而不是ip-10.x.x.ipofmaster:9000. 请参阅hadoop datanodes找不到namenode。我刚换了localhost:9000 in 配置文件的ip-10.x.x.x:9000和它的工作。