1

嗨,伙计们,我遇到了一个非常奇怪的问题。我正在通过从我的机器上访问它来在另一个 VM 上安装 HBase 和 hadoop。现在我已经正确安装了 hadoop,然后伊朗它./start-all.sh 我看到所有进程都是运行完美。所以我做了 jps,我看到
jobtracker tasktracker
namenode
secondrynamenode
datanode
一切

运行良好。现在当我设置 hbase 然后启动 hadoop 和 Hbase 时,我看到 namenode 没有运行并且在日志中(来自 namenode 日志文件)我得到了这个例外

java.lang.InterruptedException: sleep interrupted
    at java.lang.Thread.sleep(Native Method)
    at org.apache.hadoop.hdfs.server.namenode.DecommissionManager$Monitor.run(DecommissionManager.java:65)
    at java.lang.Thread.run(Thread.java:662)
2012-05-19 08:46:07,493 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Number of transactions: 0 Total time for transactions(ms): 0Number of transactions batched in Syncs: 0 Number of syncs: 0 SyncTimes(ms): 0 
2012-05-19 08:46:07,516 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.net.BindException: Problem binding to localhost/23.21.195.24:54310 : Cannot assign requested address
    at org.apache.hadoop.ipc.Server.bind(Server.java:227)
    at org.apache.hadoop.ipc.Server$Listener.<init>(Server.java:301)
    at org.apache.hadoop.ipc.Server.<init>(Server.java:1483)
    at org.apache.hadoop.ipc.RPC$Server.<init>(RPC.java:545)
    at org.apache.hadoop.ipc.RPC.getServer(RPC.java:506)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:294)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:497)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1268)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1277)
Caused by: java.net.BindException: Cannot assign requested address
    at sun.nio.ch.Net.bind(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:126)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
    at org.apache.hadoop.ipc.Server.bind(Server.java:225)
    ... 8 more

2012-05-19 08:46:07,516 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG: 



我检查了端口并一次又一次地修改了所有 conf 文件,但没有找到解决方案。如果有人有想法,请指导我
-Thnaks 很多

4

1 回答 1

0

根据您的评论,您很可能与主机文件有关。

首先,您应该取消注释 127.0.0.1 localhost 条目,这是一个基本条目。

其次,您是否设置了 hadoop 和 hbase 以使用外部可访问服务运行 - 我对 hbase 不太了解,但对于 hadoop,服务需要绑定到非本地主机地址以进行外部访问,因此您的 master 和 slave 文件在 $HADOOP_HOME/conf 中需要命名实际的机器名称(或 IP 地址,如果您没有 DNS 服务器)。您的任何配置文件都不应提及 localhost,而应使用主机名或 IP 地址。

于 2012-05-19T16:08:32.837 回答