在 Flink 1.10.0 中,我们尝试使用taskmanager.memory.process.size来限制taskmanager.memory.process.size使用的资源,以确保它们不会被 Kubernetes 杀死。 但是,通过以下设置,我们仍然会得到很多任务管理器OOMKilled

关于如何正确设置 Kubernetes 和 Flink 以便我们没有OOMKilled任何建议?

resources:
  requests:
    cpu: 1000m
    memory: 4096Mi
  limits:
    cpu: 1000m
    memory: 4096Mi
  • 以下是1.10.0中flink-conf.yaml中所有内存相关的配置:
jobmanager.heap.size: 820m
taskmanager.memory.jvm-metaspace.size: 128m
taskmanager.memory.process.size: 4096m
  • 我们使用RocksDB,我们不设置state.backend.rocksdb.memory.managedflink-conf.yaml

  • 不确定如何检查any substantial off-heap memory allocations in your application code or its dependencies是否有any substantial off-heap memory allocations in your application code or its dependencies 有什么工具建议这样做吗?

    以下是我们的依赖项仅供参考。

val flinkVersion = "1.10.0"

libraryDependencies += "com.squareup.okhttp3" % "okhttp" % "4.2.2"
libraryDependencies += "com.typesafe" % "config" % "1.4.0"
libraryDependencies += "joda-time" % "joda-time" % "2.10.5"
libraryDependencies += "org.apache.flink" %% "flink-connector-kafka" % flinkVersion
libraryDependencies += "org.apache.flink" % "flink-metrics-dropwizard" % flinkVersion
libraryDependencies += "org.apache.flink" %% "flink-scala" % flinkVersion % "provided"
libraryDependencies += "org.apache.flink" %% "flink-statebackend-rocksdb" % flinkVersion % "provided"
libraryDependencies += "org.apache.flink" %% "flink-streaming-scala" % flinkVersion % "provided"
libraryDependencies += "org.json4s" %% "json4s-jackson" % "3.6.7"
libraryDependencies += "org.log4s" %% "log4s" % "1.8.2"
libraryDependencies += "org.rogach" %% "scallop" % "3.3.1"
  • 我们在 Flink 1.9.1 中使用的配置如下。 它没有OOMKilled

    • Kubernetes
resources:
  requests:
    cpu: 1200m
    memory: 2G
  limits:
    cpu: 1500m
    memory: 2G
  • 弗林克 1.9.1
jobmanager.heap.size: 820m
taskmanager.heap.size: 1024m

  ask by czchen translate from so

本文未有回复,本站智能推荐:

2回复

如何在Kubernetes中使用flink-s3-fs-hadoop

我在 flink 的文档中看到以下信息 - 将相应的 jar 复制到 plugins 目录以使用 s3。 如果我使用Kubernetes部署Flink,我该怎么做。 “要使用 flink-s3-fs-hadoop 或 flink-s3-fs-presto,请在启动 Flink 之前将相应的 JAR
1回复

Flink,TaskManager没有响应

在这种情况下,我们有3个kafka主题(每个主题有50个分区),它们具有不同的消息,而所有这些消息都具有“用户名”字段, 我们定义了一个包装器类, 我们有一个flatMap,可以将原始消息“转换”为元组3, 所有3个流均由类似的flatMap()函数处理, 在flatMap()之
1回复

TaskManager的Flink状态后端

我有一个Flink v1.2设置,其中包含1个JobManager,2个TaskManager,分别位于其自己的VM中。 我将状态后端配置为文件系统,并在上述每个主机的情况下将其指向本地位置(state.backend.fs.checkpointdir:file:/// home / ubun
1回复

如何重新启动flink作业以使用添加的TaskManager

我正在测试Flink 1.3.0中的弹性功能。 我有一份启用了检查点和固定延迟重新启动策略的作业。 当我杀死其中一个TaskManager JVM时,一段时间后,作业将在其余节点上正确地重新启动。 但是,当我添加一个新节点时,该作业不会自动重新启动以使用它。 我尝试使用bin/flin
1回复

PyFlink1.11.2注册自定义UDF函数时无法配置[taskmanager.memory.task.off-heap.size]属性

我对 pyflink 非常陌生,并尝试使用 python API 注册自定义 UDF 函数。 目前,我在服务器环境和本地 IDE 环境中都遇到了问题。 当我尝试执行下面的示例时,我收到一条错误消息:配置的任务堆外内存 0 字节小于最低要求的 Python 工作内存 79 mb。 可以使用配置键“ta
1回复

Flink集群上的taskmanager被杀死

我正在三个节点的群集上执行Apache Flink程序。 其中之一也可以充当工作经理和任务经理。 其他两个只是任务管理器。 当我启动程序(在jobmanager上执行)时,出现以下错误(在该程序无实际执行一分钟之后): 其中giordano-2-2-100-1是作业任务管理器的地址。
1回复

flink使用的大量内存

从上周开始,我在Scala的Flink中构建了DataStream程序。 但是我有一个奇怪的行为,flink使用了比我预期更多的内存。 在由INT键控的processFunction中,我有一个4的ListState为tuple(Int,long),我用它在不同的时间范围内获得不同的唯一C
3回复

如何使用部署在Kubernetes上的Flink运行BeamPython管道?

当 Flink 在 Kubernetes 中作为 Pod 运行时,有人知道如何使用 Flink 运行 Beam Python 管道吗? 我已经成功地使用便携式运行器和指向在 Docker 容器中运行的本地 Flink 服务器的作业服务成功地运行了一个 Beam Python 管道。 我能够实现在我的