복붙노트

[HADOOP] "hadoop namenode -format"은 java.net.UnknownHostException를 반환합니다.

HADOOP

"hadoop namenode -format"은 java.net.UnknownHostException를 반환합니다.

현재 hadoop을 배우고 있으며 http://hadoop.apache.org/common/docs/current/single_node_setup.html에 정의 된대로 단일 노드 테스트를 설정하려고합니다.

ssh를 구성했습니다 (암호없이 기록 할 수 있습니다).

내 서버는 프록시 뒤에있는 인트라넷에 있습니다.

내가 뛰고 싶을 때.

다음 java.net.UnknownHostException 예외가 발생합니다.

$ bin/hadoop namenode -format
11/06/10 15:36:47 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = java.net.UnknownHostException: srv-clc-04.univ-nantes.prive3: srv-clc-04.univ-nantes.prive3
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 0.20.203.0
STARTUP_MSG:   build = http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203 -r 1099333; compiled by 'oom' on Wed May  4 07:57:50 PDT 2011
************************************************************/
Re-format filesystem in /home/lindenb/tmp/HADOOP/dfs/name ? (Y or N) Y
11/06/10 15:36:50 INFO util.GSet: VM type       = 64-bit
11/06/10 15:36:50 INFO util.GSet: 2% max memory = 19.1675 MB
11/06/10 15:36:50 INFO util.GSet: capacity      = 2^21 = 2097152 entries
11/06/10 15:36:50 INFO util.GSet: recommended=2097152, actual=2097152
11/06/10 15:36:50 INFO namenode.FSNamesystem: fsOwner=lindenb
11/06/10 15:36:50 INFO namenode.FSNamesystem: supergroup=supergroup
11/06/10 15:36:50 INFO namenode.FSNamesystem: isPermissionEnabled=true
11/06/10 15:36:50 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
11/06/10 15:36:50 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
11/06/10 15:36:50 INFO namenode.NameNode: Caching file names occuring more than 10 times 
11/06/10 15:36:50 INFO common.Storage: Image file of size 113 saved in 0 seconds.
11/06/10 15:36:50 INFO common.Storage: Storage directory /home/lindenb/tmp/HADOOP/dfs/name has been successfully formatted.
11/06/10 15:36:50 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: srv-clc-04.univ-nantes.prive3: srv-clc-04.univ-nantes.prive3
************************************************************/

그 후, hadoop이 시작되었습니다.

./bin/start-all.sh

하지만 로컬 파일을 복사하려고 할 때 또 다른 새로운 예외가있었습니다.

 bin/hadoop fs  -copyFromLocal ~/file.txt  file.txt

DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/lindenb/file.txt could only be replicated to 0 nodes, instead of 1
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1417)

이 문제를 어떻게 해결할 수 있습니까?

감사

해결법

  1. ==============================

    1.hadoop이 DNS 이름 (srv-clc-04.univ-nantes.prive3)을 IP 주소로 변환하려고하면 UnknownHostException이 발생합니다. 이것은 실패합니다.

    hadoop이 DNS 이름 (srv-clc-04.univ-nantes.prive3)을 IP 주소로 변환하려고하면 UnknownHostException이 발생합니다. 이것은 실패합니다.

    구성 파일에서 도메인 이름을 찾아 "localhost"로 바꿉니다. (또는 DNS를 업데이트하여 IP 주소로 이름을 확인하십시오)

  2. ==============================

    2.먼저 컴퓨터의 호스트 이름을 가져옵니다. $ hostname 명령을 실행하여 얻을 수 있습니다. 그런 다음 127.0.0.1 localhost hostname을 / etc / hosts 파일에 추가하십시오. 그게 문제를 해결해야합니다.

    먼저 컴퓨터의 호스트 이름을 가져옵니다. $ hostname 명령을 실행하여 얻을 수 있습니다. 그런 다음 127.0.0.1 localhost hostname을 / etc / hosts 파일에 추가하십시오. 그게 문제를 해결해야합니다.

  3. ==============================

    3.작성한 tmp 디렉토리에 소유권 문제가 있어야합니다. 그래서 hadoop이 tmp 디렉토리에 다음 명령을 실행하도록 수정하는 것을 쓸 수 없습니다.

    작성한 tmp 디렉토리에 소유권 문제가 있어야합니다. 그래서 hadoop이 tmp 디렉토리에 다음 명령을 실행하도록 수정하는 것을 쓸 수 없습니다.

    sudo chown hduser:hadoop /app/<your hadoop tmp dir>
    
  4. ==============================

    4.아래를 / etc / hosts에 추가하면 도움이 될 수 있습니다.

    아래를 / etc / hosts에 추가하면 도움이 될 수 있습니다.

    127.0.0.1   localhost   yourhostname
    
  5. from https://stackoverflow.com/questions/6307244/hadoop-namenode-format-returns-a-java-net-unknownhostexception by cc-by-sa and MIT license