搬遷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>
原文由站長網http://www.software8.co/wzjs/qtyy/2559.html原創投稿
再重啟,好了。搞了我很久的問題,但我還是很奇怪我已經comment掉了,應該不會生效的啊,神了。