Docker Flink 1.2.1-当Flink在容器中运行时,如何创建保存点?

Docker Flink 1.2.1-当Flink在容器中运行时,如何创建保存点?,docker,containers,apache-flink,docker-swarm,Docker,Containers,Apache Flink,Docker Swarm,我在Docker上运行了Flink 1.2.1,任务管理器作为Docker群的一部分分布在不同的虚拟机上 我知道Flink中还没有动态缩放功能。因此,如果我想增加运行Flink的task manager(放大)的容器数量,我需要创建一个保存点,停止正在运行的作业,放大task manager容器,然后继续作业 我的问题是:如何创建保存点?文档假定您使用的是命令行客户机,但如果在容器中运行Flink,我想我无法访问它。Web UI也不允许您创建保存点。在这种情况下,我该怎么办 我使用官方的Flin

我在Docker上运行了Flink 1.2.1,任务管理器作为Docker群的一部分分布在不同的虚拟机上

我知道Flink中还没有动态缩放功能。因此,如果我想增加运行Flink的task manager(放大)的容器数量,我需要创建一个保存点,停止正在运行的作业,放大task manager容器,然后继续作业

我的问题是:如何创建保存点?文档假定您使用的是命令行客户机,但如果在容器中运行Flink,我想我无法访问它。Web UI也不允许您创建保存点。在这种情况下,我该怎么办

我使用官方的Flink文档作为参考:


非常感谢您的帮助。

我想我可能已经找到了我自己问题的答案。我会把它贴在这里,以防将来还有其他人在为同样的问题而挣扎

基本上,我使用“docker exec”命令进入运行作业管理器的容器中,并在该容器中执行命令

缩放过程有点复杂,但以下是适合我的:

  • 获取运行作业管理器的容器的ID:
    JOBMANAGER\u CONTAINER=$(docker ps--filter name=JOBMANAGER--format={{{.ID})
  • 取消当前作业并创建保存点:
    docker exec-t-i“$JOBMANAGER\u CONTAINER”flink cancel-s[savepointDirectory]
  • 复制创建的保存点的名称
  • 缩放任务管理器
  • 在Web UI中,再次提交作业,指定上面创建的新并行性和保存点的路径

  • 在Flink实现动态缩放之前,上述过程应该可以正常工作。我还没有在Swarm环境中测试过它,但它在Docker Compose中可以很好地扩展。

    Hi,Docker上的保存点仍然是您所采用的方法吗?