Flink自动伸缩和最大并行度

5

StreamExecutionEnvironment.setMaxParallelism中的javadoc引用如下: 最大并行度指定动态扩展的上限。

这里指的是哪种动态扩展?我找不到运算符自动缩放的实证证据:无论有多少个空闲插槽,maxParallelism有多大,以及有多少个逻辑分区,实际并行度(根据Web UI)总是通过asetParallelism设置的。

此外,根据这篇https://dev59.com/iqDia4cB1Zd3GeqPMfyT#43493109中被接受且从未受到挑战的回答,Flink中不存在动态缩放。

那么有吗?还是javadoc误导了(或者“动态”在这里的含义是什么?)?如果没有,有计划添加此功能吗?

1个回答

4

Flink(版本1.5.0)目前还不支持动态扩缩容。

然而,可以通过保存一个Savepoint,手动调整作业的并行度(或者由外部服务调整),停止正在运行的作业,并使用调整后的并行度重新启动作业。但是,新的并行度最多只能达到之前配置的最大并行度。一旦作业启动,最大并行度就被固定在保存点中,无法再更改。

动态扩缩容的支持在路上。自2018年5月发布版本1.5.0以来,Flink支持从资源管理器(如Yarn和Mesos)动态分配资源。这是迈向动态扩缩容的重要一步。实际上,在2018年4月的Flink Forward SF 2018上,已经展示了这个功能的实验版本


1
在这种情况下,我能重新定义最大并行性吗? - user2813148
如果您从保存点开始,则无法更改最大并行度。只有在完全启动应用程序(即没有任何先前状态)时,才能更改最大并行度。 - Fabian Hueske
现在1.11.0已经发布了,这方面有任何更新吗? - John Strood
Flink 1.13 提供了一个 API,可以修改现有的快照或引导新的快照。允许的修改包括更改最大并行度的能力。https://nightlies.apache.org/flink/flink-docs-release-1.13/docs/libs/state_processor_api/#writing-new-savepoints - pbskumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接