代码之家  ›  专栏  ›  技术社区  ›  xingbin

Flink中的工作、任务和子任务之间的差异

  •  0
  • xingbin  · 技术社区  · 6 年前

    我是一个新手,我想试着去理解:

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

    我在里面搜索 docs 但还是没有得到。他们之间的主要区别是什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   David Anderson    6 年前

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

    enter image description here

    任务是一个抽象,表示可以在单个线程中执行的一系列运算符。像key by(它会导致网络混乱以某个键对流进行分区)或管道并行性的更改之类的操作将中断链接,并强制操作员执行单独的任务。在上图中,应用程序有三个任务。

    子任务是任务的一个平行部分。这是可调度的、失控的执行单元。在上面的图表中,对于源/映射和keyby/window/apply任务,应用程序的并行度为2,而对于接收器,应用程序的并行度为1,总共产生5个子任务。

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