【发布时间】:2020-08-07 18:09:09
【问题描述】:
我们有一个 flink 应用程序,它在开始时有一个 map 运算符。此操作的输出流使用过滤器路由到多个窗口函数。窗口函数的并行度都为 1。我们将窗口函数的输出形成一个并集,并将其传递给另一个 map 函数,然后将其发送到接收器。
我们需要两个 map 函数的并行性来获取环境的并行性。这正如预期的那样发生,并且窗口函数的并行度确实为 1。 我们为每个任务管理器设置了 1 个插槽。
问题是,当我们将环境的并行度设置为大于 1 时,所有窗口函数任务最终都只会转到第一个任务管理器。事件最终会单独转到这个任务管理器并最终导致瓶颈.当我们的并行度 > 1 时,有没有办法在多个任务管理器之间分配窗口函数任务? rebalance() 会有帮助吗?
【问题讨论】:
-
每个任务管理器都有一个插槽吗?从上面的描述来看,听起来每个 TM 有多个插槽。
标签: apache-flink flink-streaming