开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink on yarn提交作业,这是什么原因?

flink on yarn提交作业,无论怎么设置,yarn上总是比自己设置的ftm和fjm内存多两个G,这是什么原因,有大佬知道吗?

展开
收起
真的很搞笑 2024-02-15 08:55:10 60 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在使用Flink on YARN模式提交作业时,您遇到的实际内存使用比设置的flink.taskmanager.memory.process.size (FTM)和flink.jobmanager.memory.process.size (FJM)多出两个G的情况,可能是由以下原因导致的:

    1. Yarn自身的预留内存:YARN为了确保系统的稳定性和资源的可用性,可能会为每个节点预留一部分内存。这部分内存不会分配给具体的应用程序,而是作为YARN管理的预留资源。
    2. 容器的内存溢出允许:在YARN中,容器(即TaskManager或JobManager)的内存是可以超过申请值的,这是通过配置yarn.nodemanager.vmem-check-enabled来控制的。如果这个参数设置为false,那么容器可以使用超过其申请的内存量。
    3. 内存分配策略:YARN有多种内存分配策略,如Dominant Resource Fairness (DRF)等。这些策略可能会影响实际分配给任务的内存量。
    4. 其他系统进程和组件:YARN节点上可能还运行着其他系统进程或服务,这些也可能占用了一部分内存。
    5. YARN的配置:YARN的一些配置参数,如yarn.scheduler.maximum-allocation-vcoresyarn.scheduler.maximum-allocation-mb,可能会限制每个作业的最大资源分配,从而影响到实际可用的内存量。
    6. Flink的配置:Flink的任务管理器和作业管理器的配置也会影响内存的使用,例如yarn.application-master.memory.mbyarn.taskmanager.memory.mb等。
    7. 版本兼容性问题:不同版本的Flink和YARN可能存在兼容性问题,导致内存分配不符合预期。
    8. 作业的其他资源需求:提交的Flink作业本身可能需要额外的内存资源,比如用于存储中间结果、日志文件等。
    9. 环境变量的影响:有时候环境变量的设置也会影响到YARN的资源分配。
    10. YARN队列配置:如果您的YARN集群使用了队列资源管理,那么队列的配置也会影响到资源的分配。
    11. Session-Cluster与Per-Job-Cluster的差异:Flink在YARN上有两种运行模式,Session-Cluster和Per-Job-Cluster。在Session-Cluster模式下,资源在启动集群时就已定义,可能会导致内存使用上的固定开销;而在Per-Job-Cluster模式下,每个作业会启动一个新的集群,这可能会有不同的内存使用情况。

    综上所述,为了解决这个问题,您可以尝试调整YARN和Flink的相关配置参数,检查YARN集群的内存预留策略,以及监控YARN节点上的其他系统进程和服务的内存使用情况。同时,确保您使用的Flink和YARN版本是兼容的,并且根据您的作业特性合理配置资源。如果问题依旧存在,建议查阅Flink和YARN的官方文档,或者在相关社区和论坛中寻求帮助。

    2024-02-16 10:55:13
    赞同 展开评论 打赏
  • 是不是yarn上配置的,container的最小内存,就有这么多了 ,此回答整理自钉群“【③群】Apache Flink China社区”

    2024-02-15 09:31:34
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    深度学习+大数据 TensorFlow on Yarn 立即下载
    Docker on Yarn 微服务实践 立即下载
    深度学习+大数据-TensorFlow on Yarn 立即下载