como - hadoop on windows>- master
Error al ubicar el binario de winutils en el camino binario de hadoop (12)
Recibo el siguiente error al iniciar namenode para la última versión de hadoop-2.2. No encontré el archivo winutils exe en la carpeta de hadoop bin. Intenté a continuación comandos
$ bin/hdfs namenode -format
$ sbin/yarn-daemon.sh start resourcemanager
ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null/bin/winutils.exe in the Hadoop binaries.
at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:863)
Acabo de encontrarme con este problema mientras trabajaba con Eclipse. En mi caso, tuve la versión correcta de Hadoop descargada (hadoop-2.5.0-cdh5.3.0.tgz), extraje el contenido y lo coloqué directamente en mi disco C. Después fuí a
Eclipse-> Configuraciones de depuración / ejecución -> Entorno (pestaña) -> y agregadas
variable: HADOOP_HOME
Valor: C: / hadoop-2.5.0-cdh5.3.0
Configure la variable HADOOP_HOME en Windows para resolver el problema.
Puede encontrar la respuesta en org/apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/apache/hadoop/util/Shell.java
:
IOException de
public static final String getQualifiedBinPath(String executable)
throws IOException {
// construct hadoop bin path to the specified executable
String fullExeName = HADOOP_HOME_DIR + File.separator + "bin"
+ File.separator + executable;
File exeFile = new File(fullExeName);
if (!exeFile.exists()) {
throw new IOException("Could not locate executable " + fullExeName
+ " in the Hadoop binaries.");
}
return exeFile.getCanonicalPath();
}
HADOOP_HOME_DIR de
// first check the Dflag hadoop.home.dir with JVM scope
String home = System.getProperty("hadoop.home.dir");
// fall back to the system/user-global env variable
if (home == null) {
home = System.getenv("HADOOP_HOME");
}
Descargue la versión deseada de la carpeta hadoop (Digite si está instalando chispa en Windows luego la versión de hadoop para la cual está creada su chispa) de this enlace como zip.
Extraiga el zip al directorio deseado. Necesita tener un directorio del formulario hadoop/bin
(crear explícitamente tal estructura de directorio de hadoop/bin
si lo desea) con un bin
contenga todos los archivos contenidos en la carpeta bin
del hadoop descargado. Esto contendrá muchos archivos como hdfs.dll, hadoop.dll, etc., además de winutil.exe.
Ahora crea la variable de entorno HADOOP_HOME
y HADOOP_HOME
en <path-to-hadoop-folder>/hadoop
. A continuación, add ;%HADOOP_HOME%/bin;
a la variable de entorno PATH
.
Abra un "nuevo símbolo del sistema" e intente volver a ejecutar su comando.
Estaba enfrentando el mismo problema. Al eliminar el bin/
de la ruta HADOOP_HOME lo resolví por mí. La ruta de acceso para la variable HADOOP_HOME debe ser similar a.
C:/dev/hadoop2.6/
El reinicio del sistema puede ser necesario. En mi caso, reiniciar el IDE fue suficiente.
Estaba obteniendo el mismo problema en Windows. Lo arreglé por
- Descargando hadoop-common-2.2.0-bin-master del here .
- Cree una variable de usuario HADOOP_HOME en Variable de entorno y asigne la ruta del directorio bin de hadoop-common como un valor.
- Puedes verificarlo ejecutando hadoop en cmd.
- Reinicie el IDE y ejecútelo.
La instrucción java.io.IOException: no se pudo encontrar el archivo ejecutable null / bin / winutils.exe
explica que el nulo se recibe al expandir o reemplazar una variable de entorno. Si ve el Source en Shell.Java en paquete común, encontrará que la variable HADOOP_HOME no se está configurando y que está recibiendo null en lugar de eso y, por lo tanto, del error.
Por lo tanto, HADOOP_HOME debe configurarse correctamente o la propiedad variable hadoop.home.dir.
Espero que esto ayude.
Gracias, Kamleshwar.
Puede descargar winutils.exe aquí: http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe
Luego cópielo a su directorio HADOOP_HOME/bin
.
Se requieren winutils.exe para que hadoop ejecute comandos relacionados con hadoop. Descargue el archivo comprimido hadoop-common-2.2.0. winutils.exe se puede encontrar en la carpeta bin. Extraiga el archivo zip y cópielo en la carpeta local hadoop / bin.
Si enfrenta este problema al ejecutar una aplicación local autónoma con Spark (es decir, después de agregar spark-assembly-xxx-hadoopx.xxjar o la dependencia de Maven al proyecto), una solución más simple sería poner winutils.exe (descargar desde here ) en "C: / winutil / bin". Luego puede agregar winutils.exe al directorio de inicio de hadoop agregando la siguiente línea al código:
System.setProperty("hadoop.home.dir", "c:///winutil///")
Fuente: haga clic here
Si tomamos directamente la distribución binaria de la versión Apache Hadoop 2.2.0 e intentamos ejecutarla en Microsoft Windows, encontraremos ERROR util.Shell: no se pudo ubicar el winutils binary en la ruta binaria de hadoop.
La distribución binaria de la versión Apache Hadoop 2.2.0 no contiene algunos componentes nativos de Windows (como winutils.exe, hadoop.dll, etc.). Se requieren (no son opcionales) para ejecutar Hadoop en Windows.
Por lo tanto, debe compilar la distribución binaria nativa de Windows de hadoop a partir de los códigos fuente siguiendo el archivo "BUILD.txt" ubicado dentro de la distribución fuente de hadoop. Puede seguir las siguientes publicaciones también para la guía paso a paso con captura de pantalla
Cree, instale, configure y ejecute Apache Hadoop 2.2.0 en el sistema operativo Microsoft Windows
ERROR util.Shell: no se pudo ubicar el winutils binary en el camino binario de hadoop
Utilicé las versiones "hbase-1.3.0" y "hadoop-2.7.3". Establecer la variable de entorno HADOOP_HOME y copiar el archivo ''winutils.exe'' en la carpeta HADOOP_HOME / bin resuelve el problema en un sistema operativo de Windows. La atención para establecer el entorno HADOOP_HOME en la carpeta de instalación de la carpeta hadoop (/ bin no es necesaria para estas versiones). Además, preferí usar la herramienta de plataforma cruzada cygwin para resolver la funcionalidad de Linux (siempre que sea posible) porque el equipo de Hbase recomienda linux / unix env.
Solución simple : Descárguelo de here y agréguelo a $HADOOP_HOME/bin
(Fuente: haga clic aquí )
EDITAR:
Para hadoop-2.6.0 puedes descargar binarios del blog de Titus Barik >> .
No solo he tenido que apuntar HADOOP_HOME
al directorio [path]
extraído, sino también proporcionar la propiedad del sistema -Djava.library.path=[path]/bin
para cargar libs nativas (dll).