如何使用restapi停止flink作业

pgccezyw  于 2021-06-25  发布在  Flink
关注(0)|答案(2)|浏览(980)

我想从Jenkins那里找份工作给Flink。到目前为止,我已经知道如何提交在构建作业中创建的jar文件。现在,我想找到任何使用旧jar运行的flink作业,优雅地停止它们,然后使用我的新jar开始一个新作业。
api有列出作业、取消作业和提交作业的方法。但是,似乎没有停止作业端点。关于如何使用api优雅地停止作业,有什么想法吗?

kq0g1dla

kq0g1dla1#

即使停止端点没有文档记录,但它确实存在,其行为与取消端点类似。
基本上,这是flink rest api文档中缺少的一点:

停止作业 DELETE 请求到 /jobs/:jobid/stop .

停止工作,成功的结果是 {} .
 
对于那些不知道取消和停止之间的区别的人(从这里复制):
取消和停止(流)作业的区别如下:
在取消呼叫时,作业中的操作员会立即收到 cancel() 方法调用以尽快取消它们。如果在cancel调用之后操作符没有停止,flink将开始周期性地中断线程,直到它停止。
“stop”调用是停止正在运行的流式作业的一种更优雅的方式。stop仅适用于使用实现 StoppableFunction 接口。当用户请求停止作业时,所有源都将收到 stop() 方法调用。作业将一直运行,直到所有源正确关闭。这允许作业完成对所有机上数据的处理。

bis0qfac

bis0qfac2#

由于我使用的是flink1.7,下面是如何取消/停止这个版本的flink作业。
我已经测试过了
请求路径: /jobs/{jobid} jobid—标识作业的32个字符的十六进制字符串值。
请求方法:补丁
查询参数:
mode(可选):指定终止模式的字符串值。支持的值为:“取消,停止”。
例子 10.xx.xx.xx:50865/jobs/4c88f503005f79fde0f2d92b4ad3ade4?mode=cancel 启动时主机端口可用
提交作业时,jobid可用
裁判:
https://ci.apache.org/projects/flink/flink-docs-release-1.7/monitoring/rest_api.html`

相关问题