Flink是Apache软件基金会下开源的分布式流批一体计算框架,具备实时流计算和高吞吐批处理计算的大数据计算能力。本专栏内容为Flink源码解析的记录与分享。
本文解析的Kafka源码版本为:flink-1.19.0
1.Flink on Yarn
Flink本身支持Standalone独立部署模式,通过启动JobManager和TaskManager即可搭建Flink集群并运行作业。但该模式存在资源隔离问题:分配给Flink集群的计算资源无法与其他平台应用共享。若集群已部署Yarn或Kubernetes等资源调度平台,使用Yarn或Kubernetes平台调度Flink作业,可实现Flink程序与其他应用的混合部署。这种集约化调度方式能统一平台调度、提升集群计算资源的利用率。
Flink on Yarn部署,主要是通过在Yarn上部署Flink虚拟集群,部署Dispatcher、ResourceManager、TaskManager,为Flink App提供运行环境,使Flink App也可在Yarn平台上调度与运行。
2.Flink on Yarn的计算调度与任务执行完整流程
Flink程序在Yarn上的执行完整流程的具体步骤如下:

Flink客户端部分:
1.命令启动:Flink run命令启动Flink的CliFrontend客户端。
2.环境准备:CliFrontend解析提交参数、生成配置与上下文环境、执行Flink的主程序。
3.Transformation转换:Flink主程序把DataStreamAPI转换成Transformation集合。
4.StreamGraph生成:CliFrontend通过StreamGraphGenerator生成StreamGraph。
5.JobGraph生成:CliFrontend通过StreamingJobGraphGenerator生成JobGraph。
6.提交集群:CliFrontend通过Clust

456

被折叠的 条评论
为什么被折叠?



