Bootstrap

三分钟快速理解Flink 作业提交流程(包工头的工程之路)

核心组件

我们先来简单了解一下 flink 作业提交涉及到的组件

同时,如果不了解 Yarn 的同学欢迎跳转到这篇文章,了解一下健鑫集团的工程承包流程(doge):

三分钟快速理解Yarn的工作流程

JobManager

JobManager 是整个flink作业的管理者 包含 Dispatcher、ResourceManager 以及 JobMaster

Dispatcher

主要用来接收 client 提交的 flink 作业,为 flink 作业启动一个 JobMaster

JobMaster

负责一个 flink 作业

作业提交阶段,将逻辑执行计划转换为物理执行计划

部署阶段,向ResourceManager 请求执行 flink 作业执行所需要的资源,将任务分发到不同的节点上去运行

运行阶段,对任务的运行进行持续的监控和协调;比如:进行checkpoint、故障恢复、异常容错等

TaskManager

flink 实际处理作业的组件

client

主要帮助用户将 flink 作业提交到对应环境上去运行

Flink 作业提交部署流程

首先,简单来就是:

用户提交作业 -> 生成逻辑执行计划 -> 物理执行计划 -> 启动 master 节点,申请对应资源(包工头去跟 boss 申请资源) -> master 节点将任务分发到 worker 节点上去执行(包工头雇佣农民工,给农民工分配任务、发工资)

  1. 用户提交 flink 作业到client

  2. client 将 flink 作业中的数据处理逻辑转换成 JobGraph,JobGraph 可以简单理解为逻辑执行计划。然后 client 将作业提交到Dispatcher 中

  3. Dispatcher 对程序进行分发,启动一个JobMaster 解析 JobGraph

  4. JobMaster 将 JobGraph 解析成 ExecutionGraph,ExecutionGraph 可以简单理解成物理执行计划,解析完成之后,JobMaster 就会知道作业运行需要多少资源

  5. JobMaster 向 ResourceManager 申请运行 flink 作业所需要的 TaskManager,ResourceManaager 向资源管理系统(比如 Yarn)申请对应的资源;ResourceManager 申请到资源之后,在对应的资源节点上启动 TaskManager

  6. TaskManager 启动之后向 ResourceManager 注册并提供Task Solt(Task Solt 是 flink 资源分配的最小单位)

  7. JobMaster 将 flink 作业分发到 TaskManager 的 Task Solt 上去运行

END

本文介绍了 flink 作业的提交流程,希望可以帮助到你

;