我刚刚开始学习 Apache Flink 并遇到以下问题: 如何暂停 flink 作业,然后恢复它? Flink 是否支持使用命令行暂停作业?
是的,你当然可以用 Flink 做到这一点。想要了解可以从命令行或 REST API 触发的保存点。
更新
通常,流处理器的目标是在新元素可用时对其进行连续、即时的处理。如果您想暂停处理,那么我想这可能是为了暂时忽略源并删除到达的事件,或者希望暂时节省计算资源,稍后恢复而不会丢失任何输入。
RichCoFlatmap
和CoProcessFunction
是您可能会发现有用的构建块。例如,您可以设置连接到套接字的控制流,当您想要"挂起"主流时,发送一个事件,导致主流开始丢弃其输入,或者执行阻塞读取或睡眠。
或者,您可以考虑在作业之上添加自己的抽象层,并应对作业ID将发生变化的事实。请注意,作业的名称可以在保存点/重新启动期间保持不变。