【问题标题】:Flink rebalance and chaining strategyFlink 再平衡和链式策略
【发布时间】:2020-04-20 11:06:43
【问题描述】:

背景

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

问题

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

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    作为用户,您通常从不设置链接策略。仅当您有自定义运算符时才设置它。事实上,我们目前正在弃用操作员级别的链式策略,并且只允许在操作员工厂级别使用它。

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

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

    现在,如果您将其更改为 HEAD 以用于直接在 shuffle 操作之后的所有运算符,您实际上将有一个无操作。 Head 表示算子只能是算子链的头部。如果你还改变了洗牌后所有转换的策略,你实际上根本不会得到链。 (从您的问题中,这一点并不完全清楚)

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

    【讨论】:

      猜你喜欢
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 2020-02-28
      • 2013-09-11
      相关资源
      最近更新 更多