J'ai installé spark 2.2 avec Winutils dans Windows 10.Quand je vais exécuter pyspark, je suis confronté à une exception
pyspark.sql.utils.IllegalArgumentException: "Error while instantiating 'org.Apache.spark.sql.Hive.HiveSessionStateBuilder'
J'ai déjà essayé l'autorisation 777 commandes dans le dossier tmp/Hive également, mais cela ne fonctionne pas pour l'instant
winutils.exe chmod -R 777 C:\tmp\Hive
après application, le problème reste le même. J'utilise pyspark 2.2 dans mes fenêtres 10 . Elle est spark-Shell env
Aidez-moi à comprendre Merci
Port 9000?! Ce doit être quelque chose lié à Hadoop, car je ne me souviens pas du port pour Spark. Je recommanderais d’utiliser d’abord spark-Shell
, ce qui éliminerait les "sauts" supplémentaires, c’est-à-dire que spark-Shell
ne nécessite pas deux temps d’exécution pour Spark lui-même et Python.
Compte tenu de l'exception, je suis presque sûr que le problème est que vous avez certains Hive - ou une configuration liée à Hadoop quelque part et Spark l'utilise apparemment.
"Caused by" semble indiquer que 9000 est utilisé lors de la création de Spark SQL, c'est-à-dire lorsque le sous-système prenant en charge Hive est chargé.
Causé par: org.Apache.spark.sql.AnalysisException: Java.lang.RuntimeException: Java.net.ConnectException: appel de DESKTOP-SDNSD47/192.168.10.143 à 0.0.0.0:9000 en cas d'échec de la connexion: exception Java.net.ConnectException : Connexion rejetée
Veuillez examiner les variables d’environnement dans Windows 10 (en utilisant éventuellement la commande set
sur la ligne de commande) et supprimez tout élément lié à Hadoop.
J'ai eu le même problème en utilisant la commande "pyspark" ainsi que "spark-shell" (pour scala) dans mon Mac OS avec Apache-spark 2.2. Sur la base de certaines recherches, je pense que c'est à cause de ma version 9.0.1 de JDK qui ne fonctionne pas bien avec Apache-Spark. Les deux erreurs ont été résolues en revenant de Java JDK 9 à JDK 8.
Peut-être que cela pourrait aider avec votre installation d'étincelles Windows aussi.
Poster cette réponse pour la postérité. J'ai fait face à la même erreur ... La solution que j'ai résolue est d'abord d'essayer spark-Shell au lieu de pyspark. Le message d'erreur était plus direct.
Cela a donné une meilleure idée. il y avait une erreur d'accès S3 . Suivant; J'ai vérifié le profil rôle/instance ec2 pour cette instance; il dispose d'un accès administrateur S3.
Ensuite, j'ai fait un grep pour s3: // dans tous les fichiers de configuration sous/etc/directory .
<!-- URI of NN. Fully qualified. No IP.-->
<name>fs.defaultFS</name>
<value>s3://arvind-glue-temp/</value>
</property>
Puis je me suis souvenu. J'avais retiré HDFS en tant que système de fichiers par défaut et l'avais réglé sur S3. J'avais créé l'instance ec2 à partir d'une AMI antérieure et j'avais oublié de mettre à jour le compartiment S3 correspondant au compte le plus récent.
Une fois que j’ai mis à jour le compartiment s3 avec celui qui est accessible par le profil d’instance ec2 actuel; ça a marché.
Pour utiliser Spark sous Windows, vous pouvez suivre this guide.
REMARQUE: Assurez-vous que votre adresse IP a été correctement résolue par rapport à votre nom d'hôte et à localhost. Le manque de résolution de localhost a déjà causé des problèmes pour nous.
En outre, vous devez fournir la trace complète de la pile, car elle permet de déboguer rapidement le problème et d’éviter les conjectures.
Faites-moi savoir si cela aide. À votre santé.
Essaye ça . Cela a fonctionné pour moi! Ouvrez une invite de commande en mode administrateur, puis exécutez la commande 'pyspark'. Cela devrait vous aider à ouvrir une session d'allumage sans erreurs.
Le fichier Hive-site.xml
doit figurer dans le répertoire de configuration de l'étincelle. Changer le port de 9000
à 9083
a résolu le problème pour moi.
Veuillez vous assurer que la propriété est mise à jour dans les deux fichiers Hive-site.xml
qui seraient placés dans le répertoire Hive config et spark config .
<property>
<name>Hive.metastore.uris</name>
<value>thrift://localhost:9083</value>
<description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> </property>
Pour moi à Ubuntu, les emplacements pour Hive-site.xml
sont:
/ home/hadoop/Hive/conf /
et
/ home/hadoop/spark/conf /
J'ai aussi rencontré l'erreur dans Ubuntu 16.04:
raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.Apache.spark.sql.Hive.HiveSessionStateBuilder'
c'est parce que j'ai déjà lancé ./bin/spark-Shell
Alors, tuez ce spark-Shell
, et relancez ./bin/pyspark
J'ai également rencontré l'erreur dans MacOS10 et je l'ai résolu en utilisant Java8 au lieu de Java9.
Lorsque Java 9 est la version par défaut résolue dans l'environnement, pyspark renvoie l'erreur ci-dessous et vous verrez que le nom 'xx' n'est pas une erreur définie lors d'une tentative d'accès à sc, spark, etc. depuis Shell/Jupyter.
plus de détails vous pouvez voir ce lien