2012-01-11 19 views
31

Estoy tratando de instalar Hadoop en Ubuntu 11.10. Me establecer la variable de JAVA_HOME en el archivo conf/hadoop-env.sh a:Hadoop: «ERROR: JAVA_HOME no está configurado»

# export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk 

y luego ejecutar estos comandos (Funcionamiento autónomo):

$ mkdir input 
$ cp conf/*.xml input 
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 
$ cat output/* 

pero tengo el siguiente error al ejecutar el tercer comando:

ERROR: JAVA_HOME no está establecido

¿La variable JAVA_HOME no está configurada correctamente?

+6

es eso '#' realmente allí? Si es así, eso significa que la línea es un comentario. –

+0

@DaveNewton publica eso como respuesta, así que puedo votarlo. –

+1

Aquí hay una solución para este problema. El problema se refiere a los antiguos conceptos de caparazón interactivo/no interactivo y de inicio de sesión/no inicio de sesión: http://thinkinginsoftware.blogspot.com/2012/06/hadoop-pob-and-error-javahome-is-not.html –

Respuesta

10

Escriba echo $JAVA_HOME en su terminal para asegurarse de que su JAVA_HOME esté configurado.

También puede escribir java -version para saber qué versión de Java está utilizando en realidad.

Por cierto, la lectura de su descripción parece que su verdadera cancelación

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk 

en el archivo conf/hadoop-env.sh, debe escribirlo en su terminal o en ~/.bashrc o ~/.profile continuación, escriba source < path to modified file >.

+1

sí, el # es por defecto allí, así que lo elimino y probé estos 4 comandos nuevamente y funciona. pero cuando escribo "echo $ JAVA_HOME", no obtengo su valor y cuando escribo "java -version" obtengo "java version" 1.6.0_23 ". ¿Es correcto? OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23 ~ pre11-0ubuntu1.11.10) OpenJDK Server VM (compilación 20.0-b11, modo mixto) ". ¿Es correcto? – koukou

+1

Si no aparece nada escribiendo echo $ JAVA_HOME", significa que la variable Environnement no se establece correctamente Tipo sudo vi ~/.bashrc a continuación, añadir en el archivo:. Export JAVA_HOME = < java_path > export PATH = $ PATH:. < java_path >/bin A continuación, escriba sudo source ~/.bashrc –

+1

Estoy siguiendo este tutorial http://hadoop.apache.org/common/docs/stable/single_node_setup.html#Download: el JAVA_HOME está definido solo en conf/hadoop-env.sh .I agregué export PATH = $ PATH: < java_path >/bin en el archivo hadoop-env.sh, escribiendo "echo $ PATH" aparece la ruta, pero al escribir "echo $ JAVA_HOME" aparece un espacio !!! – koukou

41

Asegúrese de que ha retirado la etiqueta de comentario y ha cambiado su JAVA_HOME en el hadoop-env.sh, así como la adecuada .bashrc y/o .profile:

# export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk 

debería ser

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk 

Puede establecer su JAVA_HOME y PATH para todos los usuarios (asegúrese de no haber establecido previamente esto en la ruta incorrecta) en /etc/profile.

Además, no olvide activar la nueva modificación desconectando/entrando o ejecutando source /etc/profile.

+0

yes- brilliant! –

24

Debe establecer JAVA_HOME en el archivo hadoop-env.sh que también se encuentra en el directorio de configuración de Hadoop. Por defecto, se comenta la línea de configuración JAVA_HOME.

+0

En la versión actual 2.9.0 está presente pero reenvía el JAVA_HOME del entorno actual. El doco allí sugiere que este valor debe ser codificado para las configuraciones distribuidas. Descubrí que en la operación pseudodistribuida de nodo único ayuda a tenerlo aquí. YMMV. – russellpierce

-7
  • hadoop ERROR: JAVA_HOME no está establecido

de error anterior es debido al espacio entre dos palabras.

Por ejemplo: Java encuentra en C: \ Archivos de programa \ Java -> espacio entre Programa y archivos haría que el problema anterior. Si elimina el espacio, no mostraría ningún error.

6

Usted puede agregar en su archivo .bashrc:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") 

y cambiará dinámicamente cuando actualice sus paquetes.

1

Copie este archivo export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk a hadoop-env.sh.

JAVA_HOME es la ubicación donde están presentes los binarios de Java.

0

probé las soluciones anteriores pero los siguientes trabajé en mi

export JAVA_HOME=/usr/java/default 
Cuestiones relacionadas