【问题标题】:Hadoop: Namenode does not start. JPS Shows only DataNode to be runningHadoop:Namenode 没有启动。 JPS 仅显示正在运行的 DataNode
【发布时间】:2014-01-01 06:15:06
【问题描述】:

我正在用两个 Ubuntu 机器构建一个 hadoop 集群。我在每台机器上都有一个名为“hduser”的专用 Hadoop 用户。当我在主服务器上使用“start-dfs.sh”时,会在主服务器和从服务器上创建 DataNode。但是 NameNode 不是在 master 上创建的。即使我要求守护进程专门启动 NameNode,它也不起作用。

hduser@hbase1:~$ bash /usr/local/hadoop/sbin/hadoop-daemon.sh start namenode
starting namenode, logging to /usr/local/hadoop/logs/hadoop-hduser-namenode-hbase1.out
hduser@hbase1:~$ jps
20992 Jps
19492 DataNode

日志文件包含以下内容:

2013-12-31 14:45:52,585 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode:
Exception in namenode join
java.net.BindException: Port in use: 0.0.0.0:50070
at org.apache.hadoop.http.HttpServer.openListener(HttpServer.java:742)
at org.apache.hadoop.http.HttpServer.start(HttpServer.java:686)
at org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.
start(NameNodeHttpServer.java:153)
at org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:626)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:488)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:684)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:669)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1254)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1320)
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:174)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:139)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:77)
at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
at org.apache.hadoop.http.HttpServer.openListener(HttpServer.java:738)
... 8 more
2013-12-31 14:45:52,588 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1
2013-12-31 14:45:52,591 INFO org.apache.hadoop.hdfs.server.namenode.NameNode:SHUTDOWN_MSG:

【问题讨论】:

  • 你已经有东西绑定到端口 50070。namenode 使用该端口作为其 http 接口。

标签: ubuntu hadoop


【解决方案1】:

您的 50070 端口被其他服务占用。

http://docs.hortonworks.com/HDPDocuments/HDP1/HDP-Win-1.3.0/bk_installing_hdp_for_windows/content/win-troubleshoot-2-2.html

您可以将 core-site.xml 中的 Web 界面端口设置更改为 50070 以外的其他端口:

<property>
    <name>dfs.http.address</name>
    <value>50070</value>
</property>

【讨论】:

  • 优秀的解决方案。我的问题得到了解决。非常感谢。我的是在 Ubuntu 上
【解决方案2】:

对我来说似乎是一些与配置相关的问题。您是否在 core-site.xml 中指定 50070 作为 NN 使用的端口?50070 是 HDFS Web ui 使用的端口。此外,它不应该尝试绑定 0.0.0.0。你能告诉我你的配置文件吗??

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多