start-all.sh和jps後出現一下問題
[email protected]:/opt/hadoop-/bin# sh start-all.sh
starting namenode, logging to /opt/hadoop-/bin/../logs/hadoop-root-namenode-ubuntu.out
localhost: starting datanode, logging to /opt/hadoop-/bin/../logs/hadoop-root-datanode-ubuntu.out
localhost: starting secondarynamenode, logging to /opt/hadoop-/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:)
localhost: at sun.nio.ch.Net.bind(Net.java:)
localhost: at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:)
localhost: at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:)
localhost: at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:)
localhost: at org.apache.hadoop.http.HttpServer.start(HttpServer.java:)
localhost: at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.initialize(SecondaryNameNode.java:)
localhost: at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.<init>(SecondaryNameNode.java:)
starting jobtracker, logging to /opt/hadoop-/bin/../logs/hadoop-root-jobtracker-ubuntu.out
localhost: starting tasktracker, logging to /opt/hadoop-/bin/../logs/hadoop-root-tasktracker-ubuntu.out
[email protected]:/opt/hadoop-/bin# jps
Jps
NameNode
-- 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 root u IPv6 0t TCP *: (LISTEN)
root@ubuntu:~# kill -9 16073
這樣就kill掉了這個程序,端口占用問題解決了。重新start-all.sh,jps後就有DataNode,NameNode,JobTracker,TaskTracker