1.问题:
在使用Hadoop自带脚本时启动hdfs/yarn时出现的问题:mv: 无法获取"/usr/local/apps/hadoop-2.8.1/logs/hadoop-root-datanode-vm001.out.3" 的文件状态(stat): 没有那个文件或目录
在/usr/local/apps/hadoop-2.8.1/logs/hadoop-root-datanode-vm001.log查看log日志时显示:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain
日志信息:
2018-06-15 08:47:02,657 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain
java.net.BindException: Problem binding to [0.0.0.0:50010] java.net.BindException: 地址已在使用; For more details see: http://wiki.apache.org/hadoop/BindExceptionat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:801)
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:721)
at org.apache.hadoop.ipc.Server.bind(Server.java:552)
at org.apache.hadoop.ipc.Server.bind(Server.java:524)
at org.apache.hadoop.hdfs.net.TcpPeerServer.<init>(TcpPeerServer.java:52)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initDataXceiver(DataNode.java:1041)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:1294)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:481)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2601)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2489)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2536)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2721)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2745)
Caused by: java.net.BindException: 地址已在使用
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.hadoop.ipc.Server.bind(Server.java:535)
... 10 more
2.分析原因:
Hadoop集群master中的slaves文件未删除localhost;slaves文件所在路径为: /usr/local/apps/hadoop-2.8.1/etc/hadoop/slaves
3.解决方法:
在master主机的slaves文件中删除localhost即可。