2017-08-01 1 views
0

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.

+0

L'espace entre 'Programme 'et' Files' dans 'JAVA_HOME' pourrait être le coupable ici. – philantrovert

+0

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

+1

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

Répondre

0

assurez-vous que vous avez correctement défini votre JAVA_HOME et SBT_HOME, je les ajoute aussi à la variable Path pour être du bon côté. Pour le faire facilement, je pourrais recommander "éditeur d'environnement rapide", outil simple et agréable pour l'édition des variables système. Cette approche m'a fait travailler pour moi car j'avais le même problème que vous. Un exemple serait:

JAVA_HOME réglé sur C: \ Program Files \ Java \ jdk1.8.0_151

SBT_HOME réglé sur C: \ Program Files (x86) \ SBT \