如何使用 REST API 停止 Flink 作业



我正在尝试从 Jenkins 将作业部署到 Flink。 到目前为止,我已经弄清楚了如何提交在构建作业中创建的 jar 文件。 现在我想找到任何使用旧 jar 运行的 Flink 作业,优雅地停止它们,然后利用我的新 jar 开始新工作。

API 具有列出作业、取消作业和提交作业的方法。 但是,似乎没有停止作业终结点。关于如何使用 API 优雅地停止作业的任何想法?

即使停止端点没有记录,它确实存在并且行为类似于取消端点。

基本上,这是 Flink REST API 文档中缺少的一点:

停止作业

DELETE请求/jobs/:jobid/stop.

停止作业,成功的结果{}

 

对于那些不知道取消和停止之间区别的人(从这里复制(:

取消和停止(流式处理(作业之间的区别如下:

在取消调用中,作业中的操作员会立即收到cancel()方法调用以将其取消为 尽快。 如果操作员在取消调用后没有停止,Flink 将开始定期中断线程 直到它停止。

"停止"调用是停止正在运行的流式处理作业的一种更优雅的方式。停止仅适用于作业 使用实现StoppableFunction接口的源。当用户请求停止作业时, 所有源都将收到stop()方法调用。作业将继续运行,直到所有源正确关闭。 这允许作业完成所有动态数据的处理。

当我使用 Flink 1.7 时,以下是取消/停止有关此版本的 flink 作业的方法。

已经由我自己测试

  • 请求路径:/jobs/{jobid}

    jobid - 标识作业的 32 个字符的十六进制字符串值。

  • 请求方法:补丁

  • 查询参数:

    模式

    (可选(:指定终止模式的字符串值。支持的值为:"取消、停止"。

  • 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'

相关内容

  • 没有找到相关文章