弗林克时流分流到就业,使用的UID,重新平衡

问题描述 投票:0回答:1

我非常新的弗林克和即将载入我们的第一个产品版本。我们有数据流。如果数据是新的状态过滤器检查。

  1. 这将是更好分裂流以不同的工作,以获得对并行的更多控制,如图选项1或选项2更好? split steam vs singledocumentation recommendation。我应该把每uid操作e.g:
dataStream
.uid("firstid")
.keyBy(0)
.flatMap(flatMapFunction)
.uid("mappedId)
  1. 我要补充rebalance每个uid如果在所有之后?
  2. 有什么区别,如果我setMaxParallelism描述here或弗林克UI / CLI设置并行?
apache-flink flink-streaming
1个回答
1
投票

你只需要定义.uid("someName")你的状态运营。没有太大的必要,因为在保存点没有什么需要被映射回他们(更多关于这个here)不保持状态运营。如果你这样做虽然不会伤害。 rebalance只会帮助你在数据偏斜的情况下,只有当你不使用密钥流。如果你处理的,关键数据,你的负荷没有得到统一的密钥分配(即你的“热”键负载),然后重新平衡不会帮助你多少。

在你上面的例子,我将开始选择2和潜在的移动选项1如果作业被证明是过于沉重。一般无状态的过程中弗林克非常快,所以除非你想给其他消费者添加到您的状态滤波器的输出,那么不用费心它在这个阶段分开。没有对与错,虽然,取决于你的问题。从简单的开始,并从那里。

[更新]再如图4所示,如果setMaxParallelism我没有记错定义键基团的数目并且因此并行实例的流可被重新调节到的最大数量。这是通过使用内部弗林克,但它不设置你的工作的并行性。通常你需要设置你对你的工作组实际并行的某个倍数(通过当你部署的CLI / UI -p <n>)。

© www.soinside.com 2019 - 2024. All rights reserved.