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.
Der Raum zwischen 'Programm 'und' Files' in 'JAVA_HOME' könnten hier der Schuldige sein. – philantrovert
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
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