Pourquoi spark-coque échoue avec NullPointerException?
J'essaie d'exécuter spark-shell
sur Windows 10, mais je reçois ce message d'erreur à chaque fois que je l'exécuter.
J'ai utilisé à la fois plus récente et la spark-1.5.0-bin-hadoop2.4 versions.
15/09/22 18:46:24 WARN Connection: BoneCP specified but not present in
CLASSPATH (or one of dependencies)
15/09/22 18:46:24 WARN Connection: BoneCP specified but not present in CLASSPATH (or one of dependencies)
15/09/22 18:46:27 WARN ObjectStore: Version information not found in
metastore. hive.metastore.schema.verification is not enabled so recording the schema version 1.2.0
15/09/22 18:46:27 WARN ObjectStore: Failed to get database default, returning NoSuchObjectException
15/09/22 18:46:27 WARN : Your hostname, DESKTOP-8JS2RD5 resolves to a loopback/non-reachable address: fe80:0:0:0:0:5efe:c0a8:103%net1, but we couldn't find any external IP address!
java.lang.RuntimeException: java.lang.NullPointerException
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)
at org.apache.spark.sql.hive.client.ClientWrapper.<init> (ClientWrapper.scala:171)
at org.apache.spark.sql.hive.HiveContext.executionHive$lzycompute(HiveContext.scala :163)
at org.apache.spark.sql.hive.HiveContext.executionHive(HiveContext.scala:161)
at org.apache.spark.sql.hive.HiveContext.<init>(HiveContext.scala:168)
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.repl.SparkILoop.createSQLContext(SparkILoop.scala:1028)
at $iwC$$iwC.<init>(<console>:9)
at $iwC.<init>(<console>:18)
at <init>(<console>:20)
at .<init>(<console>:24)
at .<clinit>(<console>)
at .<init>(<console>:7)
at .<clinit>(<console>)
at $print(<console>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065)
at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1340)
at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840)
at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871)
at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819)
at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857)
at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902)
at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814)
at org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:132)
at org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:124)
at org.apache.spark.repl.SparkIMain.beQuietDuring(SparkIMain.scala:324)
at org.apache.spark.repl.SparkILoopInit$class.initializeSpark(SparkILoopInit.scala:124)
at org.apache.spark.repl.SparkILoop.initializeSpark(SparkILoop.scala:64)
at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1$$anonfun$apply$mcZ$sp$5.apply$mcV$sp(SparkILoop.scala:974)
at org.apache.spark.repl.SparkILoopInit$class.runThunks(SparkILoopInit.scala:159)
at org.apache.spark.repl.SparkILoop.runThunks(SparkILoop.scala:64)
at org.apache.spark.repl.SparkILoopInit$class.postInitialization(SparkILoopInit.sca la:108)
at org.apache.spark.repl.SparkILoop.postInitialization(SparkILoop.scala:64)
at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$proc ess$1.apply$mcZ$sp(SparkILoop.scala:991)
at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$proc ess$1.apply(SparkILoop.scala:945)
at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$proc ess$1.apply(SparkILoop.scala:945)
at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scal a:135)
at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945)
at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059)
at org.apache.spark.repl.Main$.main(Main.scala:31)
at org.apache.spark.repl.Main.main(Main.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:672)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.NullPointerException
at java.lang.ProcessBuilder.start(Unknown Source)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:445)
at org.apache.hadoop.util.Shell.run(Shell.java:418)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:722)
at org.apache.hadoop.fs.FileUtil.execCommand(FileUtil.java:1097)
at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo(RawLocalFileSystem.java:559)
at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.getPermission(RawLocalFileSystem.java:534)
org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:599)
at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:554)
org.apache.hadoop.de la ruche.ql.session.SessionState.start(SessionState.java:508)
... 56 plus
<console>:10: error: not found: value sqlContext
import sqlContext.implicits._
^
<console>:10: error: not found: value sqlContext
import sqlContext.sql
^
- J'ai téléchargé l'étincelle-1.5.0-bin-hadoop2.4 et a commencé à spark-shell, mais sqlContext charge sans problème pour moi. J'ai eu les mêmes messages d'avertissement, sauf pour le nom d'hôte d'avertissement, si ma conjecture est que vous aurez besoin pour réparer votre réseau configutation.
- Je ne peux pas trouver la cause. Je jouais avec package pré-créé. Après j'ai essayé de télécharger le code source
git clone git://github.com/apache/spark.git -b branch-1.6
il a travaillé. - Thx. Je suis en train de jouer avec le pré-construit paquet. Quel système d'exploitation utilisez-vous en chemin ?
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé Étincelle 1.5.2 avec Hadoop 2.6 et a eu des problèmes similaires. Résolu en faisant les étapes suivantes:
Télécharger
winutils.exe
de la référentiel à certains locaux dossier de, par exemple,C:\hadoop\bin
.Ensemble
HADOOP_HOME
àC:\hadoop
.Créer
c:\tmp\hive
répertoire (à l'aide de l'Explorateur Windows, ou tout autre outil).Ouvrez l'invite de commande avec les droits admin.
Exécuter
C:\hadoop\bin\winutils.exe chmod 777 /tmp/hive
Avec ça, je suis encore en train de quelques mises en garde, mais pas d'Erreurs et peut exécuter Étincelle applications de l'amende juste.
HADOOP_HOME
est l'utilisateur si la variable système? Avez-vous l'exécuter sur Windows 10? Je demande parce qu'il ne fonctionne pas pour moi...SPARK_LOCAL_HOSTNAME = localhost
?spark-shell
de commande à l'intérieur de répertoire bin sibin\spark-shell
?J'ai été confronté à un problème similaire, a obtenu qu'il soit résolu en mettant le winutil à l'intérieur du dossier bin. Le Hadoop_home doit être définie comme C:\Winutils et winutil à être placé dans C:\Winutils\bin.
Windows 10 64 bits Winutils sont disponibles dans https://github.com/steveloughran/winutils/tree/master/hadoop-2.6.0/bin
Également veiller à ce que la ligne de commande dispose d'un accès administratif.
Reportez-vous https://wiki.apache.org/hadoop/WindowsProblems
Ma conjecture est que vous êtes en cours d'exécution dans https://issues.apache.org/jira/browse/SPARK-10528. J'ai vu le même problème sur Windows 7. D'abord j'ai fait le NullPointerException comme vous l'avez fait. Quand j'ai mis winutils dans le répertoire bin et définir HADOOP_HOME à point à l'Étincelle répertoire, j'ai eu le message d'erreur décrit dans le TABLEAU de problème.
Ou peut-être ce lien ci-dessous sera plus facile à suivre,
https://wiki.apache.org/hadoop/WindowsProblems
Fondamentalement, télécharger et copier winutils.exe pour votre étincelle\bin. Exécutez de nouveau l'étincelle-shell
Si vous n'avez pas mis votre /tmp/ruche à une écriture de l'état, veuillez le faire.
Vous devez donner la permission de /tmp/ruche répertoire pour résoudre cette exception.
Espère que vous avez déjà winutils.exe et ensemble HADOOP_HOME variable d'environnement. Ensuite, ouvrez l'invite de commande et exécuter la commande suivante en tant qu'administrateur:
Si winutils.exe est présent dans D:\winutils\bin emplacement et \tmp\ruche est également dans le lecteur D:
Pour plus de détails,vous pouvez consulter les liens suivants :
De fréquents Problèmes survenus au cours de l'Étincelle de Développement
Comment faire pour exécuter Apache Spark sur Windows7 en mode autonome
Pour Python - Créer un SparkSession dans votre python (Cette section de configuration est uniquement pour Windows)
Copie winutils.exe et garder à l'C:\winutils\bin et exécuter le soufflet commandes
Exécutez l'invite de commande en mode ADMINISTRATEUR ( Exécuter en tant qu'Administrateur)
Vous pouvez résoudre ce problème en plaçant mysqlconnector pot spark-1.6.0/dossier libs et redémarrer à nouveau.Elle fonctionne.
L'important, c'est ici, au lieu de l'exécution de l'étincelle-shell que vous devriez faire
Espère que ça devrait fonctionner.
Mon problème était d'avoir d'autres .exe/Pots à l'intérieur de la winutils/bin. J'ai donc effacé tous les autres et a été laissé avec winutils.exe seul. A l'aide d'étincelle 2.1.1
Problème a été résolu après installation correcte de la version Java dans mon cas sa java 8 et en définissant les variables d'environnement. Assurez-vous d'exécuter la winutils.exe pour créer un répertoire temporaire en tant que ci-dessous.
Ci-dessus ne doit pas renvoyer de toute erreur. Utilisation
java -version
pour vérifier la version de java que vous utilisez avant d'invoquer l'étincelle-shell.Dans Windows, vous avez besoin de cloner "winutils"
Et
N'oubliez pas de choisir la version de votre hadoop.