포트 번호를 보내기 전에 Java Gateway 프로세스가 종료됨

Sheeraz Gul 2023년6월20일
포트 번호를 보내기 전에 Java Gateway 프로세스가 종료됨

이 자습서는 Java에서 드라이버에게 포트 번호를 보내기 전에 종료된 Java 게이트웨이 프로세스 오류를 보여줍니다.

드라이버에 포트 번호를 보내기 전에 Java Gateway 프로세스가 종료됨

PySpark는 Python API를 사용하여 Spark 애플리케이션을 작성하는 데 사용되며 분산 환경에서 데이터를 대화식으로 분석하기 위한 셸을 제공합니다.

PySpark Shell, spark-submit 또는 spyder에서 PySpark 애플리케이션을 실행하는 동안 Pyspark: 예외: Java 게이트웨이 프로세스가 드라이버에 포트 번호를 보내기 전에 종료됨 오류가 발생할 수 있습니다.

Windows, Mac 또는 Linux에서 PySpark를 실행하려면 PySpark가 일반적으로 Python 프레임워크로 작동하는 것으로 간주되기 때문에 시스템에 Java를 설치해야 합니다. 이 오류가 발생하는 이유는 JAVA_HOME 또는 PYSPARK_SUBMIT_ARGS를 설정하지 않았기 때문입니다.

다음은 Pyspark: 예외: 드라이버에 포트 번호를 보내기 전에 Java 게이트웨이 프로세스가 종료됨 오류를 해결하는 솔루션입니다.

Open JDK 또는 Oracle JDK 설치

PySpark를 실행하기 위해 Java가 필요한 이유가 궁금할 것입니다. 그것은 Spark가 기본적으로 Scala로 작성되었지만 나중에 업계에서 API를 채택했기 때문에 Py4J를 사용하여 PySpark가 Python용으로 출시되었습니다. Py4J는 Java 라이브러리이므로 Java PySpark를 실행하는 데 필요합니다.

Py4JPySpark에 통합되어 Python이 JVM 객체와 인터페이스할 수 있도록 합니다.

다음 명령을 사용하여 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

JDK가 설치되면 JAVA_HOME 경로를 설정하고 아래 단계를 따라야 합니다.

  • JDK 경로를 찾으십시오. Java가 설치된 경우 경로는 /usr/lib/jvm/java-1.x.x-openjdk입니다.
  • 이제 다음 명령을 실행하여 JAVA_HOME 경로를 설정하십시오.
    export JAVA_HOME=/usr/lib/jvm/java-1.x.x-openjdk
    
  • 이 명령은 JAVA_HOME 경로를 설정하여 echo $JAVA_HOME 실행을 확인하고 Java 설치 경로를 표시합니다.

위 명령어는 Windows용 Linux 환경용입니다. 설치 프로그램은 여기에서 다운로드할 수 있습니다.

  1. 오픈JDK
  2. 오라클

Windows에서 JAVA_HOME을 설정하려면 다음 단계를 따르십시오.

  • Windows 검색창에서 환경 변수를 검색하십시오.
  • 시스템 환경 변수 편집을 엽니다.
  • 환경 변수 버튼을 클릭하여 환경 변수를 엽니다.
  • 시스템 변수에서 새로 만들기를 클릭합니다.
  • 이름은 JAVA_HOME입니다.
  • 값은 설치 경로(예: C:\Program Files\Java\jdk-17.0.2)입니다.
  • 이름과 값을 입력한 후 확인변경 사항 적용을 클릭합니다.

PYSPARK_SUBMIT_ARGS 설정

대부분의 경우 Pyspark: Exception: Java gateway process exited before send the driver its port number 오류는 PYSPARK_SUBMIT_ARGS가 설정되지 않은 경우에 발생합니다. 다음 명령을 사용하여 PYSPARK_SUBMIT_ARGS를 설정합니다.

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

위의 명령은 마스터를 사용하여 PYSPARK_SUBMIT_ARGS를 설정합니다. 두 솔루션을 모두 따르면 문제가 해결됩니다.

작가: Sheeraz Gul
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

관련 문장 - Java Exception