小编Nab*_*Nab的帖子

Spark 驱动程序吊舱因“OOMKilled”状态而被杀死

我们正在使用 spark 2.4.5 在 Kubernetes 集群上运行 Spark Streaming 应用程序。该应用程序通过 Kafka 主题接收大量数据(每 3 毫秒一条消息)。正在使用 4 个执行程序和 4 个 kafka 分区。

在运行时,驱动程序 Pod 的内存不断增加,直到它被 K8s 以“OOMKilled”状态杀死。执行者的记忆没有面临任何问题。

使用此命令检查驱动程序 pod 资源时:

kubectl top pod podName
Run Code Online (Sandbox Code Playgroud)

我们可以看到内存增加到 1.4GB,并且 pod 被杀死。

但是,在 Spark UI 上查看驱动程序的存储内存时,我们可以看到存储内存未完全使用(50.3 KB / 434 MB)。驱动程序存储内存包含驱动程序的 pod内存有什么区别吗?

有没有人有过类似问题的经验?

任何帮助,将不胜感激。

以下是有关该应用程序的更多详细信息:

  • Kubernetes 版本:1.18
  • 火花版本:2.4.5
  • Spark 流上下文的批处理间隔:5 秒
  • 输入数据速率:每 3 毫秒 1 条 kafka 消息
  • 斯卡拉语言

out-of-memory apache-spark spark-streaming kubernetes

7
推荐指数
1
解决办法
546
查看次数