Apache flink flink是否支持暂停flink作业?

Apache flink flink是否支持暂停flink作业?,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我刚刚开始学习apache flink,遇到了一个愚蠢的问题: 我如何暂停flink的工作,然后再继续? flink支持使用命令行挂起作业吗?是的,您当然可以使用flink挂起作业。您想了解,可以从或中触发 已更新 通常,流处理器的目标是在新元素可用时对其进行连续、即时的处理。如果您想暂停处理,那么我想这可能是为了在一段时间内忽略源并删除到达的事件,或者是为了节省一段时间的计算资源,然后在不丢失任何输入的情况下恢复 RichCoFlatmap和CoProcessFunction是您可能会发现有用

我刚刚开始学习apache flink,遇到了一个愚蠢的问题: 我如何暂停flink的工作,然后再继续?
flink支持使用命令行挂起作业吗?

是的,您当然可以使用flink挂起作业。您想了解,可以从或中触发

已更新

通常,流处理器的目标是在新元素可用时对其进行连续、即时的处理。如果您想暂停处理,那么我想这可能是为了在一段时间内忽略源并删除到达的事件,或者是为了节省一段时间的计算资源,然后在不丢失任何输入的情况下恢复

RichCoFlatmap
CoProcessFunction
是您可能会发现有用的构建块。您可以设置一个连接到套接字的控制流(例如),当您想要“挂起”主流时,发送一个事件,该事件会导致主流开始删除其输入,或执行阻塞读取,或睡眠(例如)


或者,您可能会考虑在作业之上添加自己的抽象层,并应对作业ID将发生变化的事实。请注意,作业的名称可以在保存点/重新启动期间保持不变。

考虑回答,据我所知,使用保存点启动作业将创建一个新作业,该作业将具有不同的作业ID,尽管使用了保存点。我的意思是在不改变jobID的情况下,我们可以停止一个作业,然后重新开始。我明白了。为什么你最终会找到一份新工作是个问题?虽然我不知道如何准确地完成你的要求,但如果你能更详细地解释一下你希望完成什么,我们可以找到一种近似的方法。(还有,您是使用批处理还是流式处理?)“为什么您最终会得到一个新作业是个问题?”对于这个问题,我正在做一个项目,该项目将作业ID作为唯一键,并将保持不变,直到作业结束或删除。例如,我们创建了一个id为xxxx的flink流作业,然后使用它,过了一段时间,我们想要恢复它。但是,flink现在使用停止/取消挂起作业,并通过使用保存点再次运行作业来恢复作业,但是,现在jobID不是xxxx,因此,我想知道是否有保持jobID不变的解决方案?想一想,顺便说一句,我上面提到的只是流作业。thinksIt不清楚为什么需要这种暂停,但我已经用一些关于如何近似这种行为的想法扩展了我的答案。@DavidAnderson在您描述的解决方案中,丢失的事件是否可以恢复?例如,如果我正在使用卡夫卡源并希望暂停流,则删除事件仍可能导致卡夫卡偏移量提前,从而记录在保存点中。当我从保存点恢复作业时,删除的事件将不会重播。我是否可以向震源发出信号,使其丢弃事件而不推进偏移量?谢谢