集群在 statefun 上运行时是否可以添加新的嵌入式工作器?

问题描述

这是交易;

我正在处理向运行集群(flink statefun 2.2.1)添加新工作程序(嵌入)。

如您所见,新的任务管理器可以注册到集群中;

enter image description here

但它不会初始化(它不会部署源代码);

在这里错过了什么? (master 和 worker 也必须有相同的 jar 文件?或者用 jar 文件部署 taskmanager 就足够了)

任何帮助将不胜感激, 谢谢。

解决方法

Flink 支持两种不同的缩放方法:activereactive

Reactive mode 是 Fl​​ink 1.13(本周刚刚发布)中的新功能,按您的预期工作:添加(或删除)一个任务管理器,您的应用程序将适应新的并行性。你可以read about elastic scaling and reactive mode in the docs。 反应模式目前正在开发中,但可能需要您的需求。

概括地说,对于活动模式重新缩放,您需要:

  1. 执行 stop with savepoint 以关闭当前作业,同时对其状态进行快照。
  2. 使用新的并行性重新启动 using the savepoint as the starting point

具体细节取决于集群的部署方式。

有关分步教程,请参阅 Upgrading & Rescaling a Job 中的 Flink Operations Playground


以上适用于重新缩放 statefun 嵌入式函数。由于是无状态的,远程函数可以更直接地重新缩放。