it-swarm.com.de

Spark 1.6-Fehler beim Auffinden der Winutils-Binärdatei im hadoop-Binärpfad

Ich weiß, dass es einen sehr ähnlichen Beitrag zu diesem gibt ( Fehler beim Auffinden der Winutils-Binärdatei im hadoop-Binärpfad ), jedoch habe ich jeden vorgeschlagenen Schritt ausprobiert und derselbe Fehler erscheint immer noch.

Ich versuche, die Apache Spark-Version 1.6.0 unter Windows 7 zu verwenden, um das Lernprogramm auf dieser Seite http://spark.Apache.org/docs/latest/streaming-programming-guide.html auszuführen mit diesem Code:

./bin/run-example streaming.JavaNetworkWordCount localhost 9999

Dieser Fehler wird jedoch weiterhin angezeigt:  enter image description here

Nach dem Lesen dieses Beitrags Fehler beim Auffinden der winutils-Binärdatei im hadoop-Binärpfad

Mir wurde klar, dass ich die Datei winutils.exe brauchte, also habe ich eine hadoop binary 2.6.0 heruntergeladen und eine Umgebungsvariable namens HADOOP_HOME definiert:

 with value C:\Users\GERAL\Desktop\hadoop-2.6.0\bin  

und platzierte es auf Pfad wie folgt:% HADOOP_HOME%

Der gleiche Fehler tritt jedoch immer noch auf, wenn ich den Code versuche. Weiß jemand, wie man das löst? 

11
manuel mourato

Wenn Sie Spark unter Windows mit Hadoop ausführen, müssen Sie sicherstellen, dass Ihre Windows hadoop-Installation ordnungsgemäß installiert ist. Um Spark laufen zu lassen, müssen Sie winutils.exe und winutils.dll in Ihrem binoop-Ausgangsverzeichnis-Ordner haben. 

Ich würde Sie bitten, dies zuerst zu versuchen:

1) Sie können DLL- und EXE-Dateien aus dem Bundle unter dem Link herunterladen. 

https://codeload.github.com/sardetushar/hadooponwindows/Zip/master

2) Kopieren Sie winutils.exe und winutils.dll aus diesem Ordner in Ihr $ HADOOP_HOME/bin.

3) Setzen Sie den HADOOP_HOME entweder in Ihrer spark-env.sh oder unter dem Befehl und fügen Sie HADOOP_HOME/bin zu PATH hinzu.

und dann versuchen zu laufen. 

Wenn Sie Hilfe bei der Installation von hadoop benötigen, gibt es einen Link zu Nice, den Sie ausprobieren können. 

http://toodey.com/2015/08/10/hadoop-installation-on-windows-ohne-cygwin-in-10-mints/

Aber das kann warten. Sie können die ersten Schritte ausprobieren.

19
Srini

Laden Sie die bin-Datei hier herunter Hadoop Bin dann System.setProperty("hadoop.home.dir", "Desktop\bin");

3
MohamedAbbas

sie können versuchen, die Umgebungsvariable HADOOP_HOME auf Folgendes festzulegen:

C:\Users\GERAL\Desktop\hadoop-2.6.0

anstatt

C:\Users\GERAL\Desktop\hadoop-2.6.0\bin  
1
teja

Installieren Sie JDK 1.8, laden Sie Spark Binary von Apache Spark & Winutils von Git Repo herunter

Legen Sie den Pfad der Benutzervariablen für JDK fest, Spark binary, Winutils

Java_HOME
C:\Programme\Java\jdk1.8.0_73

HADOOP_HOME
C:\Hadoop

SPARK_HOME
C:\spark-2.3.1-bin-hadoop2.7

PATH
C:\Programme\Java\jdk1.8.0_73\bin;% HADOOP_HOME%\bin;% SPARK_HOME%\bin;

Öffne die Eingabeaufforderung und starte spark-Shell

Spark Shell

0
satish hiremath

Ich habe auch dieses Problem gehabt, als ich spark-Shell von meinem Windows-Laptop aus starten wollte. Ich habe das gelöst und es hat für mich funktioniert, ich hoffe es würde helfen. Es ist ein sehr kleiner Fehler, den ich gemacht habe - ich habe die ausführbare Datei von winutils als "winutils.exe" gespeichert und nicht nur als winutils.

Wenn also die Variable aufgelöst wird, wurde die Datei winutils.exe.exe aufgelöst, die sich nirgendwo in den Hadoop-Binärdateien befindet. Ich entfernte das ".exe" und löste die Shell aus, es funktionierte. Ich schlage vor, dass Sie sich den Namen ansehen, unter dem er gespeichert wurde. 

0
Mohasin

Der folgende Fehler ist auf fehlende Winutils-Binärdateien im Klassenpfad zurückzuführen, während die Spark-Anwendung ausgeführt wird. Winutils ist Teil des Hadoop-Ökosystems und nicht in Spark enthalten. Die tatsächliche Funktionalität Ihrer Anwendung wird möglicherweise auch dann richtig ausgeführt, wenn die Ausnahme ausgelöst wird. Es ist jedoch besser, es zur Verfügung zu haben, um unnötige Probleme zu vermeiden. Um Fehler zu vermeiden, laden Sie winutils.exe binary herunter und fügen Sie dasselbe zum Klassenpfad hinzu.

import org.Apache.spark.SparkConf;
import org.Apache.spark.api.Java.JavaRDD;
import org.Apache.spark.api.Java.JavaSparkContext;
import org.Apache.spark.api.Java.function.Function;

public class SparkTestApp{

    public static void main(String[] args) {

            System.setProperty("hadoop.home.dir", "ANY_DIRECTORY");

    // Example
    // winutils.exe is copied to C:\winutil\bin\
    // System.setProperty("hadoop.home.dir", "C:\\winutil\\");
            String logFile = "C:\\sample_log.log";
            SparkConf conf = new SparkConf().setAppName("Simple Application").setMaster("local");
            JavaSparkContext sc = new JavaSparkContext(conf);
            JavaRDD logData = sc.textFile(logFile).cache();

            long numAs = logData.filter(new Function<String, Boolean>() {
                public Boolean call(String s) {
                        return s.contains("a");
                }
            }).count();

            System.out.println("Lines with a: " + numAs);

    }

}

Wenn winutils.exe in C:\winutil\bin\ kopiert wird

dann setProperty wie folgt

System.setProperty("hadoop.home.dir", "C:\\winutil\\");
0
Akhil Jain