flink的main方法和execute方法的关系

背景:

执行flink时,我们几种执行模式,比如在IDE本地执行模式以及远程YARN执行的模式等,你是否有疑问,为什么他们可以共用相同的代码呢?其实这就涉及到main方法和execute方法的关系了

flink的main方法和execute方法的关系

flink的main方法其实主要目的是为了构造JobGraph图,这一步不论对于本地执行环境还是远程执行环境都是一样的,有区别的是创建的执行环境不一样:

创建本地执行环境:
StreamExecutionEnvironment.createLocalEnvironment()

创建远程执行环境:
StreamExecutionEnvironment.createRemoteEnvironment(
host, // 远程JobManager地址
port,  //远程JobManager端口
"jar path"  //应用代码类
)

也就是说不论是本地还是远程执行环境,main方法的第一个作用也就是构造JobGraph图是一样的,区别只在于构造完JobGraph之后,是提交到本地启动的JobManager线程执行还是提交到远程的JobManager进程执行
示意图如下:
在这里插入图片描述文章来源地址https://uudwc.com/A/jry0G

原文地址:https://blog.csdn.net/lixia0417mul2/article/details/132961339

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月25日 07:40
下一篇 2023年09月25日 07:41