术语表
— 焉知非鱼Glossary
Flink Application Cluster
Flink 应用集群是一个专用的 Flink 集群,它只执行一个 Flink 应用的 Flink 作业。Flink 集群的寿命与 Flink 应用的寿命绑定。
Flink Job Cluster
Flink Job Cluster 是一个专用的 Flink Cluster,它只执行一个 Flink Job。Flink Cluster 的寿命与 Flink Job 的寿命绑定。
Flink Cluster
一个分布式系统由(通常)一个 JobManager 和一个或多个 Flink TaskManager 进程组成。
Event
事件是关于应用程序所模拟的域的状态变化的声明。事件可以是流或批处理应用程序的输入和/或输出。事件是特殊类型的记录。
ExecutionGraph
参见物理图(Physical Graph)
Function
函数由用户实现,封装了 Flink 程序的应用逻辑。大多数 Functions 都由相应的 Operator 封装。
Instance
术语 instance 用于描述运行时特定类型(通常是 Operator 或 Function)的具体实例。由于 Apache Flink 大部分是用 Java 编写的,所以对应于 Java 中的 Instance 或 Object 的定义。在 Apache Flink 的上下文中,并行实例这个术语也经常被用来强调同一个 Operator 或 Function 类型的多个实例在并行运行。
Flink Application
Flink 应用程序是一个 Java 应用程序,它从 main()
方法(或通过其他方式)提交一个或多个 Flink 作业。提交作业通常是通过调用执行环境上的 execute()
来完成的。
应用程序的作业可以提交到一个长期运行的 Flink 会话集群,也可以提交到一个专门的 Flink 应用集群,或者提交到一个 Flink 作业集群。
Flink Job
Flink Job 是指在 Flink 应用中通过调用 execute()
来创建和提交的逻辑图(也常称为数据流图)的运行时表示。
JobGraph
参见逻辑图(Logical Graph)
Flink JobManager
JobManager 是 Flink 集群的协调器。它包含了三个不同的组件:Flink 资源管理器、Flink 调度器和每个运行的 Flink 作业 一个 Flink JobMaster。
Flink JobMaster
JobMasters 是运行在 JobManager 中的组件之一。一个 JobMaster 负责监督单个作业的 Tasks 的执行情况。
Logical Graph
逻辑图是一个有向图,其中节点是 Operators,边缘定义了 operator 的输入/输出关系,并对应数据流或数据集。逻辑图是通过从 Flink 应用程序提交作业来创建的。
逻辑图也常被称为数据流图。
Managed State
Managed State 描述的是已经在框架中注册的应用状态。对于托管状态,Apache Flink 将负责处理持久性和重新缩放等问题。
Operator
逻辑图的节点。Operator 执行某种操作,通常由 Function 执行。源和接收器是数据摄入和数据输出的特殊 Operator。
Operator Chain
一个 Operator 链由两个或多个连续的 Operator 组成,中间没有任何重新分区。同一 Operator 链内的 operattor 直接相互转发记录,而不需要经过序列化或 Flink 的网络栈。
Partition
分区是整个数据流或数据集的一个独立子集。通过将每条记录分配到一个或多个分区,将数据流或数据集划分为多个分区。数据流或数据集的分区在运行时由Tasks消耗。改变数据流或数据集分区方式的转换通常称为重新分区。
Physical Graph
物理图是翻译逻辑图的结果,以便在分布式运行时执行。节点是Tasks,边缘表示输入/输出关系或数据流或数据集的分区。
Record
记录是数据集或数据流的组成元素。Operator 和 Functions 接收记录作为输入,并发出记录作为输出。
Flink Session Cluster
一个长期运行的 Flink Cluster,它接受多个 Flink Job 的执行。该 Flink Cluster 的寿命不受任何 Flink Job 寿命的约束。以前,Flink Session Cluster 也被称为会话模式下的 Flink Cluster。与 Flink Application Cluster 比较。
State Backend
对于流处理程序来说,Flink Job 的状态后端决定了它的状态如何存储在每个 TaskManager 上(TaskManager 的 Java 堆或(嵌入式)RocksDB),以及它在检查点时的写入位置(JobManager 的 Java 堆或 Filesystem)。
Sub-Task
子任务( Sub-Task)是指负责处理数据流的一个分区的任务(Task)。术语"子任务"强调同一 Operator 或 Operator 链有多个并行的 Task。
Task
物理图的节点。Task 是工作的基本单位,由 Flink 的运行时执行。任务正好封装了一个 Operator 或 Operator 链 的一个并行实例。
Flink TaskManager
TaskManager 是 Flink Cluster 的工作进程。Tasks 被安排给 TaskManagers 执行。它们相互通信,在后续的 Task 之间交换数据。
Transformation
变换应用于一个或多个数据流或数据集,并产生一个或多个输出数据流或数据集。变换可能会在每条记录的基础上改变数据流或数据集,但也可能只改变其分区或执行聚合。Operator 或 Functions是 Flink 的 API 的 “物理"部分,而变换只是一个 API 概念。具体来说,大多数变换是由某些 Operator 实现的。