0

Hadoop多节点设置时的问题。一旦我在Master上启动我的hdfs恶魔(bin / start-dfs.sh)

我确实得到了以下关于大师的日志

starting namenode, logging to /home/hduser/hadoop/libexec/../logs/hadoop-hduser-namenode-localhost.localdomain.out
slave: Warning: $HADOOP_HOME is deprecated.
slave:
slave: starting datanode, logging to /home/hduser/hadoop/libexec/../logs/hadoop-hduser-datanode-localhost.localdomain.out
master: Warning: $HADOOP_HOME is deprecated.
master:
master: starting datanode, logging to /home/hduser/hadoop/libexec/../logs/hadoop-hduser-datanode-localhost.localdomain.out
master: Warning: $HADOOP_HOME is deprecated.
master:
master: starting secondarynamenode, logging to /home/hduser/hadoop/libexec/../logs/hadoop-hduser-secondarynamenode-localhost.localdomain.out

我确实得到了以下奴隶@的日志

hadoop-hduser-datanode-localhost.localdomain.log 文件

有人可以告诉我,设置有什么问题。

2013-07-24 12:10:59,373 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.0.1:54310. Already tried 8 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-07-24 12:11:00,374 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.0.1:54310. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-07-24 12:11:00,377 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Call to master/192.168.0.1:54310 failed on local exception: java.net.NoRouteToHostException: No route to host
        at org.apache.hadoop.ipc.Client.wrapException(Client.java:1144)
        at org.apache.hadoop.ipc.Client.call(Client.java:1112)
4

1 回答 1

1

确保您的 NameNode 运行良好。如果它已经在运行,请查看连接是否有任何问题。您的 DataNode 无法与 NameNode 通信。确保您已将机器的 IP 和主机名添加到从站的/etc/hosts文件中。尝试 telnet 到 192.168.0.1:54310 看看是否可以连接。

向我们展示 NN 日志会很有帮助。

编辑 :

查看 wiki 对此问题的看法:当网络上的一台机器不知道如何将 TCP 数据包发送到指定的机器时,您会收到 TCP No Route To Host 错误 - 通常包装在 Java IOException 中。

一些可能的原因(非排他性列表):

  • 配置文件中远程机器的主机名错误。
  • 客户端的主机表 //etc/hosts 的目标主机 IPAddress 无效。
  • DNS 服务器的主机表中的目标主机 IP 地址无效。
  • 客户端的路由表(在 Linux 中为 iptables)是错误的。
  • DHCP 服务器正在发布错误的路由信息​​。
  • 客户端和服务器位于不同的子网上,并且未设置为相互通信。这可能是个意外,也可能是故意锁定 Hadoop 集群。
  • 这些机器正在尝试使用 IPv6 进行通信。Hadoop 目前不支持 IPv6
  • 主机的 IP 地址已更改,但长期存在的 JVM 正在缓存旧值。这是 JVM 的一个已知问题(搜索“java 负 DNS 缓存”以获取详细信息和解决方案)。

快速解决方案:重新启动 JVM。

这些都是网络配置/路由器问题。由于它是您的网络,因此只有您才能发现并追踪问题。

于 2013-07-24T08:57:16.867 回答