flink 中作业、任务和子任务的区别

问题描述 投票:0回答:1

我是 flink 新手并尝试理解:

  1. 工作
  2. 任务
  3. 子任务

我在docs中搜索,但仍然没有得到它。它们之间的主要区别是什么?

apache-flink
1个回答
23
投票

此处解释了任务和子任务 - https://ci.apache.org/projects/flink/flink-docs-release-1.7/concepts/runtime.html#tasks-and-operator-chains:

enter image description here

任务是一个抽象,表示可以在单个线程中执行的操作符链。像 keyBy 这样的东西(它会导致网络洗牌通过某个键对流进行分区)或管道并行性的改变将打破链接并迫使操作员进入单独的任务。在上图中,应用程序具有三个任务。

子任务是任务的一个并行部分。这是可调度、可运行的执行单元。在上图中,应用程序的源/映射和 keyBy/Window/apply 任务的并行度为 2,接收器的并行度为 1 - 总共有 5 个子任务。

作业是应用程序的运行实例。客户端将作业提交给作业管理器,作业管理器将它们分割成子任务并安排这些子任务由任务管理器执行。

更新:

社区决定重新调整任务和子任务的定义,以匹配这些术语在代码中的使用方式——这意味着任务和子任务现在意味着相同的事情:恰好是一个运算符或的一个并行实例运营商链。请参阅术语表了解更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.