【发布时间】:2020-05-15 02:59:49
【问题描述】:
我是 Flink 的新手。据我了解,在 Flink 中,一个 TaskManager 可以分为多个 slot,一个 slot 可以分配多个任务,一个任务是一个线程。
让我们看一下 WordCount 示例:
据我了解,一个任务就是一个线程,共有三个任务:Source + map()、keyBy()/window()/apply() 和Sink。所以他们每个人都有自己的线程,这意味着我们在这个例子中需要三个线程。我们可以将三个任务(三个线程)放在一个槽中。
不过,现在我正在阅读它的官方文档:https://ci.apache.org/projects/flink/flink-docs-stable/dev/parallel.html
一个 Flink 程序由多个任务(转换/算子, 数据源和接收器)。 一个任务被分成几个并行的 执行实例,每个并行实例处理一个子集 任务的输入数据。一个任务的并行实例数 称为并行性。
如何理解“一个任务被分成多个并行执行实例”? “几个并行执行实例”是否意味着多线程?那么一个Task可以是多线程吗?
我现在很困惑。
【问题讨论】:
标签: multithreading parallel-processing apache-flink flink-streaming