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.(NameNode.java:906)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.(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。

你可能感兴趣的:(hadoop)