日期:2014-05-16  浏览次数:20462 次

搬迁vm导致hadoop namenode启动失败的问题

原来在vmworkstation上部署了3台hadoop的分布式环境,运行一切正常。因为资源问题,我把其中一台的vm文件copy到另外一台实体机上,一共copy了3分,又打算部署一个同样的hadoop分布式环境。配置好ssh互相认证授权,机器建可以互相访问。所有配置都没有,除了机器名,相应改掉core-site.xml, mapred-site.xml里面的机器名称。执行start-all.sh,但namenode启动一会就挂了,报如下错误:

?

.......

?

InterruptedException.java.lang.InterruptedException: sleep

interrupted2010-05-21 01:02:37,555 INFO

org.apache.hadoop.hdfs.server.namenode.DecommissionManager:

Interrupted Monitorjava.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:619)

.......

?

ERROR

org.apache.hadoop.hdfs.server.namenode.NameNode:

java.net.BindException:

?Cannot assign requested address

? ? ? ? at sun.nio.ch.Net.bind(Native Method)

? ? ? ? at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119)

? ? ? ? at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)

? ? ? ? at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)

? ? ? ? at org.apache.hadoop.http.HttpServer.start(HttpServer.java:424)

? ? ? ? at org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:246)

?

?

网上找了很多资料,有说hosts里面机器名不对,应该改成domain,或者拿掉localhost这一行,也有说防火墙没关闭等等。但尝试过都还是不行。

?

最后上一个外国网站发现说是因为dfs.http.address指向的IP有问题,指向了本地IP,而应该是非本地IP。我记得我自己并没有配置这个property,但还是

检查下hdfs-site.xml,发现之前我配置过这个属性,IP指向另一个IP,但我把这个属性用“#” comment掉了,怎么还会生效呢。我拿掉comment,把

IP改成我新配的namenode机器名。

?

?

<property>

?

? ? ? <name>dfs.http.address</name>

?

? ?<value>master35:50070</value>

?

</property>


再重启,好了。搞了我很久的问题,但我还是很奇怪我已经comment掉了,应该不会生效的啊,神了。

?