Flink基础知识
flink架构介绍
Flink的定义、构成及详细介绍
1. Flink的定义
Apache Flink是一个开源的分布式流处理框架,专为高性能、高可用性和精确的流处理应用而设计。根据官方定义:
Apache Flink是一个框架和分布式处理引擎,用于对有界和无界数据流进行有状态计算。Flink被设计为可在所有常见集群环境中运行,以内存执行速度和任意规模执行计算。
主要特点包括:
- 支持流批一体的统一处理模型
- 提供低延迟(毫秒级)和高吞吐量的流处理能力
- 内置**精确一次(Exactly-Once)**的容错语义
- 支持有状态计算和事件时间处理
2. Flink的核心构成
2.1 主要组件
Flink采用Master-Slave架构,主要包含以下核心组件:
组件 | 职责 | 实现方式 |
---|---|---|
Client | 提交作业到集群 | CLI、REST API、SQL Client等 |
JobManager | 中心协调组件 | Standalone/YARN/K8s/Mesos |
TaskManager | 执行作业的Worker进程 | 包含多个Task Slot |
ResourceManager | 管理TaskManager插槽资源 | 与集群资源管理器交互 |
2.2 运行时架构
-
JobManager:包含三个子组件
- ResourceManager:管理TaskManager插槽