|NO.Z.00068|——————————|BigDataEnd|——|Hadoop&Flink.V01|——|Flink.v01|Flink SQL|作业提交|
一、作业提交
### --- Flink的jar文件并不是Flink集群的可执行文件,需要经过转换之后提交给集群转换过程:
~~~ 在Flink Client中,通过反射启动jar中的main函数,
~~~ 生成Flink StreamGraph和JobGraph。将JobGraph提交给Flink集群。
~~~ Flink集群收到JobGraph后,将JobGraph翻译成ExecutionGraph,
~~~ 然后开始调度执行,启动成功之后开始消费数据
### --- 总结:
~~~ Flink的核心执行流程就是,把用户的一系列API调用,
~~~ 转化为StreamGraph -- JobGraph --ExecutionGraph -- 物理执行拓扑(Task DAG)

~~~ Flink提交作业的核心过程图
~~~ PipelineExecutor:流水线执行器:
~~~ 是Flink Client生成JobGraph之后,将作业提交给集群运行的重要环节
~~~ Session模式:AbstractSessionClusterExecutor
~~~ Per-Job模式:AbstractJobClusterExecutor
~~~ IDE调试:LocalExecutor

### --- Session模式:
~~~ 作业提交通过: yarn-session.sh脚本
~~~ 在启动脚本的时候检查是否已经存在已经启动好的Flink-Session模式的集群,
~~~ 然后在PipelineExecutor中,通过Dispatcher提供的Rest接口提交Flink JobGraph
~~~ Dispatcher为每一个作业提供一个JobMaser,进入到作业执行阶段
~~~ Per-Job模式:一个作业一个集群,作业之间相互隔离。
~~~ 在PipelineExecutor执行作业提交的时候,
~~~ 可以创建集群并将JobGraph以及所有需要的文件一起提交给Yarn集群,
~~~ 在Yarn集群的容器中启动Flink Master(JobManager进程),
~~~ 进行初始化后,从文件系统中获取JobGraph,交给Dispatcher,之后和Session流程相同。
二、作业提交流程:流图:





Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv020-flink
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」