角色
Flink 是一个分布式流处理框架,它的架构由多个角色组成,每个角色在系统中都有特定的职责。以下是 Flink 中各主要角色及其作用的详解介绍:
1. Client
- 作用:Client 是用户提交作业的入口。用户通过 Client 将作业提交给集群。
- 职责- 解析用户提交的作业。- 将作业的 jar 文件和依赖上传到集群。- 与
JobManager
通信以提交作业。
2. JobManager
- 作用:JobManager 是 Flink 的核心组件之一,负责调度和管理作业的执行。
- 职责: - 接受并解析由
Client
提交的作业。- 创建和启动JobMaster
实例来管理具体作业的执行。- 分配资源并将任务分发给TaskManager
。- 处理任务的故障恢复和重新启动。- 管理作业的 checkpoint 和状态恢复。
3. JobMaster
- 作用:每个 Flink 作业都有一个对应的
JobMaster
实例,负责该作业的具体执行和管理。 - 职责: - 启动和停止作业的所有任务。- 与
TaskManager
通信,协调任务执行。- 监控作业的执行状态,处理故障恢复。- 管理作业的 checkpoint 和状态。- 向JobManager
汇报作业的执行情况。
4. TaskManager
- 作用:TaskManager 是 Flink 的工作节点,负责执行分配给它的任务。
- 职责: - 接收并执行
JobMaster
分配的任务。- 管理任务的状态和 checkpoint。- 向JobMaster
汇报任务的执行情况。- 提供数据交换服务,用于不同任务之间的数据传输。
5. ResourceManager
- 作用:ResourceManager 管理 Flink 集群中的资源分配。
- 职责: - 与集群管理系统(如 YARN、Kubernetes)交互,申请和释放资源。- 向
JobManager
提供可用资源信息。- 分配资源给TaskManager
并启动新的TaskManager
实例。- 监控集群资源的使用情况,优化资源分配。
6. Dispatcher
- 作用:Dispatcher 负责处理来自客户端的作业提交请求,并创建
JobManager
实例。 - 职责: - 接收并解析
Client
的作业提交请求。- 为每个提交的作业创建一个新的JobManager
实例。- 提供一个 REST 接口,供客户端查询作业状态和执行结果。
7. Checkpoint Coordinator
- 作用:Checkpoint Coordinator 是
JobMaster
的一部分,负责管理作业的 checkpoint 和状态恢复。 - 职责: - 定期触发 checkpoint。- 收集各个任务的 checkpoint 数据并存储到持久化存储中。- 在作业恢复时,从 checkpoint 恢复状态。
8. Web UI
- 作用:Flink 提供的 Web UI 用于监控和管理作业。
- 职责: - 展示作业的执行状态和任务的运行情况。- 提供作业的执行历史和日志。- 允许用户提交和取消作业。
9. Job Graph 和 Execution Graph
- 作用:这两个图是 Flink 内部用于描述作业的执行逻辑和实际执行计划的抽象。- Job Graph:表示作业的逻辑执行计划。- Execution Graph:表示作业的物理执行计划,包含实际的任务和数据流。
本文转载自: https://blog.csdn.net/weixin_43468369/article/details/140147930
版权归原作者 IfoolishBird 所有, 如有侵权,请联系我们删除。
版权归原作者 IfoolishBird 所有, 如有侵权,请联系我们删除。