El proceso de Java Gateway se cerró antes de enviar su número de puerto

Sheeraz Gul 20 junio 2023
El proceso de Java Gateway se cerró antes de enviar su número de puerto

Este tutorial demuestra el error Se cerró el proceso de puerta de enlace de Java antes de enviar al controlador su número de puerto en Java.

Se cerró el proceso de puerta de enlace de Java antes de enviar al controlador su número de puerto

PySpark se usa para escribir aplicaciones Spark utilizando las API de Python y proporciona un shell para analizar de forma interactiva los datos en un entorno distribuido.

Al ejecutar la aplicación PySpark en PySpark Shell, spark-submit, o incluso desde spyder, puede ocurrir el error Pyspark: Excepción: el proceso de puerta de enlace de Java se cerró antes de enviar al controlador su número de puerto.

Si desea ejecutar PySpark en su Windows, Mac o Linux, debe instalar Java en su máquina porque generalmente se considera que PySpark funciona como un marco de Python. El motivo de que se produzca este error es que no ha configurado JAVA_HOME o PYSPARK_SUBMIT_ARGS.

Estas son las soluciones para resolver el error Pyspark: Excepción: el proceso de puerta de enlace de Java se cerró antes de enviar al controlador su número de puerto.

Instale Open JDK u Oracle JDK

Debe preguntarse por qué necesita Java para ejecutar PySpark. Es porque Spark está escrito básicamente en Scala, pero luego la industria adoptó su API, por lo que PySpark se lanzó para Python usando Py4J, ya que Py4J es una biblioteca de Java, por eso Java es necesario para ejecutar PySpark.

Py4J está integrado en PySpark, lo que permite que Python interactúe con objetos JVM.

Podemos usar el siguiente comando para instalar OpenJDK.

# Installing Open JDK
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-11-jdk

# Installing Oracle JDK
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Una vez que el JDK está instalado, debe configurar la ruta JAVA_HOME y seguir los pasos a continuación.

  • Encuentre su ruta JDK; si Java está instalado, la ruta será /usr/lib/jvm/java-1.x.x-openjdk.
  • Ahora ejecute el siguiente comando para establecer la ruta JAVA_HOME.
    export JAVA_HOME=/usr/lib/jvm/java-1.x.x-openjdk
    
  • El comando establecerá la ruta JAVA_HOME para verificar ejecutar echo $JAVA_HOME, mostrando la ruta de instalación de Java.

Los comandos anteriores son para los entornos Linux para Windows. Los instaladores se pueden descargar desde aquí:

  1. OpenJDK
  2. Oráculo

Para configurar JAVA_HOME en Windows, siga los pasos a continuación.

  • Busque Variables de entorno en la barra de búsqueda de Windows.
  • Abra Editar las variables de entorno del sistema.
  • Haga clic en el botón Variables de entorno para abrir las variables de entorno.
  • En las variables del sistema, haga clic en Nuevo.
  • El nombre será JAVA_HOME.
  • El valor será la ruta de instalación, por ejemplo, C:\Program Files\Java\jdk-17.0.2.
  • Después de poner el nombre y el valor, haga clic en Aceptar y Aplicar cambios.

Establecer PYSPARK_SUBMIT_ARGS

La mayoría de las veces, el error “Pyspark: Excepción: el proceso de puerta de enlace de Java se cerró antes de enviar al controlador su número de puerto” ocurre cuando PYSPARK_SUBMIT_ARGS no está configurado. Use el siguiente comando para configurar PYSPARK_SUBMIT_ARGS.

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

El comando anterior configurará PYSPARK_SUBMIT_ARGS usando el maestro. Seguir ambas soluciones resolverá el problema.

Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Artículo relacionado - Java Exception