Flink源码解析(一)——运行时架构全景概览

一、Hadooop Yarn框架简述

本小节参考董西成老师书籍《Hadoop技术内幕深入解析YARN框架设计与实现原理》p35、p36页内容,相关Yarn框架细节可阅读该书籍。

1、用户向Yarn中提交MapReduce、Spark、Flink等分布式计算应用程序,其中包含ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。

2、ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信,要求它在这个Container中启动应用程序的ApplicationMaster。

3、ApplicationMaster首先向ResourceManager注册自己,这样用户可以通过ResourceManager查看应用程序的运行状态。然后ApplicationMaster将为各个任务申请资源,并监控任务的运行状态,直到运行结束。即重复步骤4~7。

4、 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。

5、ApplicationMaster领取到资源后便于对应的NodeManager通信,要求它启动任务。

6、NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务运行命令写到一个脚本中,并通过运行该脚本启动任务。

7、各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。

8、应用程序运行完成后ApplicationMaster向ResourceManager注销并关闭自己。

二、Flink On Yarn Application模式作业提交过程顺序说明

 

 

1、Flink Client端通过flink命令行向Yarn集群提交Flink作业,在Flink Client进程中生成YarnClient信息并和Yarn:ResourceManager、Yarn:NodeManager等Yarn集群组件通信,在Yarn:NodeManager分配container容器启动ApplicationMaster:YarnApplicationClusterEntryPoint服务,该服务可以简单理解成Flink JobManager服务。YarnApplicationClusterEntryPoint负责以反射的形式触发Flink作业的main(...)方法执行。上图红色连线代表Flink Client端在Application模型下提交Flink作业的交互过程。具体过程参考《Flink源码解析(十)——Flink On Yarn客户端提交过程解析

2、

三、Flink Checkpoint过程解析

posted @ 2023-08-08 23:50  有一个娃  阅读(67)  评论(0编辑  收藏  举报