Flink架构分析之资源分配

Task Slot

    Flink中每个真正执行任务的TaskManager都是一个JVM进程,其在多线程环境中执行一个或者多个子任务。为了控制一个JVM同时能运行的任务数量,flink引入了task slot的概念。每一个task solt代表了TaskManager资源的一个子集,比如,一个拥有3个solt的TaskManager,每一个solt可以使用1/3TM所管理的内存。进行资源分割意味着为子任务保留足够的内存,从而避免与其他子任务进行竞争。注意:当前solt还不能分割cpu资源,仅仅对内存进行了分割。

    通过调整TMsolt的数量,用户可以确定子任务的隔离程度,比如,每个TM只设置一个solt,那么就意味着每一个任务组都在单独的JVM中执行。共用JVM的任务可以共享TCP链接,心跳消息,甚至可能共享数据集。

    默认情况下,flink允许子任务共享slot只要这些子任务属于同一job。允许solt共享主要有以下两方面的好处:

flink计算一个job所需solt数量时,只需要确定所其最大并行度(parallelism),而不用计算每一个任务的并行度的总和。

能更好的利用资源,如果没有solt共享,那些资源需求不大的map子任务将和资源需求更大的window占用相同的资源。

    当然Flink也提供了资源分组机制相关API,允许用户避免非预期的资源共享。

startNewChain 从此operator开始新的资源共享链

disableChaining 禁止把此operator加入到资源共享链中

slotSharingGroup 把此operator加入到指定的资源共享组中

资源分配逻

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农老K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值