Hadoop启动集群后,发现datanode节点启动失败,查看datanode的日志,提示java.net.BindException: Port in use: localhost:0,如图所示:
java.net.BindException: Port in use: localhost:0 at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:919) at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:856) at org.apache.hadoop.hdfs.server.datanode.web.DatanodeHttpServer.二、解决方法(DatanodeHttpServer.java:104) at org.apache.hadoop.hdfs.server.datanode.DataNode.startInfoServer(DataNode.java:759) at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:1108) at org.apache.hadoop.hdfs.server.datanode.DataNode. (DataNode.java:428) at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2373) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2260) at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2307) at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2484) at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2508) Caused by: java.net.BindException: Cannot assign requested address at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:444) at sun.nio.ch.Net.bind(Net.java:436) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216) at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:914) ... 10 more
检查/etc/hosts文件的配置是否有问题,正确形式如下图所示,
- 不能删除默认的localhost 127.0.0.1
- IP 与 hostname形式是否正确
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.200.131 etc01 172.16.200.132 etc02 172.16.200.133 etc03
最后,重启HDFS:sbin/start-dsf.sh即可。



