我是Flink的新手,对Task和SubTask感到困惑。
在我看来
任务等效于Spark中的TaskSet或Stage
SubTask等同于Spark中的Task
如果我理解正确,那么下面给出一个简单的例子, 将是1个任务和4个子任务?
object TaskAndSubTaskTest {
def main(args: Array[String]): Unit = {
val benv = ExecutionEnvironment.getExecutionEnvironment
benv.fromCollection(1 to 20).map(_ * 3).filter(_ > 50).setParallelism(4).print()
}
}
答案 0 :(得分:0)
在概念和代码上,任务和子任务的设计和实现也最糟糕。 subtask是线程运行的最小工作单元,但是在Flink源代码中,没有名为Subtask或类似名称的类。有线的是,有一个名为Task的类实现Runanble,这意味着Task是将在线程中运行的单元。
Flink中的任务更像TaskSet或Spark中的Stage,而Flink中的子任务更像Spark中的Task