ahua671 发表于 2015-11-11 13:13:54

Hadoop启动后无法看到DataNode

  首先我查看NameNode没有发现错误,开始以为是Uuid的问题,以前碰到过,就是Namenode和Datanode的的Uuid不一致,导致不能识别,之后删除 /dfs/name(NameNode)和 /dfs/data(DataNode)的 current文件,这样就可以重新生成uuid,但是依旧有问题
  开始怀疑电脑之间不能识别,但是通过SSH,NameNode可以到任何一台DataNode, 每台DataNode还能到其他的DataNode,开始没想到是IP方面不能识别
  之后查看 nodeManager的日志,发现如下错误
  

java.net.NoRouteToHostException: No route to host
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494)
at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:607)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:705)
at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:368)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1521)
at org.apache.hadoop.ipc.Client.call(Client.java:1438)


slaves没有路由可以找到Master  
  解决方法
  1. 首先在Master上ping slave,发现都可以ping通,这是可以找到的
  2. 首先在slaves上ping Master,直接ping Master的hostname,发现根本没有办法ping 通,了解到 /etc/hosts里面的设置有问题,发现里面Master的IP写错了,修改修改过来之后,重新运行,正常运行
  如果不是这个问题,还有其他的解决方式
  1. 查看NameNode的9000端口,(core-site.xml文件中的fs.default.name节点配置)端口是否打开,因为所有的DataNode都要通过这个端口连接NameNode
  2. 关闭防火墙,因为防火墙可能会阻止其他的电脑连接。使用以下命令关闭防火墙
  service iptables stop




  





版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Hadoop启动后无法看到DataNode