2012-05-19 4 views
1

안녕하세요 여러분, 아주 이상한 문제에 갇혀 있습니다. HBase와 hadoop을 내 컴퓨터에서 액세스하여 다른 VM에 설치하고 있습니다. 이제 hadoop을 제대로 설치하고 iran을 설치했습니다 .//start- all.sh와 내가 보는 모든 프로세스가 perfectly.So을 실행하고 있는지 내가 JPS을하고 난
JobTracker에
tasktracker
네임 노드
secondrynamenode
데이터 노드가

모든 것이 good.Now 때 설정 HBase를 실행중인 것을보고 그리고 나서 hadoop과 Hbase를 시작했는데 namenode가 실행 중이 아니고 namenode 로그 파일에서 로그에 있음을 알았습니다. 내가 포트를 확인이 예외
NameNode : java.net.BindException

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: 



를 T와 모든 conf의 다시하고 다시 파일 만 해결책을 찾지 못했습니다 조정한다. 누구든지 아이디어가 있다면 안내해주세요.
Thnaks alot

+0

'ping localhost'를 콘솔에 입력하면 무엇이 표시됩니까? 제 생각에는 localhost가 127.0.0.1이 아닌 다른 것으로 해결하는 것과 관련이있을 수 있습니다 :'localhost/23.21.195.24 : 54310'이 당신의 로그에있는 것입니다. 최근에/etc/hosts 파일을 수정 했습니까? –

+0

예 제가 수정했습니다 - 내/etc/hosts에 (23.21.195.24 hbase) 항목을 넣었고 내/etc/hosts 파일이 좋아 보이도록 내 127.0.01 localhost 항목에 주석을 달았습니다 (# 127.0.01 localhost) - 23.21.195.24 hbase xyz.hbase.com localhost) – khan

+0

이 오류가 발생하는 다른 사람들을위한 제안 : 좀비 프로세스가 아직 9000에 바인딩되어 있지 않은지 확인하십시오. 지금 당장 나에게 일어난 일입니다. 내가 한 첫 번째 작업은'jps -l'을 실행하여 namenode가 아직 실행 중인지 확인하는 것이지, 나타나지 않았기 때문에 명백한 진단을 배제했습니다. 나는 netstat -nl |을 돌릴 때까지 이것을 고치려고 많은 시간을 낭비했다. grep 9000'을 사용했고 실제로 뭔가가 9000에 바인딩된다는 것을 알았습니다. –

답변

0

귀하의 의견에 따르면 아마도 호스트 파일과 관련이있을 것입니다.

먼저 로컬 호스트 항목 인 127.0.0.1의 주석 처리를 제거해야합니다. 이는 기본적인 항목입니다.

둘째, 외부 액세스 가능 서비스로 실행되도록 hadoop 및 hbase를 설정 했습니까? hbase에는 너무 많지 않지만 hadoop에 대해서는 서비스가 외부 액세스를 위해 비 로컬 호스트 주소에 바인딩되어야합니다. $ HADOOP_HOME/conf의 마스터와 슬레이브 파일은 실제 컴퓨터 이름 (또는 DNS 서버가없는 경우 IP 주소)의 이름을 지정해야합니다. 어떤 구성 파일도 localhost를 언급하지 않아야하며 호스트 이름이나 IP 주소를 사용해야합니다.

관련 문제