J'essaie d'exécuter pyspark sur mon MacBook Air. Quand j'essaye de le démarrer, j'obtiens l'erreur:
Exception: Java gateway process exited before sending the driver its port number
lorsque sc = SparkContext () est appelé au démarrage. J'ai essayé d'exécuter les commandes suivantes:
./bin/pyspark
./bin/spark-Shell
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-Shell"
sans résultat. J'ai aussi regardé ici:
mais la question n'a jamais été répondu. S'il vous plaît aider! Merci.
cela devrait vous aider
Une solution consiste à ajouter pyspark-Shell à la variable d’environnement Shell PYSPARK_SUBMIT_ARGS:
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-Shell"
Il y a un changement dans python/pyspark/Java_gateway.py, qui nécessite PYSPARK_SUBMIT_ARGS inclut pyspark-Shell si une variable PYSPARK_SUBMIT_ARGS est définie par l'utilisateur.
Une des raisons possibles est que Java_HOME n'est pas défini car Java n'est pas installé.
J'ai rencontré le même problème. Ça dit
Exception in thread "main" Java.lang.UnsupportedClassVersionError: org/Apache/spark/launcher/Main : Unsupported major.minor version 51.0
at Java.lang.ClassLoader.defineClass1(Native Method)
at Java.lang.ClassLoader.defineClass(ClassLoader.Java:643)
at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:277)
at Java.net.URLClassLoader.access$000(URLClassLoader.Java:73)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:212)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:205)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:323)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:296)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:268)
at Sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.Java:406)
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/opt/spark/python/pyspark/conf.py", line 104, in __init__
SparkContext._ensure_initialized()
File "/opt/spark/python/pyspark/context.py", line 243, in _ensure_initialized
SparkContext._gateway = gateway or launch_gateway()
File "/opt/spark/python/pyspark/Java_gateway.py", line 94, in launch_gateway
raise Exception("Java gateway process exited before sending the driver its port number")
Exception: Java gateway process exited before sending the driver its port number
à sc = pyspark.SparkConf()
. Je l'ai résolu en courant
Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java8-installer
qui provient de https://www.digitalocean.com/community/tutorials/how-to-install-Java-with-apt-get-on-ubuntu-16-04
Avait le même problème avec mon ordinateur portable iphython (IPython 3.2.1) sur Linux (Ubuntu).
Ce qui manquait dans mon cas était de définir l'URL principale dans l'environnement $ PYSPARK_SUBMIT_ARGS comme ceci (en supposant que vous utilisiez bash):
export PYSPARK_SUBMIT_ARGS="--master spark://<Host>:<port>"
par exemple.
export PYSPARK_SUBMIT_ARGS="--master spark://192.168.2.40:7077"
Vous pouvez mettre cela dans votre fichier .bashrc. Vous obtenez l'URL correcte dans le journal du maître des étincelles (l'emplacement de ce journal est signalé lorsque vous démarrez le maître avec /sbin/start_master.sh).
Si ce message d'erreur exécutait pyspark sur Ubuntu, supprimez-le en installant le paquetage openjdk-8-jdk
from pyspark import SparkConf, SparkContext
sc = SparkContext(conf=SparkConf().setAppName("MyApp").setMaster("local"))
^^^ error
Installez Open JDK 8:
apt-get install openjdk-8-jdk-headless -qq
Après avoir passé des heures et des heures à essayer de nombreuses solutions différentes, je peux confirmer que Java 10 SDK est à l'origine de cette erreur. Sur Mac, accédez à/Library/Java/JavaVirtualMachines, puis exécutez cette commande pour désinstaller complètement Java JDK 10:
Sudo rm -rf jdk-10.jdk/
Après cela, téléchargez JDK 8, le problème sera résolu.
Dans mon cas, cette erreur est arrivée pour le script qui fonctionnait bien auparavant. J'ai donc compris que cela pouvait être dû à ma mise à jour Java. Avant, j'utilisais Java 1.8 mais j'avais accidentellement mis à jour Java 1.9. Lorsque je suis revenu à Java 1.8, l'erreur a disparu et tout fonctionne correctement. Pour ceux qui obtiennent cette erreur pour la même raison mais ne savent pas comment revenir à une version plus ancienne de Java sur ubuntu: Run
Sudo update-alternatives --config Java
et faire le choix de la version Java
J'ai le même Exception: Java gateway process exited before sending the driver its port number
dans Cloudera VM en essayant de démarrer IPython avec le support CSV avec une erreur de syntaxe:
PYSPARK_DRIVER_PYTHON=ipython pyspark --packages com.databricks:spark-csv_2.10.1.4.0
va jeter l'erreur, tandis que:
PYSPARK_DRIVER_PYTHON=ipython pyspark --packages com.databricks:spark-csv_2.10:1.4.0
ne sera pas.
La différence réside dans le dernier colon du dernier exemple (de travail), en séparant le numéro de version Scala du numéro de version package.
J'ai la même erreur en exécutant pyspark dans pycharm . J'ai résolu le problème en ajoutant Java_HOME dans les variables d'environnement de pycharm.
Même problème, après l’installation de Java en utilisant les lignes ci-dessous, le problème était résolu!
Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java8-installer
J'ai compris le problème dans le système Windows. Le répertoire d'installation pour Java ne doit pas comporter d'espaces vides dans le chemin d'accès, comme dans C:\Program Files
J'ai réinstallé Java dans C\Java
. J'ai mis Java_HOME
à C:\Java
et le problème a disparu.
Ceci est un vieux fil de discussion mais j'ajoute ma solution pour ceux qui utilisent mac.
Le problème était avec le Java_HOME
. Vous devez l'inclure dans votre .bash_profile
.
Vérifiez votre Java -version
. Si vous avez téléchargé la dernière version de Java, mais que la version la plus récente ne s'affiche pas, vous savez que le chemin est incorrect. Normalement, le chemin par défaut est export Java_HOME= /usr/bin/Java
.
Alors essayez de changer le chemin en: /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java
Sinon, vous pouvez également télécharger le dernier JDK . https://www.Oracle.com/technetwork/Java/javase/downloads/index.html et cela remplacera automatiquement usr/bin/Java
par la dernière version. Vous pouvez le confirmer en répétant Java -version
.
Alors ça devrait marcher.
J'ai eu la même exception: installer Java jdk a fonctionné pour moi.
Pour moi, la réponse a été d'ajouter deux "racines de contenu" dans "Fichier" -> "Structure du projet" -> "Modules" (dans IntelliJ):
Travaillé heures sur cela. Mon problème était avec l'installation de Java 10. Je l'ai désinstallé et installé Java 8, et maintenant Pyspark fonctionne.
Assurez-vous que votre répertoire Java (figurant dans votre chemin) ET votre interprète Python résident dans des répertoires ne contenant aucun espace. Ce sont la cause de mon problème.
J'ai eu cette erreur parce que mon espace disque était insuffisant.
J'ai la même erreur.
Mes procédures de dépannage sont les suivantes:
pyspark/Java_gateway.py
, ligne 93, dans launch_gateway
.Dans mon cas, le problème est que PySpark n’a pas l’autorisation de créer un répertoire temporaire. Je viens donc d’exécuter mon IDE avec Sudo.