会话模式

在这里插入图片描述
会话模式先是只启动JobManager,TaskManager根据需要动态启动。
1.客户端通过REST接口,将作业提交给分发器。
2.分发器启动JobMaster,并将Job资源提交到JobMaster。
3.JobMaster向Flink的资源管理器请求资源(slots)。
4.Flink的资源管理器向Yarn资源管理器请求Container容器。
5.Yarn资源管理器启动新的TaskManager容器。
6.TaskManager向Flink的资源管理器注册自己可用的slots。
7.Flink的资源管理器通知TaskManager,向新的作业提供slots。
8.TaskManager连接到对应的JobMaster,提供slots。
9.JobManager将需要执行的任务分发给TaskManager,执行任务。

单作业模式

在这里插入图片描述
单作业模式当提交作业时,才会启动JobManager。
1.客户端将作业提交给Yarn的资源管理器,同时将Flink的jar包和配置上传到HDFS,方便后续启动Flink相关的容器。
2.Yarn资源管理器分配Container资源,启动JobManager,并将作业提交给JobMaster,这里不需要dispatcher分发器。
3.JobMaster向Flink的资源管理器申请slots。
4.Flink的资源管理器向Yarn资源管理器申请Container资源。
5.Yarn启动新的TaskManager容器。
6.TaskManager启动后,向Flink资源管理器注册自己的slots。
7.Flink的资源管理器通知TaskManager,为新的作业提供slots。
8.TaskManager连接到对应的JobMaster,提供slots。
9.JobMaster将要执行的任务分发给TaskManager,执行任务。
与会话模式不同的是JobManager的启动方式,以及省去了分发器。作业提交给JobMaster之后的步骤是一样的。

应用模式

应用模式与单作业模式的提交流程非常相似,只是初始提交给Yarn资源管理器的不再是具体的作业,而是整个应用。一个应用中可能包含了多个作业,这些作业都在Flink集群中启动各自对应的JobMaster。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐