这几天在摸索Apache Flink,对Task Slot的概念有些疑惑。虽然已经问了几个问题,但有一点我不明白。
我正在使用玩具应用程序进行测试,运行本地集群。我已禁用操作员链接
我从文档中知道插槽允许内存隔离而不是 CPU 隔离。阅读文档,似乎 Task Slot 是一个 Java 线程。
1) 当我使用 parallelism=1 部署我的应用程序时,所有操作员的子任务都部署在同一个插槽中。但是,如果我从 的open()方法打印当前线程 ID AbstractStreamOperator,我会看到不同子任务的不同 ID。那么,它们不是共享同一个线程(即插槽?)。
2) 如果我将并行度从 1 更改为 3,我需要 3 个插槽才能正确重新部署应用程序。文档确认插槽数限制了我可以拥有的并行度。但是为什么我可以在同一个槽里有不同算子的子任务,而在同一个槽里不能有同一个算子的子任务呢?
感谢您的任何解释!
apache-flink ×1