我想在kubernetes上运行flink工作,使用(持久)状态后端,似乎 crashing taskmanagers 没有问题,因为他们可以向求职者询问他们需要从哪个检查点恢复,如果我理解正确的话。
crashing jobmanager似乎有点困难。在这个翻页6页面上,我读到了zookeeper,需要能够知道作业管理员需要使用什么检查点来恢复和领导者选举。
看到kubernetes会在崩溃时重新启动jobmanager,新的jobmanager是否有办法恢复作业而无需设置zookeeper集群?
我们正在研究的当前解决方案是:当kubernetes想要终止jobmanager(因为它想要将其移动到另一个vm)然后创建一个保存点,但这只适用于优雅的关闭。
Flink需要ZooKeeper集群才能从 JobManager crashes中恢复。不过,我认为你可以有一个轻量级实现的HighAvailabilityServices,CompletedCheckpointStore,CheckpointIDCounter并且SubmittedJobGraphStore它可以给你带来很远。
鉴于您始终只有一个JobManager运行(不完全确定K8是否可以保证这一点)并且您有一个持久存储位置,您可以实现一个CompletedCheckpointStore从持久存储系统中检索已完成检查点(例如,读取所有存储的检查点)文件)。此外,您将拥有一个文件,其中包含当前检查点ID计数器CheckpointIDCounter以及所有提交的作业图表SubmittedJobGraphStore。因此,基本思想是将所有内容存储在可由单个JobManager访问的持久卷上。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。