每个 Flink 作业都有一个名为最大并行度(Maximum Parallelism,简称 MaxParallelism)的属性,它决定了 Flink 作业无损扩容的上限。
Maximum Parallelism 参数涉及到 Flink 最底层的状态分配逻辑,因此一旦设定,就不允许随意更改。如果一定要修改该值(例如希望扩容到超过 MaxParallelism 的 CU 数),那么 Flink 就只能丢弃现有运行时状态,重新开始。
换句话说,如果对 Flink 作业作业进行快照(例如触发 Checkpoint、Savepoint 等),那么从这个快照恢复时,新指定的算子最大并行度不能超过这个值,否则 Flink 会抛出异常并终止启动。如果不从快照启动作业,则 Flink 仍可正常启动。
参数说明
默认情况下,新建的作业草稿作业参数 > 高级参数已经自带了该配置,用户无需手动修改。如果用户删掉这个配置项,则 Flink 的最大并行度默认取值为2048
。
注意
在2021年4月14日版本更新前创建的作业,最大并行度默认取值为128
,若需要将这些作业扩容至超过128
个并行度,则需要手动修改该参数值,并丢弃现有运行时状态后重新启动作业。
通常情况下用户无需关注最大并行度的设置,只有在作业中所有算子的最大并行度超过 MaxParallelism 时,或者希望显式限制作业的最大扩容能力时,才需要设置该参数。
注意事项
pipeline.max-parallelism
的最小取值是作业中的所有算子的最大并行度,例如一个作业有5个算子,各个算子的并行度依次是[1, 5, 100, 2, 2]
,那么 pipeline.max-parallelism
能设置的最小值是100
。
Oceanus 平台上的 pipeline.max-parallelism
最大值硬限制为16384
,但我们强烈建议将 pipeline.max-parallelism
维持在 2048 及以下的数值,以避免增加无谓的运行开销,或降低作业的处理能力。
本页内容是否解决了您的问题?