Estoy tratando de ejecutar pyspark en mi macbook air. Cuando trato de iniciarlo me sale el error:

Exception: Java gateway process exited before sending the driver its port number

cuando sc = SparkContext() es llamado en el inicio. He probado ejecutando los siguientes comandos:

./bin/pyspark
./bin/spark-shell
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"

con vano. También he mirado aquí:

Spark + Python, Java puerta de enlace de proceso terminado antes de enviar el controlador de su número de puerto?

pero la pregunta que nunca ha sido contestada. Por favor, ayuda! Gracias.

  • ¿Qué versión de spark se utilizan?
  • Que podría ser de ayuda, stackoverflow.com/a/30851037/296549
  • He resuelto el problema anterior mediante la descarga de una diferente tarbll de chispa.
  • Ver mis comentarios en stackoverflow.com/questions/31841509/…
  • En adición a @mt88 comentario, spark-1.6.0-bin-sin-hadoop.tgz produce la anterior excepción, pero la chispa-1.6.0-bin-hadoop2.6.tgz no para mí en Ubuntu 15.04
  • También estoy usando Chispa 2.2.1 sin Hadoop. ¿Cree usted que es la causa?
  • no estoy seguro de su pregunta, usted podría probar y ver
  • Voy a tener que construir Chispa en ese caso de la pre-fabricadas versión viene con 2.7 y necesito 3
  • Spark runs on Java 8+, Python 2.7+/3.4+ and R 3.1+. For the Scala API, Spark 2.2.1 uses Scala 2.11. You will need to use a compatible Scala version (2.11.x)., spark.apache.org/docs/latest, por lo que en python 3 no debería ser un problema. Si estás trabajando en un único nodo, en la construcción de usted mismo está bien, pero aún le recomiendo que instale con algún tipo de un gestor de paquetes, por ejemplo, anaconda. La última versión pyspark, pypi.python.org/pypi/pyspark/2.1.1, es compatible con python3.
  • Lo siento, me refería a Hadoop 3. Es por eso que estoy usando Hadoop libre de archivos binarios. pip pyspark es prediseñadas con Hadoop 2.7.
  • Yo no estoy familiarizado con versiones de Hadoop, para mí, es mejor ceñirse a lo que se admite.

InformationsquelleAutor mt88 | 2015-08-05

25 Comentarios

  1. 20

    esto debería ayudarle a

    Una solución es añadir pyspark-shell el shell variable de entorno PYSPARK_SUBMIT_ARGS:

    export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"

    Hay un cambio en python/pyspark/java_gateway.py , que requiere PYSPARK_SUBMIT_ARGS incluye pyspark-shell si un PYSPARK_SUBMIT_ARGS variable está definida por un usuario.

  2. 18

    Una posible razón es la JAVA_HOME no se establece debido a que java no está instalado.

    He encontrado con el mismo problema. Dice

    a sc = pyspark.SparkConf(). Lo resuelto por la ejecución de

    que es de https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04

    • Para una instalación automática de Oracle Java8 en Ubuntu, consulte newfivefour.com/docker-java8-auto-install.html .
    • esto funcionó para mí, después de intentar la EXPORTACIÓN de declaraciones fue en vano
    • Estoy confundido. ¿Cómo se puede no tener java instalado con un error como ese? La primera parte es una aplicación de seguimiento de pila! Creo que simplemente tenía el problema de que JAVA_HOME no se ha establecido correctamente/a todos.
  3. 4

    Tenido el mismo problema con mi iphython notebook (IPython 3.2.1) en Linux (ubuntu).

    Lo que faltaba en mi caso fue la creación de la maestría de dirección URL en el $PYSPARK_SUBMIT_ARGS entorno como este (asumiendo que usas bash):

    por ejemplo,

    Usted puede poner esto en tu .bashrc archivo. Usted obtener la URL correcta en el registro de la chispa maestro (la ubicación de este registro se informó al iniciar el maestro con /sbin/start_master.sh).

    • Ya que no puedo comentar sobre user1613333 respuesta que yo hago aquí, yo también encontró que el uso de Anaconda hace que las cosas van mucho más suave.
    • También puede configurar las variables de entorno usando import os; os.environ['PYSPARK_SUBMIT_ARGS'] = "--master ..."
  4. 2

    Después de pasar horas y horas tratando de muchas soluciones diferentes, puedo confirmar que Java 10 SDK causas de este error. En Mac, por favor vaya a /Biblioteca/Java/JavaVirtualMachines, a continuación, ejecute este comando para desinstalar Java JDK 10 completo:

    Después de eso, por favor descargar el JDK 8, entonces el problema será resuelto.

  5. 1

    Tengo el mismo Java gateway process exited......port number excepción aunque yo había PYSPARK_SUBMIT_ARGS correctamente. Estoy corriendo Chispa 1.6 y tratando de conseguir pyspark para trabajar con IPython4/Jupyter (SO: ubuntu como invitado VM).

    Mientras que llegué a esta excepción, me di cuenta de una hs_err_*.de registro se genera y se comenzó con:

    There is insufficient memory for the Java Runtime Environment to continue. Native memory allocation (malloc) failed to allocate 715849728 bytes for committing reserved memory.

    Así que he aumentado la memoria asignada para mi ubuntu a través de VirtualBox Configuración y reiniciar el invitado de ubuntu. Entonces este Java gateway excepción desaparece y todo salió bien.

    • Donde puedo encontrar ese archivo de registro?
  6. 1

    Tengo el mismo Exception: Java gateway process exited before sending the driver its port number en Cloudera VM al intentar iniciar IPython con CSV apoyo con un error de sintaxis:

    PYSPARK_DRIVER_PYTHON=ipython pyspark --packages com.databricks:spark-csv_2.10.1.4.0

    va a tirar el error, mientras que:

    PYSPARK_DRIVER_PYTHON=ipython pyspark --packages com.databricks:spark-csv_2.10:1.4.0

    no.

    La diferencia está en que la última colon en la última (de trabajo) ejemplo, separar la Scala número de versión de la número de versión del paquete.

  7. 1

    En mi caso este error vino de la secuencia de comandos que se ejecutan correctamente antes. Así que se me ocurrió que esto podría ser debido a mi actualización de JAVA. Antes de que yo estaba usando java 1.8 pero accidentalmente había actualizado para java 1.9. Cuando me cambié de nuevo a java 1.8 el error desapareció y todo está funcionando bien.
    Para aquellos, que obtiene este error por la misma razón, pero no saben cómo volver a mayores, la versión de java en ubuntu:
    ejecutar

    y hacer la selección para la versión java

    • Thx – esta solucionado mi problema en KDE Neón (basada en Ubuntu 16.04).
  8. 1

    Tenido el mismo problema, después de instalar java utilizando por debajo de las líneas resuelto el problema !

    • Esta solución funcionó para mí.
  9. 1

    Me solucionaron el problema en el sistema Windows. El directorio de instalación de Java no debe tener espacios en blanco en la ruta como en C:\Program Files. He re-instalado Java en C\Java. Me puse JAVA_HOME a C:\Java y el problema desapareció.

    • Este fue el problema, para mí también.
  10. 1

    Tenido este mensaje de error pyspark en Ubuntu, se deshizo de él por la instalación de la openjdk-8-jdk paquete

    Instalar Open JDK 8:

  11. 1

    Tengo el mismo error en la ejecución de pyspark en pycharm.
    He resuelto el problema mediante la adición de JAVA_HOME en pycharm las variables de entorno.

  12. 1

    Tuve la misma excepción y he probado de todo, por la configuración y restablecimiento de todas las variables de entorno. Pero el problema en la final perforaron el espacio en appname propiedad de la chispa de la sesión,es decir, «SparkSession.el generador.appName(«StreamingDemo»).getOrCreate()». Inmediatamente después de quitar el espacio de la cadena dada a appname propiedad lo tengo resuelto.Yo estaba usando pyspark 2.7 con eclipse en windows 10 medio ambiente. A mí me funcionó.
    Adjunto se requiere que las capturas de pantalla.Pyspark: Exception: Java puerta de enlace de proceso terminado antes de enviar el controlador de su número de puerto

    Pyspark: Exception: Java puerta de enlace de proceso terminado antes de enviar el controlador de su número de puerto

  13. 0

    Las horas trabajadas en este. Mi problema era con Java 10 de la instalación. He desinstalado y instalado Java 8, y ahora Pyspark obras.

    • que OS estáis trabajando?
  14. 0

    Tengo el mismo error.

    Mi de solución de problemas procedimientos son:

    1. Retirar Chispa código fuente.
    2. Siga el mensaje de error. En mi caso: pyspark/java_gateway.py, línea 93, en launch_gateway.
    3. Comprobar el código de la lógica para encontrar la causa raíz, a continuación, usted va a resolver esto.

    En mi caso el problema es PySpark no tiene permiso para crear algún directorio temporal, así que sólo tengo que ejecutar mi IDE con sudo

  15. 0

    Para mí, la respuesta fue añadir dos ‘Contenido Raíces’ en ‘Archivo’ -> ‘la Estructura del Proyecto,’ – > ‘Módulos’ (en IntelliJ):

    1. YourPath\chispa-2.2.1-bin-hadoop2.7\python
    2. YourPath\spark-2.2.1-bin-hadoop2.7\python\lib\py4j-0.10.4-src.zip
  16. 0

    Este es un hilo viejo, pero voy a agregar mi solución para aquellos que usan mac.

    El problema fue con la JAVA_HOME. Usted tiene que incluir esto en su .bash_profile.

    Comprobar su java -version. Si has descargado la última versión de Java, pero no se presenta como la versión más reciente, entonces usted sabe que el camino es equivocado. Normalmente, la ruta de acceso predeterminada es export JAVA_HOME= /usr/bin/java.

    Así que trate de cambiar la ruta de acceso:
    /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java

    Como alternativa también se puede descargar la última versión de JDK.
    https://www.oracle.com/technetwork/java/javase/downloads/index.html y esto reemplazará automáticamente usr/bin/java a la última versión. Usted puede confirmar esta haciendo java -version de nuevo.

    A continuación, que deben trabajar.

  17. 0

    Asegúrese de que el directorio de Java (como se encuentra en su camino) Y su intérprete de Python que residen en directorios sin espacios en ellos. Estos fueron la causa de mi problema.

  18. 0

    Si usted está tratando de ejecutar chispa sin hadoop binarios, usted podría encontrar el error mencionado anteriormente. Una solución es :

    1) descargar hadoop separados.

    2) agregar hadoop para su RUTA

    3) agregar hadoop classpath para su CHISPA instalar

    Los dos primeros pasos son triviales, el último paso puede ser el mejor hecho por la adición de la siguiente en $SPARK_HOME/conf/spark-env.sh en cada chispa de nodo (maestro y de los trabajadores)

    para más información revise también: https://spark.apache.org/docs/latest/hadoop-provided.html

  19. 0

    Uso Mac OS. He solucionado el problema!

    A continuación es cómo me fijo.

    JDK8 parece que funciona bien. (https://github.com/jupyter/jupyter/issues/248)

    Así que he comprobado mi JDK /Biblioteca/Java/JavaVirtualMachines, sólo tengo jdk-11.jdk en este camino.

    Me descargar JDK8 (he seguido el enlace).
    Que es:

    Después de esto, he añadido

    a ~/.bash_profile archivo. (usted debe comprobar su jdk1.8 nombre de archivo)

    Funciona ahora!
    Espero que esta ayuda 🙂

  20. 0

    En mi caso fue porque escribí SPARK_DRIVER_MEMORY=10 en lugar de SPARK_DRIVER_MEMORY=10g en spark-env.sh

  21. 0

    Para Linux (Ubuntu 18.04) con un JAVA_HOME problema, una clave es apuntar a la maestro carpeta:

    1. Conjunto de Java 8 como predeterminada por: sudo update-alternatives --config java. Si Java 8 no está instalado, instalar por: sudo apt install openjdk-8-jdk.
    2. Conjunto JAVA_HOME variable de entorno como el maestro java 8 de la carpeta. La ubicación está dada por el primer comando sobre la eliminación de jre/bin/java. A saber: export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/". Si se hace en la línea de comandos, esto será relevante sólo para la sesión actual (ref: exportación de comandos en Linux). Para verificar: echo $JAVA_HOME.
    3. Con el fin de tener presente de forma permanente, agregue la línea en negrita arriba a un archivo que se ejecuta antes de iniciar el IDE/Jupyter/intérprete de python. Esto podría ser mediante la adición de la línea en negrita arriba para .bashrc. Este archivo se carga cuando un bash se inicia de forma interactiva ref: .bashrc
  22. 0

    Hay muchas razones para este error. Mi razón es : la versión de pyspark es incompatible con chispa.
    pyspark versión :2.4.0, pero spark versión 2.2.0.
    es siempre causa de python siempre falla al iniciar la chispa proceso. a continuación, la chispa no puede decirle a sus puertos a python. así aparecerá el error «Pyspark: Exception: Java puerta de enlace de proceso terminado antes de enviar el controlador de su número de puerto
    «.

    Sugiero que bucear en el código fuente para averiguar las verdaderas razones cuando se produce este error

Dejar respuesta

Please enter your comment!
Please enter your name here