【问题标题】:Spark (Kafka) Streaming Memory IssueSpark(Kafka)流内存问题
【发布时间】:2018-10-14 05:04:29
【问题描述】:

我正在测试我的第一个 Spark Streaming 管道,它处理来自 Kafka 的消息。但是,经过几次测试运行后,我收到以下错误消息 There is insufficient memory for the Java Runtime Environment to continue.

我的测试数据非常小,因此不应该发生这种情况。在查看process 之后,我意识到之前提交的 Spark 作业可能没有完全删除?

我通常提交如下工作,我使用的是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()

更新

在我更改提交 spark 流作业的方式(如下命令)后,我仍然遇到同样的问题,即在终止作业后,内存不会被释放。我只启动了 HadoopSpark for那 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

【问题讨论】:

    标签: java apache-spark apache-kafka out-of-memory


    【解决方案1】:

    当您按下 Ctrl-C 时,只有提交者进程被中断,作业本身继续运行。最终您的系统内存不足,因此无法启动新的 JVM。

    此外,即使重启集群,之前运行的所有作业也会重新启动。

    阅读how to stop a running Spark application properly

    【讨论】:

    • 感谢您的建议。我尝试了两种方法/usr/local/spark/bin/spark-class org.apache.spark.deploy.Client kill &lt;master URL:7077&gt; &lt;worker-ID&gt; 并将发布请求发送到"&lt;master url&gt;:6066/v1/submissions/kill/&lt;worker-ID&gt;"。但是,两种方式都无法释放内存......也许是因为我曾经使用错误的命令来使用集群启动 spark 作业?这是我用的/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
    • 你怎么知道内存没有被释放?命令成功了吗?确保没有运行:“curl http://localhost:6066/json”和/或this。另见Spark REST API
    • 我查看了htop 并按内存使用情况进行排序以确定那些火花进程是否已被杀死。我重新启动了我的集群(在 EC2 上)并且这些进程都消失了......也许所有这些都是因为我没有正确提交作业?我通常在我的主节点上提交作业。这意味着我应该使用client mode?或者您建议通过 REST API 提交?
    • @TH339 请描述您的程序如何运行该应用程序。我的第一个建议是检查应用程序在本地的运行情况(Spark Master local[*]
    • @wind,我在一个有 1 个 master 和 3 个 worker 的 EC2 集群上运行了这项工作。
    【解决方案2】:

    这可能是您用来提交 spark 作业的主机上运行的一堆驱动程序(spark-app-driver 进程)进程的问题。尝试做类似的事情

    ps aux --forest
    

    或类似的,具体取决于您的平台,以了解当前正在运行的进程。或者您可以查看 stackoverflow Spark Streaming with Actor Never Terminates 上的答案,它可能会让您了解正在发生的事情。

    【讨论】:

      猜你喜欢
      • 2014-11-12
      • 2018-08-19
      • 1970-01-01
      • 2016-10-15
      • 2021-01-05
      • 2012-07-20
      • 2016-03-12
      • 2018-11-10
      • 1970-01-01
      相关资源
      最近更新 更多