flink中的作业,任务和子任务之间的区别

时间:2018-12-04 10:03:55

标签: apache-flink

我是flink的新手,并试图了解:

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

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

1 个答案:

答案 0 :(得分:4)

此处解释了任务和子任务-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,接收器的并行度为2,因此将运行该应用程序。

作业是应用程序的运行实例。客户将作业提交给作业经理,该作业将其切成子任务,并安排这些子任务供任务经理执行。