首页 » 文章 » Flink 架构(摘自Stream Processing With Apache Flink)

Flink 架构由四部分组成:Job Manager 、Resource Manager 、Task Manager 、Dispatcher

architecture

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)来展示运行情况

  • 分发器用来穿过防火墙
  • 分发器不是必须的

添加新评论