日期:2014-05-16 浏览次数:20462 次
原来在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掉了,应该不会生效的啊,神了。
?