最近一不小心误删了一些,tmp下的文件
结果重启hadoop的时候发现,日志报错
2015-09-19 00:06:01,621 INFO org.apache.hadoop.http.HttpServer2: HttpServer.start() threw a non Bind IOException
java.net.BindException: Port in use: 0.0.0.0:50070
at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:859)
at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:795)
at org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:132)
at org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:666)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:557)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:724)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:708)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1358)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1424)
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:854)
... 8 more
奇怪的是http://10.1.65.121:50070/dfshealth.html#tab-overview 显示正常启动
使用JPS查询发现,没有任何东东。。。。。
namenode,secondarynamenode,resourcemanager这些都跑哪去了。。。。没启动,怎么web监控显示正常?坑
了解JPS原理。。。jps查看起的进程需要读取/tmp(默认是这个)目录下的一些pid文件
如此,便可以推测,上次停止hadoop的时候并不成功,所以这次启动出现端口冲突的bug
现在要做的就是把这几个pid文件给补回来
如图所示,这次启动已经重新创建了几个改文件
ps -ef | grep namenode | grep -v grep
ps -ef | grep yarn | grep -v grep
ps -ef | grep datanode | grep -v grep
通过以上类似的命令,查询出对应得pid,修改对应文件的端口号
重新,运行stop-all.sh,即可以停止hadoop