ポート番号を送信する前に Java ゲートウェイ プロセスが終了しました

Sheeraz Gul 2023年6月20日
ポート番号を送信する前に Java ゲートウェイ プロセスが終了しました

このチュートリアルでは、Java での ドライバーにポート番号を送信する前に Java ゲートウェイ プロセスが終了しました エラーについて説明します。

ドライバにポート番号を送信する前に Java ゲートウェイ プロセスが終了した

PySparkは、Python API を使用してSparkアプリケーションを作成するために使用され、分散環境でデータをインタラクティブに分析するためのシェルを提供します。

PySpark Shellspark-submit、または spyderPySpark アプリケーションを実行しているときに、エラー Pyspark: Exception: Java gateway process exited before sent the driver its port number が発生する可能性があります。

Windows、Mac、または Linux で PySpark を実行したい場合、PySpark は通常 Python フレームワークとして機能すると考えられているため、マシンに Java をインストールする必要があります。 このエラーが発生する理由は、JAVA_HOME または PYSPARK_SUBMIT_ARGS を設定していないことです。

Pyspark: 例外: Java ゲートウェイ プロセスは、ドライバーにそのポート番号を送信する前に終了しました エラーを解決するためのソリューションを次に示します。

Open JDK または Oracle JDK をインストールする

PySpark を実行するためになぜ Java が必要なのか疑問に思うに違いありません。 Spark は基本的に Scala で書かれていますが、後に業界がその API を採用したため、Py4J を使用した Python 用の PySpark がリリースされました。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. OpenJDK
  2. オラクル

Windows で JAVA_HOME を設定するには、次の手順に従います。

  • Windows の検索バーで環境変数を検索します。
  • システム環境変数の編集 を開きます。
  • 環境変数ボタンをクリックして、環境変数を開きます。
  • システム変数で、New をクリックします。
  • 名前は JAVA_HOME になります。
  • 値はインストール パスになります (例: C:\Program Files\Java\jdk-17.0.2)。
  • 名前と値を入力したら、OK変更を適用をクリックします。

PYSPARK_SUBMIT_ARGS を設定

ほとんどの場合、エラー Pyspark: 例外: Java ゲートウェイ プロセスは、ドライバーにそのポート番号を送信する前に終了しました は、PYSPARK_SUBMIT_ARGS が設定されていない場合に発生します。 次のコマンドを使用して、PYSPARK_SUBMIT_ARGS を設定します。

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

上記のコマンドは、master を使用して 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