Flink再平衡和连锁战略



背景

我们使用dataStream.rebalance()在分区上创建相等的负载。然而,我们通常将链接策略设置为HEAD,以允许多线程转换分配。

问题

建议在重新平衡之前设置链接策略,还是Flink在重新平衡后自动允许多线程转换分配?

作为用户,您通常从不设置链接策略。只有当您有自定义运算符时才能设置它。事实上,我们目前正在反对运营商级别的链接策略,只允许在运营商工厂级别使用。

默认情况下,所有操作符都是ALWAYS可链接的。这意味着,只要它们共享同一个插槽并与前向信道连接,就会跳过网络/本地信道,并将记录直接交给下一个转换。因此,如果运算符通过任何类型的混洗连接(例如rebalance(连接,则它们都不能被链接。

因此,在不改变任何链接策略的情况下,您将获得由任何shuffle操作分隔的长管道。

现在,如果在shuffle操作之后直接将所有操作符的值更改为HEAD,则实际上会有一个no-op。头部意味着操作员只能是操作员链的头部。如果你在洗牌后也改变了所有转换的策略,你实际上根本不会得到任何链。(这一点从你的问题中并不完全清楚(

TL;DR不会改变链接策略,除非您实现自己的运营商。它不会比默认值更快。

相关内容

  • 没有找到相关文章

最新更新