Flink全托管支持全新的资源配置模式,即您可以在专家模式下,对作业的Task所需的资源进行细粒度的资源控制,以满足不同场景下的作业运行需求。本文将为您介绍专家模式的资源配置方式。

背景信息

目前,Flink全托管支持以下三种资源配置模式:
  • 基础模式:开源Flink的资源配置方式,您可以配置并发度、JM和TM的内存和CPU。
  • 专家模式 (BETA):Flink全托管引入的全新的资源配置模式,支持对作业所使用的资源进行细粒度的资源控制,以满足作业吞吐的要求。

    系统会自动根据您配置的资源需求,以Native K8s的模式运行作业,TM的规格和个数将会根据Slot的规格和作业并发度,由系统自动决定。

  • 智能模式(BETA):智能模式为专家模式的升级版。在智能模式下,作业将启用专家模式的资源配置,同时开启AutoPilot自动调优功能。

    在智能配置模式下,您无需配置相关资源,AutoPilot会自动为作业生成资源配置,并根据作业的运行情况帮您进行资源配置的调优,在确保作业处于健康的状态下,优化作业资源的使用。AutoPilot详情请参见配置自动调优

使用限制

  • 仅SQL作业支持专家模式。
  • 仅VVP 2.5.4版本及以上版本支持在专家模式下对作业的Task所需的资源进行细粒度的资源控制。

资源配置建议

  • 建议Source节点并发度和分区数成比例,即并发度数能整除分区数。例如Kafka有16个分区,则并发度建议设置为16、8或4,这样可以避免数据倾斜。同时Source节点的并发度不宜设置太小,避免一个Source需要读取太多数据,导致出现入口瓶颈,影响作业吞吐。
  • 建议按需配置除Source外的其他节点的并发度。流量大的节点,并发设置大一些;流量小的节点,并发设置小一些。
  • 建议在有明确异常或者需求时,再调整Heap Memory和Off-heap Memory的大小,例如作业出现OOM或严重GC等。因为在作业正常运行时,调整Heap Memory和Off-heap Memory的大小,不会明显改变作业的吞吐量。

操作步骤

  1. 进入资源配置入口。
    1. 登录实时计算管理控制台
    2. Flink全托管页签,单击目标工作空间操作列下的控制台
    3. 在左侧导航栏上,选择应用 > 作业运维
    4. 单击目标作业名称。
    5. 在作业详情页面右上角,单击编辑
    6. 在页面右侧,单击资源配置页签。
    7. 资源模式选择为专家模式
  2. 配置JM的资源信息。
    您可以填写JM对应的CPU和内存。
    配置项 说明
    Job Manager CPUs 默认值为1。
    Job Manager Memory 最小值为1 GB。单位建议使用GB或MB,例如,1024 MB或1.5 GB。
  3. 配置SLOT资源。
    1. 单击立刻获取
    2. 单击SLOT框上的编辑图标。
      SLOT
    3. 修改SLOT配置信息。
      修改slot信息
      说明
      • 此处设置的并发数为整个作业全局的并发数。设置完成后,系统将自动设置每个VERTEX为相同的并发数。您也可以单击VERTEX框的编辑图标,按需为某个VERTEX设置并发数。
      • 系统会根据作业的计算逻辑按需自动生成Statebackend、Python和Operator所需的内存,无需您手动进行配置。
      • 系统默认会按照一个SLOT所需的全部内存大小(即Heap Memory、Off-heap Memory、Statebackend、Python和Operator内存之和),以1:4的比例,生成一个SLOT所需的CPU。
  4. 修改资源配置生成策略。
    1. 在作业开发页面右侧,高级配置面板更多Flink配置中,添加如下参数信息。
      配置项 说明
      table.exec.split-slot-sharing-group-per-vertex 是否为每个VERTEX分配单独的SLOT,默认为false。
      table.exec.slot-sharing-group.prefer-heap-memory 一个SLOT默认的堆内存(Heap Memory)的大小,默认值为1 GB。
      table.exec.slot-sharing-group.prefer-off-heap-memory 一个SLOT默认的堆外内存(Off-heap Memory)大小,默认值为32 MB。
      table.exec.state-backend.prefer-managed-memory 一个State Backend所需的管理内存,默认值为512 MB。
      table.exec.resource.default-parallelism 作业的初始并发度,默认值为1。
    2. 资源配置面板中,单击重新生成资源计划
    3. 单击上线