start-all.sh和jps后出现一下问题
root@ubuntu:/opt/hadoop-0.20.2/bin# sh start-all.sh
starting namenode, logging to /opt/hadoop-0.20.2/bin/../logs/hadoop-root-namenode-ubuntu.out
localhost: starting datanode, logging to /opt/hadoop-0.20.2/bin/../logs/hadoop-root-datanode-ubuntu.out
localhost: starting secondarynamenode, logging to /opt/hadoop-0.20.2/bin/../logs/hadoop-root-secondarynamenode-ubuntu.out
localhost: Exception in thread "main" java.net.BindException: Address already in use
localhost: at sun.nio.ch.Net.bind0(Native Method)
localhost: at sun.nio.ch.Net.bind(Net.java:444)
localhost: at sun.nio.ch.Net.bind(Net.java:436)
localhost: at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
localhost: at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
localhost: at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
localhost: at org.apache.hadoop.http.HttpServer.start(HttpServer.java:425)
localhost: at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.initialize(SecondaryNameNode.java:165)
localhost: at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.<init>(SecondaryNameNode.java:115)
starting jobtracker, logging to /opt/hadoop-0.20.2/bin/../logs/hadoop-root-jobtracker-ubuntu.out
localhost: starting tasktracker, logging to /opt/hadoop-0.20.2/bin/../logs/hadoop-root-tasktracker-ubuntu.out
root@ubuntu:/opt/hadoop-0.20.2/bin# jps
45103 Jps
44501 NameNode
39024 -- process information unavailable
“Exception in thread “main” java.net.BindException: Address already in use”这个是端口占用问题
有前辈给我指出一道路:**先从日志中找是哪个端口被占用了
然后在“netstat -anp”查看是哪个进程占用了该端口,kill掉应该就可以了**
自己的解决办法:首先了解一下内容,DataNode,NameNode,JobTracker,TaskTracker各个端口号
Hadoop的常用WEB端口
Hadoop对外提供了可供访问的http server,开放了很多端口,下面介绍常用的几个端口:
50070端口
查看NameNode状态;
该端口的定义位于core-default.xml中,可以在core-site.xml中修改;
如果通过该端口看着这个页面,以为着NameNode节点是存活的。
50075端口
查看DataNode;
该地址和端口的定义位于hdfs-default.xml中,可以在hdfs-site.xml中修改。
50090端口
查看SecondaryNameNode。
50030端口
查看JobTracker状态的;
该端口定义在mapred-default.xml中,可以在mapred-site.xml中修改。
50060端口
查看TaskTracker
该端口定义位于mapred-default.xml,可以在mapred-site.xml中修改。
其次,用一下命令解决:
root@ubuntu:~# lsof -i:50090
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 16073 root 52u IPv6 74371 0t0 TCP *:50090 (LISTEN)
root@ubuntu:~# kill -9 16073
这样就kill掉了这个进程,端口占用问题解决了。重新start-all.sh,jps后就有DataNode,NameNode,JobTracker,TaskTracker