我对Flink是个新手,试着去理解:工作任务子任务我查了一下文件,但还是没有找到。他们之间的主要区别是什么?
yhuiod9q1#
任务和子任务在这里进行了说明--https://ci.apache.org/projects/flink/flink-docs-release-1.7/concepts/runtime.html#tasks-和操作链:任务是一个抽象,表示可以在单个线程中执行的一系列操作符。类似keyby(这会导致网络洗牌以某个键对流进行分区)或管道并行性的更改都会破坏链接并强制操作符执行单独的任务。在上图中,应用程序有三个任务。子任务是任务的一个平行部分。这是可调度、可运行的执行单元。在上图中,应用程序将以两个并行度(源/map和keyby/window/apply任务)运行,一个并行度(sink任务)运行——结果总共有5个子任务。作业是应用程序的运行示例。客户机将作业提交给jobmanager,jobmanager将作业分割成子任务,并安排这些子任务由taskmanagers执行。更新:社区决定重新调整task和sub task的定义,以匹配这些术语在代码中的使用方式——这意味着task和sub task现在的含义是相同的:一个操作符或操作符链的一个并行示例。有关更多详细信息,请参阅术语表。
1条答案
按热度按时间yhuiod9q1#
任务和子任务在这里进行了说明--https://ci.apache.org/projects/flink/flink-docs-release-1.7/concepts/runtime.html#tasks-和操作链:
任务是一个抽象,表示可以在单个线程中执行的一系列操作符。类似keyby(这会导致网络洗牌以某个键对流进行分区)或管道并行性的更改都会破坏链接并强制操作符执行单独的任务。在上图中,应用程序有三个任务。
子任务是任务的一个平行部分。这是可调度、可运行的执行单元。在上图中,应用程序将以两个并行度(源/map和keyby/window/apply任务)运行,一个并行度(sink任务)运行——结果总共有5个子任务。
作业是应用程序的运行示例。客户机将作业提交给jobmanager,jobmanager将作业分割成子任务,并安排这些子任务由taskmanagers执行。
更新:
社区决定重新调整task和sub task的定义,以匹配这些术语在代码中的使用方式——这意味着task和sub task现在的含义是相同的:一个操作符或操作符链的一个并行示例。有关更多详细信息,请参阅术语表。