这篇文章上次修改于 1644 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
Flink 架构由四部分组成:Job Manager 、Resource Manager 、Task Manager 、Dispatcher
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)来展示运行情况
- 分发器用来穿过防火墙
- 分发器不是必须的
没有评论