Après avoir installé un paquet anaconda, je ne peux plus démarrer le shell Spark sous Windows 7. Chaque fois que je tape spark-shell
, la console répond avec The system cannot find the path specified.
Le shell Spark ne démarre pas bien sûr.spark-shell: Le système ne peut pas trouver le chemin spécifié
Je l'echo %PATH%
suivante:
C: \ Program Files \ Microsoft MPI \ Bin \; C: \ Program Files (x86) \ Common Files \ Intel \ Shared Files \ cpp \ bin \ Intel64 ; C: \ Program Files (x86) \ Client Intel \ iCLS \; C: \ ProgramFiles \ Intel \ Client iCLS \; C: \ windows \ system32; C: \ windows; C: \ windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files \ Intel \ Intel (R) composants du moteur de gestion \ DAL; C: \ Program Files (x86) \ Intel \ Intel (R) composants du moteur de gestion \ DAL ; C: \ Program Files \ Composants de moteur de gestion Intel \ Intel (R) \ IPT; C: \ Program Files (x86) \ Composants de moteur de gestion Intel \ Intel (R) \ IPT; C: \ Program Files \ Lenovo \ Fingerprint Manager Pro \; C: \ Program Files (x86) \ WinSCP \; C: \ Program F iles (x86) \ Lenovo \ Connexions d'accès \; C: \ Program Files \ MiKTeX 2.9 \ miktex \ bin \ x64 \; C: \ Program Files \ PuTTY \; C: \ Program Files (x86) \ Intel \ UCRT \; C: \ Program Files \ Intel \ UCRT \; C: \ Program Files \ Intel \ WiFi \ bin \; C: \ Program Files \ Fichiers communs \ Intel \ WirelessCommon \; C: \ Program Files \ Microsoft SQL Server \ 130 \ Outils \ Binn \; C: \ Program Files \ dotnet \; C: \ Program Files \ Anaconda3; C: \ Programmes \ Anaconda3 \ Scripts; C: \ Program Files \ Anaconda3 \ Bibliothèque \ bin; C: \ Program Files (x86) \ GtkSharp \ 2.12 \ bin; C: \ Program Files \ Git \ cmd; C: \ Program Files \ TortoiseGit \ bin; C: \ Program Files \ TortoiseSVN \ bin; C: \ Program Files (x86) \ sbt \ bin; C: \ Program Files (x86) \ scala \ bin; C: \ Program Files (x86) \ Java \ jre1.8.0_144 \ bin; C: \ Fichiers programme \ Intel \ WiFi \ bin \; C: \ Program Files \ Fichiers communs \ Intel \ WirelessCommon \; C: \ Fichiers programme (x86) \ Graphviz2.38 \ bin \; C: \ Program Files (x86) \ sbt \ bin; C: \ Program Files (x86) \ scala \ de bin; D: \ Spark \ bin; D: \ Hadoop \ bin
Et les éléments suivants echo %SPARK_HOME%
:
D: \ Spark
Et le echo %JAVA_HOME%
suivant:
C: \ Program Files (X86) \ Java \ jre1.8.0_144
Ceci est mon java -version
:
java version "1.8.0_144"
Java (TM) SE Runtime Environment (build 1.8.0_144 B01)
Java HotSpot (TM) VM client (build 25,144-B01, mode mixte, le partage)
J'ai déjà essayé de réinstaller Java, mais sans succès. Il y a une question similaire here, mais je ne vois pas de mauvaises variables d'environnement dans ma configuration. Donc je n'ai vraiment aucune idée de comment résoudre ça ... Des pensées?
Après quelques tests j'ai découvert que quand je cd
en $SPARK_HOME$\bin
je peux réellement exécuter spark-shell
.Il se termine avec un message d'erreur:
\ Java \ jre1.8.0_144 \ bin \ java était inattendu pour le moment.
Cette erreur survient lors de l'exécution de la dernière ligne de "%~dp0spark-class2.cmd" %CLASS% %*
Spark\bin\spark-submit2.cmd
.
MISE À JOUR 1:
Modification du %JAVA_HOME%
de "C: \ Program Files ..." à "C: \ PROGRA ~ 1 ..." En effet résolu ce problème dans certaines régions: spark-shell
semble maintenant commencer. Cependant, il y a beaucoup d'erreurs Access denied
:
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
^
MISE À JOUR 2:
Exécution spark-shell
comme administrateur fonctionne! Cependant, cela pourrait être très dangereux et je ne le considère pas comme une vraie solution.
L'espace entre 'Programme 'et' Files' dans 'JAVA_HOME' pourrait être le coupable ici. – philantrovert
Quel est le meilleur moyen de résoudre ce problème? Réinstallez Java à nouveau? En passant, j'avais aussi un espace dans mon répertoire java quand il a fonctionné il y a un certain temps ... – thestackexchangeguy
Je ne sais pas si cela cause l'erreur mais vous pouvez essayer de réinstaller java dans un chemin sans espaces. Quelque chose comme 'C: \ Java \' – philantrovert