在hadoop Multinode集群上启动HDFS守护程序时出错

时间:2013-07-24 07:03:48

标签: hadoop hadoop-streaming hadoop-plugins hadoop-partitioning

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

我确实得到了Master

下面的日志
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)

1 个答案:

答案 0 :(得分:1)

确保您的NameNode运行正常。如果它已在运行,请查看连接是否有任何问题。您的DataNode无法与NameNode通信。确保已在从站的 / etc / hosts 文件中添加了计算机的IP和主机名。尝试telnet到192.168.0.1:54310,看看你是否能够连接。

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

修改:

了解维基对此问题的看法: 如果网络中的一台计算机不知道如何将TCP数据包发送到指定的计算机,则会在Java IOException中获得TCP无路由到主机错误-often。

一些可能的原因(不是排他性名单):

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

快速解决方案:重启JVM。

这些都是网络配置/路由器问题。由于它是您的网络,只有您可以查找并追踪问题。