2011-06-10 20 views
5

actualmente estoy aprendiendo y estoy tratando de configurar una sola prueba de nodo como se define en http://hadoop.apache.org/common/docs/current/single_node_setup.html"-format hadoop NameNode" devuelve un java.net.UnknownHostException hadoop

He configurado SSH (Puedo abrir una sesión sin una contraseña).

Mi servidor está en nuestra intranet, detrás de un proxy.

cuando estoy tratando de correr

bin/hadoop NameNode -format

me sale el siguiente java.net.UnknownHostException excepción:

$ 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 
************************************************************/ 

Después de eso, hadoop se inició

./bin/start-all.sh 

pero había otra nueva excepción cuando traté de copiar un archivo local:

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) 

cómo puedo solucionar este problema por favor?

Gracias

+0

Recibo un error similar al formatear mi NameNode en la distribución Cloudera en una máquina virtual CentOS. ¿Puedes decirme qué hiciste con tu archivo/etc/hosts? Actualmente tengo las siguientes líneas: –

+0

'127.0.0.1 localhost.localdomain localhost' y' :: 1 localhost6.localdomain6 localhost6' –

Respuesta

4

UnknownHostException se inicia cuando hadoop intenta resolver el nombre DNS (SRV-CLC-04.univ-nantes.prive3) a una dirección IP. Esto falla

Busque el nombre de dominio en los archivos de configuración y reemplácelo por "localhost". (O actualice el DNS hasta resolver el nombre en una dirección IP)

+0

Gracias, agregué un alias en/etc/hosts – Pierre

+0

Gracias, yo también tuve la misma actualización de issu/archivo etc/hosts ayudado – Rak

0

El directorio tmp que ha creado debe tener problemas de propiedad. Por eso hadoop no es capaz de escribir en el directoy tmp para solucionarlo ejecute los siguientes comandos

sudo chown hduser:hadoop /app/<your hadoop tmp dir> 
0

añadiendo el siguiente para /etc/hosts pueden ayudar:

127.0.0.1 localhost yourhostname 
3

En primer lugar obtener el nombre de host del equipo . Se puede obtener ejecutando el comando $hostname. Luego agregue 127.0.0.1 localhost hostname en el archivo /etc/hosts. Eso debería resolver el problema.