Spark (Kafka) Проблема с потоковой памятью - PullRequest
0 голосов
/ 03 мая 2018

Я тестирую свой первый Spark Streaming трубопровод, который обрабатывает сообщения от Kafka. Однако после нескольких прогонов тестирования я получил следующее сообщение об ошибке There is insufficient memory for the Java Runtime Environment to continue.

Мои данные тестирования действительно малы, поэтому этого не должно происходить. Посмотрев на process, я понял, что, возможно, ранее представленные искровые задания не были полностью удалены? enter image description here

Я обычно отправляю задания, как показано ниже, и использую Spark 2.2.1 /usr/local/spark/bin/spark-submit --packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.2 ~/script/to/spark_streaming.py

И остановите его, используя `Ctrl + C '

Последние несколько строк скрипта выглядят так:

ssc.start()
ssc.awaitTermination()

Обновление

После того, как я изменил способ отправки задания потоковой передачи (команда, подобная приведенной ниже), я все еще сталкивался с той же проблемой, которая возникает после уничтожения задания, память не освобождается. Я только запустил Hadoop и Spark для эти 4 узла EC2.

/bin/spark-submit --packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.2 --py-files ~/config.py --master spark://<master_IP>:7077 --deploy-mode client  ~/spark_kafka.py

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Возможно, это проблема групп драйверов (процесс spark-app-driver), запущенных на хосте, который вы используете для отправки задания spark. Попробуйте сделать что-то вроде

ps aux --forest

или аналогичный в зависимости от вашей платформы, чтобы понять, какие процессы выполняются в данный момент. Или вы можете посмотреть ответы по стеку Потоковая передача искры с актером, который никогда не завершается , это может дать вам представление о том, что происходит.

0 голосов
/ 08 мая 2018

Когда вы нажимаете Ctrl-C, прерывается только процесс отправки, само задание продолжает выполняться. В конце концов вашей системе не хватает памяти, поэтому новая JVM не может быть запущена.

Кроме того, даже если вы перезапустите кластер, все ранее запущенные задания будут перезапущены снова.

Прочтите как правильно остановить работающее приложение Spark .

...