Я тестирую свой первый Spark Streaming
трубопровод, который обрабатывает сообщения от Kafka
. Однако после нескольких прогонов тестирования я получил следующее сообщение об ошибке
There is insufficient memory for the Java Runtime Environment to continue.
Мои данные тестирования действительно малы, поэтому этого не должно происходить. Посмотрев на process
, я понял, что, возможно, ранее представленные искровые задания не были полностью удалены?
Я обычно отправляю задания, как показано ниже, и использую 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