Hi:
    
我想,你可能打算通过API的方式来取消正在运行的流任务。Flink任务提交时需要构建ClusterClient,提交成功后会返回任务对应的JobId。任务取消时,通过调用ClusterClient的cancel(JobID
 jobId)取消流任务。
    Flink源码可以看看 
CliFrontend[1]中的逻辑,如果觉得比较麻烦可以参考https://github.com/todd5167/flink-spark-submiter项目的任务提交部分,取消任务时构建ClusterClient即可。










| |
jianxu
|
|
rjia...@163.com
|




在2020年07月11日 16:19,Congxian Qiu<qcx978132...@gmail.com> 写道:
Hi

如果你是想做一个作业管理的平台,可以尝试看一下 CliFrontend[1] 中相关的逻辑,对于 On Yarn
的作业,简单地说你需要能够正确的初始化一个 client 和 Yarn RM 交互,然后你需要知道 applicationId,另外你还需要知道
flink 的 JobId,接下来就是调用 Flink 的接口了

如果像更多的了解参数如从和命令行传到 java 代码的,你可以自己写一个单元测试,单步调试一下整个流程。

[1]
https://github.com/apache/flink/blob/master/flink-clients/src/main/java/org/apache/flink/client/cli/CliFrontend.java

Best,
Congxian


godfrey he <godfre...@gmail.com> 于2020年7月9日周四 上午10:08写道:

可以通过 StreamExecutionEnvironment#executeAsync 提交作业,返回 JobClient [1], 通过
JobClient 可以 cancel 作业,获取 job status。

[1]

https://cwiki.apache.org/confluence/display/FLINK/FLIP-74%3A+Flink+JobClient+API

Best,
Godfrey

Evan <chengyanan1...@foxmail.com> 于2020年7月9日周四 上午9:40写道:

这个问题之前看到过有人在问,但是没有看到答案,我想问一下,Flink Streaming
API有没有提供类似的接口,调用后就能停止这个Stream作业呢?

回复