开发者社区> 问答> 正文

flink对task分配slot问题

请教一个问题,当前同一个job下的多个task(不在一个算子链)中,都会存在某一个subTask任务过重,这些subTask会分配到同一个slot下吗?

flink在对subTask分配slot时候,会先判断slot当前存在的任务数,磁盘IO之类的吗?*来自志愿者整理的flink邮件归档

展开
收起
小阿矿 2021-12-07 11:45:16 2327 0
1 条回答
写回答
取消 提交回答
  • Flink 在进行 slot sharing 的时候,不会考虑当前 slot 的任务数、磁盘 IO 这些,而是会遵循“相同 task 的多个

    subtask 不能分配到同一个 slot 中”这样的一个规则。

    举个例子:

    如果作业中有 A, B 两个 vertex,并发为 2,那就有 A1, A2, B1, B2 这 4 个 subtask。

    那么 A1 和 A2 不能放到一个 slot 中,B1 和 B2 不能够放到一个 slot 中。

    所以,slot sharing 的结果只能是 (A1, B1), (A2, B2) 或 (A1, B2), (A2, B1) 这两种情况。

    通常情况下,A 和 B 之间的负载可能存在较大差异,而 A1 和 A2、B1 和 B2 之间通常不会有太大差异。

    因此,slot sharing 的规则使得每个 slot 中都分配了一个 A 和一个 B,各个 slot 之间的负载大体上是均衡的。*来自志愿者整理的flink邮件归档

    2021-12-07 16:17:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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