繁体   English   中英

使用RestClusterClient在Flink群集上运行已部署的作业

[英]Run already deployed job on Flink Cluster using RestClusterClient

我正在尝试使用Rest请求在Flink Cluster上运行已部署的作业。

我使用一个简单的休息客户端就成功了

POST http://localhost:8081/v1/jars/13775a71-0723-4c62-979b-7e9a9de3a0dc_some.jar/run { "programArgsList" : ["test1", "test2"] }

但是我想用Java来做,因为已经有了RestClusterClient,所以我很乐意使用它,但是它的文档很少

https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/client/program/rest/RestClusterClient.html

从我从代码中看到的情况来看,此RestClusterClient似乎没有这种可能性

看起来它似乎完全遵循CLI中实现的功能,并在此处进行了记录, 网址为https://ci.apache.org/projects/flink/flink-docs-stable/ops/cli.html,因此任何run命令都需要将jar与作业一起传递。

不可能与此客户端一起运行已部署的作业。 我对吗?

Flink的群集REST API旨在与任何REST客户端一起使用。 RestClusterClient附带了flink-clients模块供内部使用。 但是,您也可以通过使用正确设置的Flink Configuration实例化它来直接使用它。

Configuration用于检索群集REST端点。 因此,如果您配置了错误的REST地址或错误的HA模式,则RestClusterClient可能无法与群集通信。 如果您知道用来启动集群的flink-conf.yaml在哪里,那么我建议使用GlobalConfiguration#loadConfiguration(configurationDirectory)加载它。 这应该为您提供一个良好的起点。

一旦启动RestClusterClient您就可以通过

  • submitJob :提交新作业(仅在部署了会话集群的情况下才受支持)
  • requestJobResult :作业执行的结果; 如果是流作业,则可能永远无法完成
  • cancel :取消给定的工作
  • triggerSavepoint :触发​​保存点并返回其路径
  • listJobs :列出集群上所有当前正在运行的作业
  • 还有更多电话

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM