Ich erhalte den folgenden Fehler beim Starten von namenode für die neueste Version von hadoop-2.2. Ich habe die Datei winutils exe nicht im Hadoop-Bin-Ordner gefunden. Ich habe folgende Befehle ausprobiert
$ 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)
Wenn wir direkt die Binärdistribution von Apache Hadoop 2.2.0 Release nehmen und versuchen, sie unter Microsoft Windows auszuführen, dann werden wir ERROR util.Shell: Die Winutils-Binärdatei konnte nicht im Hadoop-Binärpfad gefunden werden.
Die Binärdistribution von Apache Hadoop 2.2.0 enthält einige Windows-eigene Komponenten (wie winutils.exe, hadoop.dll usw.) nicht. Diese sind erforderlich (nicht optional), um Hadoop unter Windows auszuführen.
Sie müssen also die Windows-native Binärdistribution von Hadoop aus den Quellcodes gemäß der Datei "BUILD.txt" erstellen, die sich in der Quelldistribution von Hadoop befindet. Sie können auch den folgenden Beiträgen folgen, um eine Schritt-für-Schritt-Anleitung mit Bildschirmfotos zu erhalten
ERROR util.Shell: Die winutils-Binärdatei konnte nicht im Hadoop-Binärpfad gefunden werden
Die Anweisung java.io.IOException: Could not locate executable null\bin\winutils.exe
erklärt, dass die Null beim Erweitern oder Ersetzen einer Umgebungsvariablen empfangen wird. Wenn Sie sich den Quellcode in Shell.Java im Common Package ansehen, werden Sie feststellen, dass die HADOOP_HOME-Variable nicht gesetzt wird und Sie stattdessen null erhalten und daher der Fehler auftritt.
Daher muss HADOOP_HOME richtig gesetzt werden, oder die Variable hadoop.home.dir property.
Ich hoffe, das hilft.
Vielen Dank! Kamleshwar.
winutils.exe wird für hadoop benötigt, um hadoop-bezogene Befehle auszuführen. Bitte laden Sie hadoop-common-2.2.0 zip-Datei herunter. winutils.exe befindet sich im Ordner bin. Entpacken Sie die ZIP-Datei und kopieren Sie sie in den lokalen Ordner hadoop/bin.