it-swarm.com.ru

Pyspark: исключение: процесс шлюза Java завершился до отправки драйверу его номера порта

Я пытаюсь запустить pyspark на моем MacBook Air. Когда я пытаюсь запустить его, я получаю сообщение об ошибке:

Exception: Java gateway process exited before sending the driver its port number

когда sc = SparkContext () вызывается при запуске. Я попытался запустить следующие команды:

./bin/pyspark
./bin/spark-Shell
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-Shell"

безрезультатно. Я также посмотрел здесь:

Spark + Python - процесс шлюза Java завершился до отправки драйверу его номера порта?

но на вопрос так и не был дан ответ. Пожалуйста помоги! Благодарю.

32
mt88

это должно помочь тебе

Одним из решений является добавление pyspark-Shell в переменную среды Shell PYSPARK_SUBMIT_ARGS:

export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-Shell"

В python/pyspark/Java_gateway.py есть изменение, которое требует, чтобы PYSPARK_SUBMIT_ARGS включал pyspark-Shell, если пользователь установил переменную PYSPARK_SUBMIT_ARGS.

18
Anup Ash

Одной из возможных причин является то, что Java_HOME не установлен, поскольку Java не установлена.

Я столкнулся с той же проблемой. Это говорит 

Exception in thread "main" Java.lang.UnsupportedClassVersionError: org/Apache/spark/launcher/Main : Unsupported major.minor version 51.0
    at Java.lang.ClassLoader.defineClass1(Native Method)
    at Java.lang.ClassLoader.defineClass(ClassLoader.Java:643)
    at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
    at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:277)
    at Java.net.URLClassLoader.access$000(URLClassLoader.Java:73)
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:212)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:205)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:323)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:296)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:268)
    at Sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.Java:406)
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/spark/python/pyspark/conf.py", line 104, in __init__
    SparkContext._ensure_initialized()
  File "/opt/spark/python/pyspark/context.py", line 243, in _ensure_initialized
    SparkContext._gateway = gateway or launch_gateway()
  File "/opt/spark/python/pyspark/Java_gateway.py", line 94, in launch_gateway
    raise Exception("Java gateway process exited before sending the driver its port number")
Exception: Java gateway process exited before sending the driver its port number

на sc = pyspark.SparkConf(). Я решил это, запустив

Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java8-installer

который из https://www.digitalocean.com/community/tutorials/how-to-install-Java-with-apt-get-on-ubuntu-16-04

17
Old Panda

У меня была такая же проблема с моим ноутбуком iphython (IPython 3.2.1) в Linux (Ubuntu).

В моем случае не хватало установки главного URL-адреса в среде $ PYSPARK_SUBMIT_ARGS следующим образом (при условии, что вы используете bash): 

export PYSPARK_SUBMIT_ARGS="--master spark://<Host>:<port>"

например.

export PYSPARK_SUBMIT_ARGS="--master spark://192.168.2.40:7077"

Вы можете поместить это в свой файл .bashrc. Вы получите правильный URL в журнале для мастера свечей (местоположение этого журнала сообщается, когда вы запускаете мастер с /sbin/start_master.sh).

4
quax

Если бы это сообщение об ошибке запускало pyspark в Ubuntu, избавилось от него, установив пакет openjdk-8-jdk

from pyspark import SparkConf, SparkContext
sc = SparkContext(conf=SparkConf().setAppName("MyApp").setMaster("local"))
^^^ error

Установите Open JDK 8:

apt-get install openjdk-8-jdk-headless -qq    
1
user2314737

Потратив много часов на поиски множества разных решений, я могу подтвердить, что Java 10 SDK вызывает эту ошибку. На Mac перейдите в/Library/Java/JavaVirtualMachines, а затем выполните эту команду, чтобы полностью удалить Java JDK 10:

Sudo rm -rf jdk-10.jdk/

После этого, пожалуйста, скачайте JDK 8, тогда проблема будет решена.

1
Kiem Nguyen

В моем случае эта ошибка возникла для скрипта, который раньше работал нормально. Поэтому я понял, что это может быть связано с моим обновлением Java. До того, как я использовал Java 1.8, я случайно обновился до Java 1.9. Когда я вернулся на Java 1.8, ошибка исчезла, и все работает нормально. Для тех, кто получает эту ошибку по той же причине, но не знает, как переключиться обратно на более старую версию Java в Ubuntu: Run

Sudo update-alternatives --config Java 

и сделайте выбор для версии Java

1
Pankaj Kumar

Я получил то же исключение Java gateway process exited......port number, хотя я правильно установил PYSPARK_SUBMIT_ARGS. Я использую Spark 1.6 и пытаюсь заставить pyspark работать с IPython4/Jupyter (ОС: ubuntu как VM гость).

Хотя я получил это исключение, я заметил, что был сгенерирован журнал hs_err _ *.

There is insufficient memory for the Java Runtime Environment to continue. Native memory allocation (malloc) failed to allocate 715849728 bytes for committing reserved memory.

Поэтому я увеличил объем памяти, выделенной для моей Ubuntu, с помощью настройки VirtualBox и перезапустил гостевую Ubuntu. Затем это исключение Java gateway исчезает, и все работает нормально.

1
Ida

Я получил тот же Exception: Java gateway process exited before sending the driver its port number в Cloudera VM при попытке запустить IPython с поддержкой CSV с синтаксической ошибкой:

PYSPARK_DRIVER_PYTHON=ipython pyspark --packages com.databricks:spark-csv_2.10.1.4.0

выдаст ошибку, пока:

PYSPARK_DRIVER_PYTHON=ipython pyspark --packages com.databricks:spark-csv_2.10:1.4.0

не буду.

Разница заключается в том, что последний двоеточие в последнем (рабочем) примере отделяет номер версии Scala от номера версии пакета .

1
Pim Schaaf

У меня та же ошибка при запуске pyspark в pycharm . Я решил проблему, добавив Java_HOME в переменные окружения pycharm.

1
Joon

Возникла такая же проблема, после установки Java с помощью строк ниже, проблема решена!

Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java8-installer
1
Coral

Я разобрался с проблемой в системе Windows. В каталоге установки для Java не должно быть пробелов в пути, например в C:\Program Files. Я переустановил Java в C\Java. Я установил Java_HOME в C:\Java, и проблема исчезла.

1
Sujan Mukherjee

Это старая ветка, но я добавляю свое решение для тех, кто использует Mac.

Проблема была с Java_HOME. Вы должны включить это в свой .bash_profile.

Проверьте свой Java -version. Если вы загрузили последнюю версию Java, но она не отображается как последняя версия, то вы знаете, что путь неверный. Обычно путь по умолчанию - export Java_HOME= /usr/bin/Java

Поэтому попробуйте изменить путь на: /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java

В качестве альтернативы вы также можете загрузить последнюю версию JDK . https://www.Oracle.com/technetwork/Java/javase/downloads/index.html , и это автоматически заменит usr/bin/Java до последней версии. Вы можете подтвердить это, выполнив Java -version снова.

Тогда это должно работать.

0
noiivice

У меня было то же исключение: установка Java JDK работал для меня.

0
Julen Rebollo

Для меня ответом было добавить два «Корня контента» в «Файл» -> «Структура проекта» -> «Модули» (в IntelliJ):

  1. YourPath\искровым 2.2.1-бен-hadoop2.7\питон
  2. YourPath\искровым 2.2.1-бен-hadoop2.7\питон\Lib\py4j-0.10.4-src.Zip
0
Yuuura87

Работал часами на этом. Моя проблема была с установкой Java 10. Я удалил его и установил Java 8, и теперь Pyspark работает.

0
Amin Ghaderi

Убедитесь, что как ваш каталог Java (как указано в вашем пути), так и ваш интерпретатор Python находятся в каталогах без пробелов в них. Это было причиной моей проблемы.

0
Steven

Я получил эту ошибку, потому что мне не хватило места на диске.

0
Josh Terrell

У меня такая же ошибка.

Мои процедуры устранения неполадок:

  1. Проверьте исходный код Spark.
  2. Следуйте сообщению об ошибке. В моем случае: pyspark/Java_gateway.py, строка 93, в launch_gateway.
  3. Проверьте логику кода, чтобы найти основную причину, и вы ее устраните.

В моем случае проблема в том, что PySpark не имеет разрешения на создание какого-либо временного каталога, поэтому я просто запускаю свой IDE с помощью Sudo

0
J.Bo