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




猜你喜欢

转载自blog.csdn.net/wjcquking/article/details/45306959