当一个应用被提交时,Dispatcher分发器就会启动并将应用移交给一个JobManager。
JobManager控制一个应用程序执行的主进程,每个应用程序都会被一个不同的JobManager所控制;JobManager先接收到要执行的应用程序(包括作业图JobGraph、逻辑数据流图Logical dataflow gragh、打包的所有的类、库和其他资源的jar包;JobManager会将JobGraph转换为一个物理层面的数据流图(执行图:ExecutionGragh),包含了所有可以并发执行的任务; JobManager会向资源管理器(ResourceManager)请求执行任务必要的资源,即TaskManager上的插槽(Slot),一旦获取到足够的资源,就会将执行图分发到真正运行它们的TaskManager上;在运行过程中,JobManager会负责所有需要中央协调的操作,比如检查点(checkpoints)的协调。
ResourceManager主要负责管理任务管理器(TaskManager)的插槽(slot),Slot时Flink定义的处理资源单元;ResourceManager将有空闲插槽的TaskManager分配给JobManager。如果ResourceManager没有足够的插槽来满足JobManager的请求,它可以向资源提供平台发起会话,以提供启动TaskManager进程的容器。
TaskManager一般在Flink的工作进程中会有多个,每个TaskManager都包含一定数量的插槽slots,插槽的数量限制了TaskManager能够执行的任务数量。
TaskManager启动之后,TaskManager会向ResoureManger注册它的插槽,收到ResourceManger的指令后,TaskManager就会将一个或多个插槽提供个JobManager调用,JobManager就可以向插槽分配任务(tasks)来执行。
在执行过程中,一个TaskManager可以跟其他运行同一应用程序的TaskManager交换数据。
Flink任务提交流程
Flink任务提交流程
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 本文为《Flink大数据项目实战》学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习...
- 1.Flink架构及特性分析 Flink是个相当早的项目,开始于2008年,但只在最近才得到注意。Flink是原生...
- 这将是一套完整详细且持续更新的、长期维护的 原创 Flink系列教程、文档,其中会包含各种商用实例详解、Flin...