Operator细粒度资源管理(FLink FLIP-53翻译)

文章目录目的:目的:目前(Flink 1.9), Flink采用粗粒度的资源管理方法,tasks根据job的最大并行度,部署到尽可能多的预定义slots中,而不管每个task/operator可以使用多少资源。上述方法易于设置,但是不能最佳的利用和性能。任务可能具有不同的并行度(parallelisms),因此不是所有的slots都包含完整的任务管道(task pipeline)。对于任...
摘要由CSDN通过智能技术生成

目的

目前(Flink 1.9), Flink采用粗粒度的资源管理方法,task根据job的最大并行度,部署到尽可能多的预定义slot中,而不管每个task/operator可以使用多少资源。
上述方法易于设置,但是不能最佳的利用资源和性能。

  • 任务可能具有不同的并行度(parallelisms),因此不是所有的slot都包含完整的任务管道(task pipeline)。对于任务较少的slot,为整个pipeline预定义的slot资源可能会造成浪费。
  • 在资源使用方面(堆、网络、托管内存等),很难将slot提供的资源与task需求保持一致。

我们计划实现细粒度资源管理,在tasks资源需求已知、tasks资源需求未知(即可调整),这两种情况下,优化资源的使用。

我们计划改进Flink的资源管理机制,使得:

  • 流处理和批处理模式下,均能很好的工作
  • 已指定或未知task需要的资源,均能很好的工作

当前FLIP主要关注细粒度资源管理的一个方面:Operator资源管理

  • 我们计划基于比例来管理内存配额,以统一以下内存管理场景:Operator指定了资源需求、Operator未指定资源需求
  • 我们计划将slot共享组缩小到pipelined regions单元,在不同的pipelined regions中,task可以并发运行,使用这种方法,对于tasks/Operator在同一个slot中共享内存,我们可以得到合理但又不太保守的比例。

范围

  • 当前FLIP提出的方法,应该只适用于Blink planner提供的DataStream API和SQL/Table API作业(blink planner内部包括无界流处理和有界批处理job)。当前FLIP不能作用于DataSet API(批处理job)
    • 对于Dataset Job,已经有一些基于比例的方法实现(在TaskConfig和ChainedDriver中),我们不会对这些已有的方法做任何更改
    • 本FLIP假定Job的Operators具有已知的资源请求配置,这些资源需求配置,已经在 PhysicalTransformations类中ResourceSpecs里描述。
      • 本FLIP不会讨论怎样设置一个Job中,Operators的资源需求配置
      • 当前状态(包括Flink 1.10开发计划),如何设置Job Opererators的资源需求的可以描述如下:
        • SQL/Table API–Blink optimizer(优化器)可以根据用户的configuration(配置),设置Operator资源(默认:未知)
        • DataStream API–目前没有设置Operator资源的方法/接口。可以在以后添加
        • DataSet API–已经有用户接口,用于设置Operator资源

公共接口

  • ResourceSpec对象
  • 引入一个新的配置“taskmanager.defaultSlotResourceFraction”,虽然不赞成这种方式,但是与"taskmanager.numberOfTaskSlots"配置保持兼容

修改建议

通用的Workflow(工作流)

细粒度Operator资源管理前提下,一个通用的workflow实现方式如下:

  • 未知的(默认)或指定的(例如blink planner)PhysicalTransformations#ResourceSpecs对象,它们描述了t
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值