2016-07-29 5 views
0

Ich habe Spark und Hadoop in Standalone-Modi auf Ubuntu Virtualbox für mein Lernen installiert. Ich bin in der Lage, normale hadoop mapreduce-Operationen auf hdfs ohne Funken durchzuführen. Aber wenn ich Code unten in Funken Shell verwenden,Kann nicht lesen eine Datei aus HDFS mit Spark Shell in Ubuntu

val file=sc.textFile("hdfs://localhost:9000/in/file") 
scala>file.count() 

ich „Eingangspfad existiert nicht.“ Fehler. Die Datei core-site.xml hat fs.defaultFS mit dem Wert hdfs: // localhost: 9000. Wenn ich localhost ohne die Portnummer gebe, bekomme ich "Connection refused" Fehler, da es auf Standardport 8020 hört. Hostname und localhost sind auf Loopbackadressen 127.0.0.1 und 127.0.1.1 in etc/hosts gesetzt. Bitte lassen Sie mich wissen, wie Sie dieses Problem lösen können. Vielen Dank im Voraus!

+0

versuchen, dies in Terminal 'hadoop fs -ls hdfs: // localhost: 9000/in /' . Ist die Datei verfügbar? – WoodChopper

Antwort

0

Wahrscheinlich Ihre Konfiguration ist in Ordnung, aber die Datei fehlt, oder in einer unerwarteten Lage ...

1) versuchen:

sc.textFile("hdfs://in/file") 
sc.textFile("hdfs:///user/<USERNAME>/in/file") 

mit Benutzername = hadoop oder Ihren eigenen Benutzernamen

2) versuchen, auf der Kommandozeile (außerhalb von Funken Shell) das Verzeichnis/Datei zuzugreifen:

hdfs dfs -ls /in/file 
0

Ich bin in der Lage in die hdfs lesen und schreiben mit

"hdfs://localhost:9000/user/<user-name>/..." 

Vielen Dank für Ihre Hilfe ..