gpt4 book ai didi

apache-spark - Spark 驱动程序 pod 被杀死,状态为 'OOMKilled'

转载 作者:行者123 更新时间:2023-12-04 11:15:03 26 4
gpt4 key购买 nike

我们正在使用 spark 2.4.5 在 Kubernetes 集群上运行 Spark Streaming 应用程序。
该应用程序通过 Kafka 主题接收大量数据(每 3 毫秒一条消息)。正在使用 4 个执行程序和 4 个 kafka 分区。
在运行时,驱动程序 Pod 的内存不断增加,直到它被 K8s 以“OOMKilled”状态杀死。执行者的内存没有面临任何问题。
使用此命令检查驱动程序 pod 资源时:

kubectl top pod podName
我们可以看到内存增加到 1.4GB,并且 pod 被杀死。
但是,在 Spark UI 上检查驱动程序的存储内存时,我们可以看到存储内存未完全使用(50.3 KB/434 MB)。 有什么区别吗驱动程序存储内存 ,以及 包含驱动程序的 pod 的内存 ?
有没有人有过类似问题的经验?
任何帮助,将不胜感激。
以下是有关该应用程序的更多详细信息:
  • Kubernetes 版本:1.18
  • Spark 版本:2.4.5
  • Spark 流上下文的批处理间隔:5 秒
  • 输入数据速率:1 条 kafka 消息,每 3 毫秒
  • Scala 语言
  • 最佳答案

    简而言之,执行器内存由三部分组成:

  • 反向内存 (300MB)
  • 用户内存 ((all - 300MB)*0.4),用于数据处理逻辑。
  • Spark 内存 ((all-300MB)*0.6( spark.memory.fraction )),用于 Spark 中的缓存和 shuffle。

  • 除此之外,还有 max(executor memory * 0.1, 384MB) ( 0.1spark.kubernetes.memoryOverheadFactor )K8s 中非 JVM 内存使用的额外内存。
    在 K8S 中通过内存开销添加执行器内存限制应该可以解决 OOM。
    您也可以减少 spark.memory.fraction为用户内存分配更多 RAM。

    关于apache-spark - Spark 驱动程序 pod 被杀死,状态为 'OOMKilled',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63412368/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com