Beim Starten von namenode für die neueste Version von hadoop-2.2 wird die folgende Fehlermeldung angezeigt. Ich habe die Datei winutils exe nicht im Ordner hadoop bin gefunden. Ich habe unten 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)
Antworten:
Einfache Lösung: Laden Sie es von hier und in der
$HADOOP_HOME/bin
( Quelle )
WICHTIGES UPDATE:
Für hadoop-2.6.0 können Sie Binärdateien aus dem Titus Barik-Blog >> herunterladen .
Ich musste nicht nur auf
HADOOP_HOME
das extrahierte Verzeichnis verweisen[path]
, sondern auch Systemeigenschaften-Djava.library.path=[path]\bin
zum Laden nativer Bibliotheken (DLL) bereitstellen .quelle
Wenn Sie auf dieses Problem stoßen, wenn Sie eine in sich geschlossene lokale Anwendung mit Spark ausführen (dh nach dem Hinzufügen von spark -embly-xxx-hadoopx.xxjar oder der Maven-Abhängigkeit zum Projekt), besteht eine einfachere Lösung darin, winutils.exe (Download) einzufügen von hier ) in "C: \ winutil \ bin". Anschließend können Sie winutils.exe zum hadoop-Ausgangsverzeichnis hinzufügen, indem Sie dem Code die folgende Zeile hinzufügen:
Quelle: Klicken Sie hier
quelle
hadoop/bin/bin/
. Kopieren Sie einfach denbin
Ordner winutils in denbin
Ordner von hadoop . (HADOOP_HOME
ist in der env vars eingestellt)System.setProperty("hadoop.home.dir", "c:\\winutil\\")
Wenn wir die Binärdistribution von Apache Hadoop 2.2.0 direkt verwenden und versuchen, sie unter Microsoft Windows auszuführen, tritt ERROR util.Shell auf: Fehler beim Auffinden der Winutils-Binärdatei im Hadoop-Binärpfad.
Die Binärdistribution von Apache Hadoop 2.2.0 enthält keine nativen Windows-Komponenten (wie winutils.exe, hadoop.dll usw.). Diese sind erforderlich (nicht optional), um Hadoop unter Windows auszuführen.
Sie müssen also die native Windows-Binärverteilung von Hadoop aus Quellcodes erstellen, die der Datei "BUILD.txt" folgen, die sich in der Quelldistribution von Hadoop befindet. Sie können auch den folgenden Beiträgen folgen, um eine schrittweise Anleitung mit Screenshot zu erhalten
Erstellen, Installieren, Konfigurieren und Ausführen von Apache Hadoop 2.2.0 unter Microsoft Windows
ERROR util.Shell: Fehler beim Auffinden der Winutils-Binärdatei im Hadoop-Binärpfad
quelle
Die Anweisung java.io.IOException: Die ausführbare Datei null \ bin \ winutils.exe konnte nicht gefunden werden
erklärt, dass die Null beim Erweitern oder Ersetzen einer Umgebungsvariablen empfangen wird. Wenn Sie die Quelle in Shell.Java im Common Package sehen, werden Sie feststellen, dass die Variable HADOOP_HOME nicht gesetzt wird und Sie stattdessen null und damit den Fehler erhalten.
Daher muss HADOOP_HOME für dieses oder die Eigenschaft hadoop.home.dir richtig festgelegt werden.
Hoffe das hilft.
Danke, Kamleshwar.
quelle
Winutils.exe wird zum Ausführen der Shell-Befehle für SPARK verwendet. Wenn Sie den Spark ausführen müssen, ohne Hadoop zu installieren, benötigen Sie diese Datei.
Die Schritte sind wie folgt:
Laden Sie die Datei winutils.exe von folgendem Speicherort für hadoop 2.7.1 herunter: https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin [HINWEIS: Wenn Sie eine separate hadoop-Version verwenden, laden Sie bitte die herunter winutils aus dem entsprechenden Hadoop-Versionsordner auf GITHUB vom oben genannten Speicherort.]
Erstellen Sie nun einen Ordner 'winutils' in Laufwerk C: \. Erstellen Sie nun einen Ordner 'bin' im Ordner 'winutils' und kopieren Sie die Datei winutils.exe in diesen Ordner. Der Speicherort von winutils.exe lautet also C: \ winutils \ bin \ winutils.exe
Öffnen Sie nun die Umgebungsvariable und setzen Sie HADOOP_HOME = C: \ winutils [HINWEIS: Bitte fügen Sie \ bin nicht in HADOOP_HOME hinzu und Sie müssen HADOOP_HOME nicht in Path setzen]
Ihr Problem muss gelöst werden !!
quelle
Ich bin gerade auf dieses Problem gestoßen, als ich mit Eclipse gearbeitet habe. In meinem Fall hatte ich die richtige Hadoop-Version heruntergeladen (hadoop-2.5.0-cdh5.3.0.tgz), extrahierte den Inhalt und legte ihn direkt in mein C-Laufwerk. Danach ging ich zu
Eclipse-> Debug / Run-Konfigurationen -> Umgebung (Registerkarte) -> und hinzugefügt
Variable: HADOOP_HOME
Wert: C: \ hadoop-2.5.0-cdh5.3.0
quelle
Sie können winutils.exe hier herunterladen: http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe
Kopieren Sie es dann in Ihr
HADOOP_HOME/bin
Verzeichnis.quelle
Verwenden Sie in Pyspark die folgenden Zeilen, um eine lokale Funkenanwendung mit Pycharm auszuführen
quelle
winutils.exe ist erforderlich, damit hadoop hadoop-bezogene Befehle ausführt. Bitte laden Sie die Zip-Datei hadoop-common-2.2.0 herunter. winutils.exe befindet sich im Ordner bin. Extrahieren Sie die Zip-Datei und kopieren Sie sie in den lokalen Ordner hadoop / bin.
quelle
Ich hatte das gleiche Problem. Das Entfernen des
bin\
Pfads aus dem Pfad HADOOP_HOME hat es für mich gelöst. Der Pfad für die Variable HADOOP_HOME sollte ungefähr so aussehen.Möglicherweise ist ein Neustart des Systems erforderlich. In meinem Fall war ein Neustart der IDE ausreichend.
quelle
Richten Sie HADOOP_HOME Variable in Fenster , das Problem zu lösen.
Sie finden die Antwort in
org/apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/apache/hadoop/util/Shell.java
:IOException von
HADOOP_HOME_DIR von
quelle
von der URL herunter :
https://github.com/steveloughran/winutils/hadoop-
version
/ binHinweis: Sie sollten Umgebungsvariablen festlegen :
Benutzervariable:
Variable : HADOOP_HOME
Wert : Hadoop oder Funkenverzeichnis
quelle
Ich hatte das gleiche Problem in Windows. Ich habe es behoben durch
quelle
Laden Sie die gewünschte Version des Hadoop-Ordners (sagen Sie, wenn Sie Spark unter Windows installieren, dann die Hadoop-Version, für die Ihr Spark erstellt wurde) von diesem Link als Zip herunter .
Extrahieren Sie die Zip-Datei in das gewünschte Verzeichnis. Sie benötigen ein Verzeichnis des Formulars
hadoop\bin
(erstellen Sie eine solchehadoop\bin
Verzeichnisstruktur explizit, wenn Sie möchten),bin
das alle Dateien enthält, die imbin
Ordner des heruntergeladenen Hadoops enthalten sind. Dies wird neben winutil.exe viele Dateien wie hdfs.dll, hadoop.dll usw. enthalten.Erstellen Sie nun eine Umgebungsvariable
HADOOP_HOME
und setzen Sie sie auf<path-to-hadoop-folder>\hadoop
. Fügen Sie;%HADOOP_HOME%\bin;
dann derPATH
Umgebungsvariablen hinzu.Öffnen Sie eine "neue Eingabeaufforderung" und versuchen Sie, Ihren Befehl erneut auszuführen.
quelle
Ich habe die Versionen "hbase-1.3.0" und "hadoop-2.7.3" verwendet. Das Festlegen der Umgebungsvariablen HADOOP_HOME und das Kopieren der Datei 'winutils.exe' in den Ordner HADOOP_HOME / bin löst das Problem unter einem Windows-Betriebssystem. Achten Sie darauf, die HADOOP_HOME-Umgebung auf den Installationsordner von hadoop festzulegen (der Ordner / bin ist für diese Versionen nicht erforderlich). Außerdem habe ich es vorgezogen, das plattformübergreifende Tool cygwin zu verwenden, um die Linux- Betriebssystemfunktionalität (so weit wie möglich) zu regeln, da das Hbase-Team Linux / Unix-Env empfiehlt.
quelle