2017-08-01 3 views
0

Nachdem ich ein Anaconda-Paket installiert habe, kann ich die Spark Shell unter Windows 7 nicht mehr starten. Immer wenn ich spark-shell tippe, antwortet die Konsole mit The system cannot find the path specified. Die Spark Shell startet nicht Na sicher.Spark-Shell: Das System kann den angegebenen Pfad nicht finden

Ich habe folgendes echo %PATH%:

C: \ Programme \ Microsoft MPI \ Bin \; C: \ Program Files (x86) \ Gemeinsame Dateien \ Intel \ Gemeinsame Dateien \ cpp \ bin \ Intel64 ; C: \ Programme (x86) \ Intel \ iCLS-Client \; C: \ Programme \ Intel \ iCLS-Client \; C: \ Windows \ System32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ Wbem; C: \ windows \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Programme \ Intel \ Intel Management Engine-Komponenten \ DAL; C: \ Programme (x86) \ Intel \ Intel Management Engine Components \ DAL ; C: \ Programme \ Intel \ Intel Management Engine-Komponenten \ IPT; C: \ Programme (x86) \ Intel \ Intel Management Engine-Komponenten \ IPT; C: \ Programme \ Lenovo \ Fingerprint Manager Pro \; C: \ Programme (x86) \ WinSCP \; C: \ Programm F ile (x86) \ Lenovo \ Access Connections \; C: \ Programme \ MiKTeX 2.9 \ miktex \ bin \ x64 \; C: \ Programme \ PuTTY \; C: \ Programme (x86) \ Intel \ UCRT \; C: \ Programme \ Intel \ UCRT \; C: \ Programme \ Intel \ WiFi \ bin \; C: \ Programme \ Gemeinsame Dateien \ Intel \ WirelessCommon \; C: \ Programme \ Microsoft SQL Server \ 130 \ Tools \ Binn \; C: \ Programme \ dotnet \; C: \ Programme \ Anaconda3; C: \ Programme \ Anaconda3 \ Scripts; C: \ Programme \ Anaconda3 \ Library \ bin; C: \ Programme (x86) \ GtkSharp \ 2.12 \ bin; C: \ Programme \ Git \ cmd; C: \ Programme \ TortoiseGit \ bin; C: \ Programme \ TortoiseSVN \ bin; C: \ Programme (x86) \ sbt \ bin; C: \ Programme (x86) \ scala \ bin; C: \ Programme (x86) \ Java \ jre1.8.0_144 \ bin; C: \ Programme \ Intel \ WiFi \ bin \; C: \ Programme \ Gemeinsame Dateien \ Intel \ WirelessCommon \; C: \ Programme (x86) \ Graphviz2.38 \ bin \; C: \ Programme (x86) \ sbt \ bin; C: \ Program Files (x86) \ bin \ scala; D: \ Funken \ bin; D: \ Hadoop \ bin

Und die folgende echo %SPARK_HOME%:

D: \ Funken

Und die folgende echo %JAVA_HOME%:

C: \ Program Files (X86) \ Java \ jre1.8.0_144

Das ist mein java -version:

java version "1.8.0_144"

Java (TM) SE Runtime Environment (Build 1.8.0_144 -b01)

Java HotSpot (TM) Client VM (build 25,144-b01, mixed mode, teilen)

Ich habe bereits versucht, Java neu zu installieren, aber ohne Erfolg. Es gibt eine ähnliche Frage here, aber ich sehe keine falschen Umgebungsvariablen in meinem Setup. Ich habe wirklich keine Ahnung, wie ich das lösen soll ... Irgendwelche Gedanken?

Nach ein paar Tests habe ich herausgefunden, dass wenn ich cd in $SPARK_HOME$\bin kann ich tatsächlich spark-shell ausführen kann.Es wird mit einer Fehlermeldung beendet:

\ Java \ jre1.8.0_144 \ bin \ Java war zu dieser Zeit unerwartet.

Dieser Fehler tritt auf, wenn die letzte Zeile "%~dp0spark-class2.cmd" %CLASS% %* von Spark\bin\spark-submit2.cmd ausgeführt wird.

UPDATE 1:

Ändern der %JAVA_HOME% von "C: \ Program Files ..." auf "C: \ PROGRA ~ 1 ..." in der Tat dieses Problem in einigen Teilen gelöst: spark-shell scheint jetzt anfangen. Allerdings gibt es eine Menge Access denied Fehler:

java.lang.IllegalArgumentException: Error while instantiating 'org.apache.spark.sql.hive.HiveSessionStateBuilder': 
at org.apache.spark.sql.SparkSession$.org$apache$spark$sql$SparkSession$$insta 
ntiateSessionState(SparkSession.scala:1053) 
at org.apache.spark.sql.SparkSession$$anonfun$sessionState$2.apply(SparkSessio 
n.scala:130) 
at org.apache.spark.sql.SparkSession$$anonfun$sessionState$2.apply(SparkSessio 
n.scala:130) 
at scala.Option.getOrElse(Option.scala:121) 
at org.apache.spark.sql.SparkSession.sessionState$lzycompute(SparkSession.scal 
a:129) 
at org.apache.spark.sql.SparkSession.sessionState(SparkSession.scala:126) 
at org.apache.spark.sql.SparkSession$Builder$$anonfun$getOrCreate$5.apply(Spar 
kSession.scala:938) 
at org.apache.spark.sql.SparkSession$Builder$$anonfun$getOrCreate$5.apply(Spar 
kSession.scala:938) 
at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:99) 
at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:99) 
at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:230) 
at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40) 
at scala.collection.mutable.HashMap.foreach(HashMap.scala:99) 
at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:93 
8) 
at org.apache.spark.repl.Main$.createSparkSession(Main.scala:97) 
... 47 elided 
Caused by: org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: j 
ava.lang.RuntimeException: java.io.IOException: Access is denied; 
at org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalo 
g.scala:106) 
at org.apache.spark.sql.hive.HiveExternalCatalog.databaseExists(HiveExternalCa 
talog.scala:193) 
at org.apache.spark.sql.internal.SharedState.externalCatalog$lzycompute(Shared 
State.scala:105) 
at org.apache.spark.sql.internal.SharedState.externalCatalog(SharedState.scala 
:93) 
at org.apache.spark.sql.hive.HiveSessionStateBuilder.externalCatalog(HiveSessi 
onStateBuilder.scala:39) 
at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog$lzycompute(HiveSe 
ssionStateBuilder.scala:54) 
at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog(HiveSessionStateB 
uilder.scala:52) 
at org.apache.spark.sql.hive.HiveSessionStateBuilder.catalog(HiveSessionStateB 
uilder.scala:35) 
at org.apache.spark.sql.internal.BaseSessionStateBuilder.build(BaseSessionStat 
eBuilder.scala:289) 
at org.apache.spark.sql.SparkSession$.org$apache$spark$sql$SparkSession$$insta 
ntiateSessionState(SparkSession.scala:1050) 
... 61 more 
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOExc 
eption: Access is denied 
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522) 

at org.apache.spark.sql.hive.client.HiveClientImpl.<init>(HiveClientImpl.scala 
:191) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at org.apache.spark.sql.hive.client.IsolatedClientLoader.createClient(Isolated 
ClientLoader.scala:264) 
at org.apache.spark.sql.hive.HiveUtils$.newClientForMetadata(HiveUtils.scala:3 
62) 
at org.apache.spark.sql.hive.HiveUtils$.newClientForMetadata(HiveUtils.scala:2 
66) 
at org.apache.spark.sql.hive.HiveExternalCatalog.client$lzycompute(HiveExterna 
lCatalog.scala:66) 
at org.apache.spark.sql.hive.HiveExternalCatalog.client(HiveExternalCatalog.sc 
ala:65) 
at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.app 
ly$mcZ$sp(HiveExternalCatalog.scala:194) 
at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.app 
ly(HiveExternalCatalog.scala:194) 
at org.apache.spark.sql.hive.HiveExternalCatalog$$anonfun$databaseExists$1.app 
ly(HiveExternalCatalog.scala:194) 
at org.apache.spark.sql.hive.HiveExternalCatalog.withClient(HiveExternalCatalo 
g.scala:97) 
... 70 more 
Caused by: java.lang.RuntimeException: java.io.IOException: Access is denied 
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:515) 

... 84 more 
Caused by: java.io.IOException: Access is denied 
at java.io.WinNTFileSystem.createFileExclusively(Native Method) 
at java.io.File.createTempFile(Unknown Source) 
at org.apache.hadoop.hive.ql.session.SessionState.createTempFile(SessionState. 
java:818) 
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:513) 

... 84 more 
<console>:14: error: not found: value spark 
import spark.implicits._ 
    ^

<console>:14: error: not found: value spark 
import spark.sql 
    ^

UPDATE 2:

Lauf spark-shell als Administrator funktioniert! Dies könnte jedoch sehr unsicher sein und ich halte es nicht für eine echte Lösung.

+0

Der Raum zwischen 'Programm 'und' Files' in 'JAVA_HOME' könnten hier der Schuldige sein. – philantrovert

+0

Was ist der beste Weg, um das zu lösen? Java erneut installieren? Übrigens hatte ich auch einen Platz in meinem Java-Verzeichnis, als es vor einiger Zeit funktionierte ... – thestackexchangeguy

+1

Ich bin nicht sicher, ob das den Fehler verursacht, aber Sie können versuchen, Java zu einem Pfad ohne Leerzeichen neu zu installieren. Etwas wie 'C: \ Java \' – philantrovert

Antwort

0

vergewissern Sie sich, dass Sie JAVA_HOME und SBT_HOME richtig eingestellt haben, ich füge sie auch zur Pfadvariablen hinzu, um auf der sicheren Seite zu sein. Um das einfach zu machen, kann ich den "Rapid Environment Editor" empfehlen, ein einfaches und nettes Werkzeug zum Editieren von Systemvariablen. Dieser Ansatz hat es für mich funktioniert, da ich das gleiche Problem bekam wie du. Ein Beispiel wäre:

JAVA_HOME auf C: \ Programme \ Java \ jdk1.8.0_151

SBT_HOME auf C: \ Program Files (x86) \ SBT \

Verwandte Themen