Agradecemos tu apoyo para difundir nuestros tutoriales acerca de las ciencias informáticas.
Solución:
Esta respuesta se aplica a la versión 2.6.0 y anteriores de Hadoop. Deshabilitar SIP y crear un enlace simbólico proporciona una solución. Una mejor solución es arreglar hadoop-config.sh para que recoja su JAVA_HOME correctamente
En HADOOP_HOME/libexec/hadoop-config.sh
busque la condición if a continuación # Attempt to set JAVA_HOME if it is not set
Elimine los paréntesis adicionales en las líneas de exportación JAVA_HOME como se muestra a continuación. Cambia esto
if [ -x /usr/libexec/java_home ]; then
export JAVA_HOME=($(/usr/libexec/java_home))
else
export JAVA_HOME=(/Library/Java/Home)
fi
para
if [ -x /usr/libexec/java_home ]; then
// note that the extra parentheses are removed
export JAVA_HOME=$(/usr/libexec/java_home)
else
export JAVA_HOME=/Library/Java/Home
fi
Reinicie el hilo después de haber realizado este cambio.
Se puede encontrar información más detallada aquí https://issues.apache.org/jira/browse/HADOOP-8717 y parece que Hadoop 3.0.0-alpha1 es la primera versión con la corrección.
A partir de YARN
usando los siguientes comandos en lugar de $HADOOP_PREFIX/sbin/start-yarn.sh
me solucionó este problema.
$HADOOP_PREFIX/sbin/yarn-daemon.sh start resourcemanager;
$HADOOP_PREFIX/sbin/yarn-daemon.sh start nodemanager;
como se menciona en el siguiente enlace
https://issues.apache.org/jira/browse/HADOOP-8717
Nada de lo anterior me ayudó. Lo que arreglé para mí fue:
Configuración de la hadoop-env.sh
en /usr/local/Cellar/hadoop/etc/hadoop/hadoop-env.sh
Cambié esto:
export JAVA_HOME=$JAVA_HOME
A esto:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
Todo el crédito a este usuario: https://stackoverflow.com/a/39676720/992347
Salud
Si te sientes motivado, tienes la libertad de dejar un tutorial acerca de qué le añadirías a este enunciado.