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

生产环境 部署flinksql 任务( flink on yarn )太消耗slot.怎么办?

想请教下生产环境 部署flinksql 任务( flink on yarn )太消耗slot.这个要怎么解决. 是把slot 和cpu之比调大吗? 具体比例多少合适啊?

展开
收起
wenti 2023-02-06 17:06:41 324 0
2 条回答
写回答
取消 提交回答
  • 解决 Flink SQL 任务在生产环境中消耗过多 Yarn slot 的方法

    1. 调整 slot 与 CPU 比例

    是的,调整 slot 与 CPU 比例可以帮助减少任务消耗的 slot 数。建议将比例设置为 1 slot : 2-4 CPU 核心。这将为每个 slot 提供足够的计算资源,同时防止过度分配。

    1. 优化查询

    避免使用不必要的子查询和连接。
    使用索引来提高查询性能。
    优化数据源连接,例如使用连接池。

    1. 并行度调整

    对于数据量较大的任务,增加并行度可以提高吞吐量并减少每个 slot 的负载。
    对于数据量较小的任务,降低并行度可以节省资源。

    1. 资源管理

    使用 Flink 的资源管理特性,例如动态资源分配和反压,以优化资源利用率。
    考虑使用自定义资源管理器,例如 YARN ResourceManager NG。

    1. 容器大小

    确保容器大小足以容纳任务所需的资源。过小的容器会导致任务失败或性能下降。

    1. 运维实践

    定期监控任务资源使用情况并进行必要的调整。
    确保集群上的资源充足,避免过度使用。
    使用 Flink Web UI 或其他监控工具来跟踪任务性能和资源消耗。
    建议的 slot 与 CPU 比例

    对于大多数生产环境,建议将 slot 与 CPU 比例设置为 1 slot : 4 CPU 核心。这提供了足够的计算能力,同时最大限度地减少了 slot 消耗。

    注意:最佳比例可能因集群配置、任务特征和数据量而异。建议进行实验和监控以找到最适合特定环境的设置。

    2024-02-27 16:52:29
    赞同 展开评论 打赏
  • slot与cpu的关系:每个Flink TaskManager在集群中提供处理槽。 插槽的数量通常与每个TaskManager的可用CPU内核数成比例。一般情况下你的slot数是你每个TM的cpu的核数。经验上讲Slot的数量与CPU-core的数量一致为好。但考虑到超线程,可以让slotNumber=2*cpuCore。例如这里有6个slot,所以给3或者6个core比较好。

    2023-02-10 07:31:57
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载