2017-02-27 2 views
0

Nach dem dfs, Garn und Funken starten, ich diesen Code unter dem Stammverzeichnis von Funken auf Master-Host ausgeführt werden:Lauf Funke-Maschine Beispiel auf Garn Lernen fehlgeschlagen

MASTER=yarn ./bin/run-example ml.LogisticRegressionExample \ data/mllib/sample_libsvm_data.txt

Eigentlich bekomme ich diesen Code von Spark README, und hier ist der Quellcode über LogisticRegressionExample auf GitHub: https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/ml/LogisticRegressionExample.scala

Dann Fehler tritt auf:

Exception in thread "main" org.apache.spark.sql.AnalysisException: Path does not exist: hdfs://master:9000/user/root/data/mllib/sample_libsvm_data.txt;

Erstens, ich weiß nicht, warum es hdfs://master:9000/user/root ist, setze ich die IP-Adresse von namenode auf hdfs://master:9000, aber warum funken wählte /user/root?

Dann mache ich ein Verzeichnis /user/root/data/mllib/sample_libsvm_data.txt auf jedem Host des Clusters, also hoffe ich, dass Spark diese Datei finden kann. Aber derselbe Fehler tritt erneut auf. Bitte sag mir, wie ich es beheben kann.

Antwort

0

Spark sucht nach der Datei auf HDFS, nicht das normale Linux-Dateisystem. Der Pfad, den Sie Ihren Daten gegeben haben (data/mllib/sample_libsvm_data.txt), ist ein relativer Pfad. In HDFS wird davon ausgegangen, dass relative Pfade in Ihrem Home-Verzeichnis beginnen.

Der LogRegExample.scala auf GitHub setzt eine lokale Ausführung voraus, keine Garnausführung. Wenn Sie eine Garnausführung durchführen möchten, müssen Sie Dateien in HDFS hochladen.

+0

@ JamCon.Ja, es funktioniert. Ich kann 'hdfs dfs -put' verwenden, um die Datendatei zuerst in HDFS zu speichern, anstatt' run-example'. Wenn ich 'spark-submit' verwende, um Python-Skript zu senden, verwende ich' --files', um meine Datendatei hochzuladen, aber wie kann ich den Pfad der hochgeladenen Datei auf HDFS angeben? Und enthält die Gesamtlaufzeit meines eingereichten Skripts die Zeit für das Hochladen? – YunjieJi