这篇文章上次修改于 1455 天前,可能其部分内容已经发生变化,如有疑问可询问作者。 >Flink 架构由四部分组成:Job Manager 、Resource Manager 、Task Manager 、Dispatcher ![architecture](https://imgcdn.greenhtml.com/architecture.png) ### 1.作业管理器 Job Manager Job Manager ---是控制单个应用(application)运行的Master 进程。每个应用只能由不同的JobManager管理 + 每个应用---由一个所谓的Job Graph(逻辑图) 和一个jar(包含依赖库和资源)组成 + Job Manger 会转换Job Graph 到一个可以物理执行的图( a physical dataflow graph),也叫ExecutionGraph + ExecutionGraph 包含可以并行执行的Task + Job Manger 会向Resource manager 请求必要的资源----任务管理槽(TaskManager slots)来执行task + 当Job Manger 接收到足够的任务管理槽,它就会发送ExecutionGraph 的task 到Task Manager 执行。 + 执行期间,Job Manger是一个中央协调器,负责所有的中央协调(center coordination) ### 2. 资源管理器 Resource Manager Flink 拥有多种ResourceManager,比如YARN,K8s,MESOS,还有独立部署(StandAlone deployment) + 资源管理器,用来管理任务管理器槽(task manager slots)----Flink的处理资源单元(unit) + 资源管理器在资源不够的时候,让资源提供者(Resource provider)提供更多的容器来启动TaskManger。也可以关闭闲置的Task Manager占用的资源。 ### 3.任务管理器TASK Manager 任务管理器是FLink的工作进程(work process,相对于job Manager的master process) + 每个Task manager提供一定数量的槽,来决定可以运行的task数目 + Task Manager会注册自己的槽给Resource Manager + Job Manger 会根据Task Manager的槽数分配任务给他 + 相同应用的Task Manager 之间可以交换数据 ### 4.分发器Dispatcher 分发器提供Rest 接口来提交任务,也提供面板(dashboard)来展示运行情况 + 分发器用来穿过防火墙 + 分发器不是必须的
没有评论