HOWTO · Java
ポート番号を送信する前に Java ゲートウェイ プロセスが終了しました
このチュートリアルでは、Java でポート番号エラーをドライバーに送信する前に、Java ゲートウェイ プロセスが終了したことを示します。
このチュートリアルでは、Java での ドライバーにポート番号を送信する前に Java ゲートウェイ プロセスが終了しました エラーについて説明します。
ドライバにポート番号を送信する前に Java ゲートウェイ プロセスが終了した
PySparkは、Python API を使用してSparkアプリケーションを作成するために使用され、分散環境でデータをインタラクティブに分析するためのシェルを提供します。
PySpark Shell、spark-submit、または spyder で PySpark アプリケーションを実行しているときに、エラー 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 を実行するために必要です。
Py4J は PySpark に統合されており、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 環境用です。 インストーラーは次の場所からダウンロードできます。
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 を設定します。 両方のソリューションに従うと、問題が解決します。