Flink 架构概览
1、Flink 架构概览 —— Job
用户通过 DataStream API、DataSet API、SQL 和 Table API 编写 Flink 任务,Client 端会生成一个 JobGraph。JobGraph 是由 source、map()、keyBy()/window()/apply() 和 Sink 等算子组成的。当 JobGraph 提交给 Flink 集群后,能够以 Local、Standalone、Yarn 和 Kubernetes 四种模式运行。
2、Flink 架构概览 —— JobManager
JobManager 的功能主要有:
- 将 JobGraph 转换成 Execution Graph,最终将 Execution Graph 拿来运行;
- Scheduler 组件负责 Task 的调度;
- Checkpoint Coordinator 组件负责协调整个任务的 Checkpoint,包括 Checkpoint 的开始和完成;
- 通过 Actor System 与 TaskManager 进行通信;
- 其他的一些功能,例如 Recovery Metadata,用于进行故障恢复时,可以从 Metadata 里面读取数据。
3、Flink 架构概览 —— TaskManager
TaskManager 是负责具体任务的执行过程,在 JobManager 申请到资源之后开始启动。
TaskManager 里面的主要组件有:
- Memory & I/O Manager,即内存