1.flink on yarn 的application模式怎么提交多个job组成应用程序呢?在官网和论坛的文章中这里没有详细展开。
与per-job 模式相比,Application 模式允许提交由多个Job组成的应用程序。Job执行的顺序不受部署模式的影响,但受启动Job的调用的影响。使用阻塞的 <code>execute()</code>方法,将是一个顺序执行的效果,结果就是"下一个"Job的执行被推迟到“该”Job完成为止。相反,一旦提交当前作业,非阻塞<code>executeAsync()</code>方法将立即继续提交“下一个”Job。 怎么做到呢? 2.而且提交job时,没有指定运行main方法的类,那么在jobmanager是如何找到对应的执行main呢? 官网比如这个指令: ./bin/flink run-application -t yarn-application \ -Djobmanager.memory.process.size=2048m \ -Dtaskmanager.memory.process.size=4096m \ ./MyApplication.jar 发自我的iPhone |
1. 目前Flink是允许在一个user jar的main里面,运行多次execute的,包括executeAsyc。
每执行一次execute,就是提交了一个任务。所以你是可以这样来实现一个Application里面 运行多个job。但这里需要注意的是,目前只有非HA的Application模式可以支持多job HA模式还不行,具体原因主要是恢复起来会很麻烦,还没有实现。 2. Flink会检查用户提交的user jar,然后从其中提取出来。具体可以看一下PackagedProgram#loadMainClass 的实现。 Best, Yang yang zhang <[hidden email]> 于2020年8月25日周二 下午1:50写道: > 1.flink on yarn 的application模式怎么提交多个job组成应用程序呢?在官网和论坛的文章中这里没有详细展开。 > > 与per-job 模式相比,Application > 模式允许提交由多个Job组成的应用程序。Job执行的顺序不受部署模式的影响,但受启动Job的调用的影响。使用阻塞的 > <code>execute()</code>方法,将是一个顺序执行的效果,结果就是"下一个"Job的执行被推迟到“该”Job完成为止。相反,一旦提交当前作业,非阻塞<code>executeAsync()</code>方法将立即继续提交“下一个”Job。 > > 怎么做到呢? > > 2.而且提交job时,没有指定运行main方法的类,那么在jobmanager是如何找到对应的执行main呢? > 官网比如这个指令: > ./bin/flink run-application -t yarn-application \ > -Djobmanager.memory.process.size=2048m \ > -Dtaskmanager.memory.process.size=4096m \ ./MyApplication.jar > > > > 发自我的iPhone |
感谢大佬回复,了解了。
那是不是相当于一个main方法 先写A逻辑,然后execute(), 后面写B逻辑,再execute(), 假如B逻辑必须等待A逻辑执行完毕才执行。 用这种方式提交直接就解决了这个场景,也不用第三方通知实现了。 发自我的iPhone > 在 2020年8月26日,10:44,Yang Wang <[hidden email]> 写道: > > 1. 目前Flink是允许在一个user jar的main里面,运行多次execute的,包括executeAsyc。 > 每执行一次execute,就是提交了一个任务。所以你是可以这样来实现一个Application里面 > 运行多个job。但这里需要注意的是,目前只有非HA的Application模式可以支持多job > HA模式还不行,具体原因主要是恢复起来会很麻烦,还没有实现。 > > 2. Flink会检查用户提交的user jar,然后从其中提取出来。具体可以看一下PackagedProgram#loadMainClass > 的实现。 > > > Best, > Yang > > yang zhang <[hidden email]> 于2020年8月25日周二 下午1:50写道: > >> 1.flink on yarn 的application模式怎么提交多个job组成应用程序呢?在官网和论坛的文章中这里没有详细展开。 >> >> 与per-job 模式相比,Application >> 模式允许提交由多个Job组成的应用程序。Job执行的顺序不受部署模式的影响,但受启动Job的调用的影响。使用阻塞的 >> <code>execute()</code>方法,将是一个顺序执行的效果,结果就是"下一个"Job的执行被推迟到“该”Job完成为止。相反,一旦提交当前作业,非阻塞<code>executeAsync()</code>方法将立即继续提交“下一个”Job。 >> >> 怎么做到呢? >> >> 2.而且提交job时,没有指定运行main方法的类,那么在jobmanager是如何找到对应的执行main呢? >> 官网比如这个指令: >> ./bin/flink run-application -t yarn-application \ >> -Djobmanager.memory.process.size=2048m \ >> -Dtaskmanager.memory.process.size=4096m \ ./MyApplication.jar >> >> >> >> 发自我的iPhone |
是的,Application模式是可以这么使用的
但需要注意的是: * 非HA模式下,如果JobManager failover了,会重新开始执行所有job。 * HA模式,还不能支持多个job Best, Yang yang zhang <[hidden email]> 于2020年8月26日周三 上午11:17写道: > 感谢大佬回复,了解了。 > 那是不是相当于一个main方法 > 先写A逻辑,然后execute(), > 后面写B逻辑,再execute(), > 假如B逻辑必须等待A逻辑执行完毕才执行。 > 用这种方式提交直接就解决了这个场景,也不用第三方通知实现了。 > > > > > 发自我的iPhone > > > 在 2020年8月26日,10:44,Yang Wang <[hidden email]> 写道: > > > > 1. 目前Flink是允许在一个user jar的main里面,运行多次execute的,包括executeAsyc。 > > 每执行一次execute,就是提交了一个任务。所以你是可以这样来实现一个Application里面 > > 运行多个job。但这里需要注意的是,目前只有非HA的Application模式可以支持多job > > HA模式还不行,具体原因主要是恢复起来会很麻烦,还没有实现。 > > > > 2. Flink会检查用户提交的user jar,然后从其中提取出来。具体可以看一下PackagedProgram#loadMainClass > > 的实现。 > > > > > > Best, > > Yang > > > > yang zhang <[hidden email]> 于2020年8月25日周二 下午1:50写道: > > > >> 1.flink on yarn 的application模式怎么提交多个job组成应用程序呢?在官网和论坛的文章中这里没有详细展开。 > >> > >> 与per-job 模式相比,Application > >> 模式允许提交由多个Job组成的应用程序。Job执行的顺序不受部署模式的影响,但受启动Job的调用的影响。使用阻塞的 > >> > <code>execute()</code>方法,将是一个顺序执行的效果,结果就是"下一个"Job的执行被推迟到“该”Job完成为止。相反,一旦提交当前作业,非阻塞<code>executeAsync()</code>方法将立即继续提交“下一个”Job。 > >> > >> 怎么做到呢? > >> > >> 2.而且提交job时,没有指定运行main方法的类,那么在jobmanager是如何找到对应的执行main呢? > >> 官网比如这个指令: > >> ./bin/flink run-application -t yarn-application \ > >> -Djobmanager.memory.process.size=2048m \ > >> -Dtaskmanager.memory.process.size=4096m \ ./MyApplication.jar > >> > >> > >> > >> 发自我的iPhone > |
好的,谢谢大佬!
发自我的iPhone > 在 2020年8月26日,11:48,Yang Wang <[hidden email]> 写道: > > 是的,Application模式是可以这么使用的 > > 但需要注意的是: > * 非HA模式下,如果JobManager failover了,会重新开始执行所有job。 > * HA模式,还不能支持多个job > > > Best, > Yang > > yang zhang <[hidden email]> 于2020年8月26日周三 上午11:17写道: > >> 感谢大佬回复,了解了。 >> 那是不是相当于一个main方法 >> 先写A逻辑,然后execute(), >> 后面写B逻辑,再execute(), >> 假如B逻辑必须等待A逻辑执行完毕才执行。 >> 用这种方式提交直接就解决了这个场景,也不用第三方通知实现了。 >> >> >> >> >> 发自我的iPhone >> >>>> 在 2020年8月26日,10:44,Yang Wang <[hidden email]> 写道: >>> >>> 1. 目前Flink是允许在一个user jar的main里面,运行多次execute的,包括executeAsyc。 >>> 每执行一次execute,就是提交了一个任务。所以你是可以这样来实现一个Application里面 >>> 运行多个job。但这里需要注意的是,目前只有非HA的Application模式可以支持多job >>> HA模式还不行,具体原因主要是恢复起来会很麻烦,还没有实现。 >>> >>> 2. Flink会检查用户提交的user jar,然后从其中提取出来。具体可以看一下PackagedProgram#loadMainClass >>> 的实现。 >>> >>> >>> Best, >>> Yang >>> >>> yang zhang <[hidden email]> 于2020年8月25日周二 下午1:50写道: >>> >>>> 1.flink on yarn 的application模式怎么提交多个job组成应用程序呢?在官网和论坛的文章中这里没有详细展开。 >>>> >>>> 与per-job 模式相比,Application >>>> 模式允许提交由多个Job组成的应用程序。Job执行的顺序不受部署模式的影响,但受启动Job的调用的影响。使用阻塞的 >>>> >> <code>execute()</code>方法,将是一个顺序执行的效果,结果就是"下一个"Job的执行被推迟到“该”Job完成为止。相反,一旦提交当前作业,非阻塞<code>executeAsync()</code>方法将立即继续提交“下一个”Job。 >>>> >>>> 怎么做到呢? >>>> >>>> 2.而且提交job时,没有指定运行main方法的类,那么在jobmanager是如何找到对应的执行main呢? >>>> 官网比如这个指令: >>>> ./bin/flink run-application -t yarn-application \ >>>> -Djobmanager.memory.process.size=2048m \ >>>> -Dtaskmanager.memory.process.size=4096m \ ./MyApplication.jar >>>> >>>> >>>> >>>> 发自我的iPhone >> |
Free forum by Nabble | Edit this page |