Hadoop下jps沒有datanode,且data文件夾沒有current

首先,我們再配置好hadoop後,利用

./bin/hdfs namenode -format

格式化一下namenode,再

$ ./sbin/start-dfs.sh
$ jps

開啓之後,發現沒有datanode,按照網上的方法,卻發現我的tmp/dfs/data下面沒有任何文件,而tmp/hdfs/name/下面有current,所以很是苦惱。

後來查詢日誌得知logs/下:

vim hadoop-hadoop-datanode-ubuntu.log

大概這樣

INFO org.apache.hadoop.http.HttpServer2: HttpServer.start() threw a non Bind IOException
java.net.BindException: Port in use: 0.0.0.0:50020
    at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:998)
    at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:935)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:171)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:842)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:693)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:906)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:885)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1626)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1694)
Caused by: java.net.BindException: Address already in use
    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.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
    at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:993)
    ... 8 more

端口重複了。

通過命令

 lsof -i:50020

查看進程id,kill掉該進程然後重啓hadoop即可

kill -9 “PID”

這個PID下面的就是對應的進程號。

再關掉

./sbin/stop-all.sh

刪除./tmp/dfs/下的文件,再格式化

 hdfs namenode -format

重啓

./sbin/start-dfs.sh

輸入jps,即可有datanode。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章