目录

1. Flink整体架构概览

2. Flink架构概览之--JobManager

3. Flink架构概览之--TaskManager

4. Standalone模式运行架构图

 

5. Flink运行时相关的主要组件概述

6. Yarn架构原理图

7. Yarn架构原理-交互图


1. Flink整体架构概览

如下为Flink的架构图,用户可以使用4种方式(DataStream、DataSet等)编写flink任务,这些任务逻辑会生成一个JobGraph。

JobGraph由source、map()、keyBy()/window()和slink等算子组成。

当JobGraph提交给Flink集群后,能够以4种模式运行(Local、Yarn等)

Flink on Yarn/K8s原理剖析及实践


 

2. Flink架构概览之--JobManager

JobManager的架构图如下所示,JobManager的主要功能有:

  • 将JobGraph转换成Execution Graph,最终将EG拿来运行。
  • Task Scheduling组件负责Task的调度。
  • Actor System负责与TaskManager通信。
  • Checkpoit Coordinator负责协调整个任务(source、算子、sink等)的checkpoint,包括checkpoint的开始和完成。
  • Recovery Metadata,用于进行故障恢复,从metadata里读取数据。

Flink on Yarn/K8s原理剖析及实践


3. Flink架构概览之--TaskManager

TaskManager是负责具体任务的执行过程,在JobManager申请到资源后,开始启动,TaskManager的架构图如下所示。主要包含的组件有6个:

  • Memory & I/O manager,即内存I/O管理。
  • Network manager,网络管理。
  • Actor system,负责与JobManager通信。
  • Data exechange,负责与其他taskmanager交换中间结果。
  • Task Slot,资源调度最小单位,每个任务都运行在一个Task slot中,taskmanager被分成很多个 task slot。

Flink on Yarn/K8s原理剖析及实践

 

 


4. Standalone模式运行架构图

首先介绍下standalone模式运行架构图,如下图:

Flink on Yarn/K8s原理剖析及实践

 

Standalone模式下,任务运行过程分析:

  • 该模式下,Master和TaskManager可以运行在同一台机器上,也可以运行在不同的机器上。
  • Master进程中,ResourceManager的作用是对资源进行管理。用户通过Flink Cluster Client将JobGraph提交给Master时,会先经过Dispatcher。
  • Dispatcher收到请求后,生成一个JobManager,这个JobManager接着向ResourceManager申请资源slot,最终启动TaskManager。
  • TaskManager启动后,会向RM注册,注册之后JobManager再将具体的Task任务分配给这个TaskManger的slot中去执行

 


5. Flink运行时相关的主要组件概述

  • Client:用户通过SQL、或API方式提交任务,提交后会生成一个JobGraph
  • JobManager:接收到用户请求后,对任务进行调度,并且申请资源启动TaskManager
  • TaskManager:负责具体Task的执行。TaskManager向JobManager进行注册,当TM接收到JobManager分配的任务后,开始执行具体的任务。

6. Yarn架构原理图

Yarn中主要的是ResourceManager,大致工作流程是

  1. Client提交任务,会先给到Resource Manager。
  2. Resource Manager会启动Container,接着进一步启动Application Master。
  3. Application Master启动后,Application Master再次向ResourceMaster申请资源。
  4. RM将资源分配给AM后,AM将把具体的Task调度起来执行。

 

Flink on Yarn/K8s原理剖析及实践

  • RM:负责处理客户端请求,启动/监控AM、监控NM、资源分配与调度。
  • AM:运行在Slave上,负责数据切分,申请资源、任务监控和容错。
  • NM:Slave上运行,节点资源管理、AM/RM通信及汇报状态。
  • Container:负责对资源抽象(内存、CPU、磁盘和网络等)

 


7. Yarn架构原理-交互图

大致交互流程如下文字描述

  • 先分配一个Container,用来启动AM
  • AM启动后向RM注册,并申请资源和RM信息,要求启动程序
  • 一个或多个NM启动Map/Reduce程序 Task
  • NM不断汇报map/reduce task的 状态给AM
  • 当所有map/reduce task都执行完后,AM向RM汇报map/reduce任务已结束,并销毁自己

 

Flink on Yarn/K8s原理剖析及实践

Flink on Yarn/K8s原理剖析及实践

 

相关文章:

  • 2021-09-07
  • 2021-09-17
  • 2021-06-14
  • 2021-10-20
  • 2021-12-12
  • 2021-12-18
  • 2021-11-07
  • 2021-10-04
猜你喜欢
  • 2021-06-23
  • 2021-09-14
  • 2021-08-30
  • 2018-11-23
  • 2021-12-29
  • 2022-01-12
相关资源
相似解决方案