ポート番号を送信する前に 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
を設定します。 両方のソリューションに従うと、問題が解決します。
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