这个问题之前看到过有人在问,但是没有看到答案,我想问一下,Flink Streaming API有没有提供类似的接口,调用后就能停止这个Stream作业呢?
|
可以通过 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 <[hidden email]> 于2020年7月9日周四 上午9:40写道: > 这个问题之前看到过有人在问,但是没有看到答案,我想问一下,Flink Streaming > API有没有提供类似的接口,调用后就能停止这个Stream作业呢? |
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 <[hidden email]> 于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 <[hidden email]> 于2020年7月9日周四 上午9:40写道: > > > 这个问题之前看到过有人在问,但是没有看到答案,我想问一下,Flink Streaming > > API有没有提供类似的接口,调用后就能停止这个Stream作业呢? > |
Hi:
我想,你可能打算通过API的方式来取消正在运行的流任务。Flink任务提交时需要构建ClusterClient,提交成功后会返回任务对应的JobId。任务取消时,通过调用ClusterClient的cancel(JobID jobId)取消流任务。 Flink源码可以看看 CliFrontend[1]中的逻辑,如果觉得比较麻烦可以参考https://github.com/todd5167/flink-spark-submiter项目的任务提交部分,取消任务时构建ClusterClient即可。 | | jianxu | | [hidden email] | 在2020年07月11日 16:19,Congxian Qiu<[hidden email]> 写道: 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 <[hidden email]> 于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 <[hidden email]> 于2020年7月9日周四 上午9:40写道: 这个问题之前看到过有人在问,但是没有看到答案,我想问一下,Flink Streaming API有没有提供类似的接口,调用后就能停止这个Stream作业呢? |
Zeppelin 能够帮你提交和cancel job,就是通过上面jianxu说的ClusterClient
api来做到的,对zeppelin感兴趣的话,可以参考这个视频 https://www.bilibili.com/video/BV1Te411W73b?p=21 jianxu <[hidden email]> 于2020年7月11日周六 下午4:52写道: > Hi: > > 我想,你可能打算通过API的方式来取消正在运行的流任务。Flink任务提交时需要构建ClusterClient,提交成功后会返回任务对应的JobId。任务取消时,通过调用ClusterClient的cancel(JobID > jobId)取消流任务。 > Flink源码可以看看 CliFrontend[1]中的逻辑,如果觉得比较麻烦可以参考 > https://github.com/todd5167/flink-spark-submiter > 项目的任务提交部分,取消任务时构建ClusterClient即可。 > > > > > > > > > > > | | > jianxu > | > | > [hidden email] > | > > > > > 在2020年07月11日 16:19,Congxian Qiu<[hidden email]> 写道: > 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 <[hidden email]> 于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 <[hidden email]> 于2020年7月9日周四 上午9:40写道: > > 这个问题之前看到过有人在问,但是没有看到答案,我想问一下,Flink Streaming > API有没有提供类似的接口,调用后就能停止这个Stream作业呢? > > -- Best Regards Jeff Zhang |
如果是 on yarn 的话,也可以直接调用 yarn 的 kill 命令停止作业
Jeff Zhang <[hidden email]> 于2020年7月11日周六 下午11:23写道: > Zeppelin 能够帮你提交和cancel job,就是通过上面jianxu说的ClusterClient > api来做到的,对zeppelin感兴趣的话,可以参考这个视频 > > https://www.bilibili.com/video/BV1Te411W73b?p=21 > > > jianxu <[hidden email]> 于2020年7月11日周六 下午4:52写道: > > > Hi: > > > > > 我想,你可能打算通过API的方式来取消正在运行的流任务。Flink任务提交时需要构建ClusterClient,提交成功后会返回任务对应的JobId。任务取消时,通过调用ClusterClient的cancel(JobID > > jobId)取消流任务。 > > Flink源码可以看看 CliFrontend[1]中的逻辑,如果觉得比较麻烦可以参考 > > https://github.com/todd5167/flink-spark-submiter > > 项目的任务提交部分,取消任务时构建ClusterClient即可。 > > > > > > > > > > > > > > > > > > > > > > | | > > jianxu > > | > > | > > [hidden email] > > | > > > > > > > > > > 在2020年07月11日 16:19,Congxian Qiu<[hidden email]> 写道: > > 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 <[hidden email]> 于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 <[hidden email]> 于2020年7月9日周四 上午9:40写道: > > > > 这个问题之前看到过有人在问,但是没有看到答案,我想问一下,Flink Streaming > > API有没有提供类似的接口,调用后就能停止这个Stream作业呢? > > > > > > -- > Best Regards > > Jeff Zhang > |
Hi
如果可以的话,建议先调用 RestClient 的 stop 等命令(这样可以在最后做一次 savepoint,或者 checkpoint -- 这个 FLINK-12619 想做),然后失败再使用 yarn 的 kill 命令,这样能够减少后续启动时的回放数据量 Best, Congxian zhisheng <[hidden email]> 于2020年7月14日周二 下午12:53写道: > 如果是 on yarn 的话,也可以直接调用 yarn 的 kill 命令停止作业 > > Jeff Zhang <[hidden email]> 于2020年7月11日周六 下午11:23写道: > > > Zeppelin 能够帮你提交和cancel job,就是通过上面jianxu说的ClusterClient > > api来做到的,对zeppelin感兴趣的话,可以参考这个视频 > > > > https://www.bilibili.com/video/BV1Te411W73b?p=21 > > > > > > jianxu <[hidden email]> 于2020年7月11日周六 下午4:52写道: > > > > > Hi: > > > > > > > > > 我想,你可能打算通过API的方式来取消正在运行的流任务。Flink任务提交时需要构建ClusterClient,提交成功后会返回任务对应的JobId。任务取消时,通过调用ClusterClient的cancel(JobID > > > jobId)取消流任务。 > > > Flink源码可以看看 CliFrontend[1]中的逻辑,如果觉得比较麻烦可以参考 > > > https://github.com/todd5167/flink-spark-submiter > > > 项目的任务提交部分,取消任务时构建ClusterClient即可。 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | > > > jianxu > > > | > > > | > > > [hidden email] > > > | > > > > > > > > > > > > > > > 在2020年07月11日 16:19,Congxian Qiu<[hidden email]> 写道: > > > 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 <[hidden email]> 于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 <[hidden email]> 于2020年7月9日周四 上午9:40写道: > > > > > > 这个问题之前看到过有人在问,但是没有看到答案,我想问一下,Flink Streaming > > > API有没有提供类似的接口,调用后就能停止这个Stream作业呢? > > > > > > > > > > -- > > Best Regards > > > > Jeff Zhang > > > |
Free forum by Nabble | Edit this page |