开发者社区> 问答> 正文

flink on yarn 的application模式怎么提交多个job组成应用程序呢?

1.flink on yarn 的application模式怎么提交多个job组成应用程序呢?在官网和论坛的文章中这里没有详细展开。

与per-job 模式相比,Application 模式允许提交由多个Job组成的应用程序。Job执行的顺序不受部署模式的影响,但受启动Job的调用的影响。使用阻塞的 execute()方法,将是一个顺序执行的效果,结果就是"下一个"Job的执行被推迟到“该”Job完成为止。相反,一旦提交当前作业,非阻塞executeAsync()方法将立即继续提交“下一个”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

*来自志愿者整理的flink邮件归档

展开
收起
游客sadna6pkvqnz6 2021-12-07 17:00:00 3507 0
1 条回答
写回答
取消 提交回答
    1. 目前Flink是允许在一个user jar的main里面,运行多次execute的,包括executeAsyc。 每执行一次execute,就是提交了一个任务。所以你是可以这样来实现一个Application里面 运行多个job。但这里需要注意的是,目前只有非HA的Application模式可以支持多job HA模式还不行,具体原因主要是恢复起来会很麻烦,还没有实现。

    2. Flink会检查用户提交的user jar,然后从其中提取出来。具体可以看一下PackagedProgram#loadMainClass 的实现。*来自志愿者整理的flink

    2021-12-07 20:24:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载