写点什么

Flink 运行架构

作者:阿泽🧸
  • 2023-05-04
    北京
  • 本文字数:680 字

    阅读完需:约 2 分钟

Flink运行架构

通过技术架构来了解的 Flink 是静态的,而实际上 Flink 集群在运行的时候,存在不同的进程角色来完成集群的管理,作业的提交、执行、管理等一系列的动作。


Flink 集群采用 Master-Slave 架构,Master 的角色是 JobManager,负责集群和作业管理,Slave 的角色是 TaskManager,负责执行计算任务。除此之外,Flink 还提供了客户端来管理集群和提交任务,其中 JobManager 和 TaskManager 是集群的进程,Flink 客户端是在集群外部执行的进程,不是集群的一部分。

1、Flink 客户端

Flink 客户端是 Flink 提供的 CLI 命令行工具,用来提交 Flink 作业到 Flink 集群,在客户端中负责 Stream Graph(流图)和 Job Graph(作业图)的构建,后面有详细介绍。使用 Table API 和 SQL 编写的 Flink 应用,还会在客户端中负责 SQL 解析和优化。


Flink 的 Flip 改进建议中提出了新的模式,SQL 解析、优化,StreamGraph、JobGraph、ExecutionGraph 构建转换等全部都会在 JobManager 中完成,这将在 Flink1.10 后续版本中实现。

2、 JobManager

JobManager 根据并行度将 Flink 客户端提交的 Flink 应用分解为子任务,从资源管理器申请所需的计算资源,资源具备之后,开始分发任务到 TaskManager 执行 Task,并负责应用容错,跟踪作业的执行状态,发现异常则恢复作业等。

3、TaskManager

TaskManager 接收 JobManager 分发的子任务,根据自身的资源情况,管理子任务的启动、停止、销毁、异常恢复等生命周期阶段。作业启动后开始从数据源消费数据、处理数据,并写入外部存储中。无论使用哪种资源集群,以上所介绍的角色是必不可少的,其作用一样。JobManager 是一个单点的部署模式,在 Flink 中支持 JobManager 的 HA 部署,在后续章节中会介绍 Flink HA 的部署。

发布于: 刚刚阅读数: 5
用户头像

阿泽🧸

关注

还未添加个人签名 2020-11-12 加入

还未添加个人简介

评论

发布
暂无评论
Flink运行架构_flink_阿泽🧸_InfoQ写作社区