flink 组件说明

本文详细介绍了ApacheFlink中的关键组件,如FlinkApplicationCluster、FlinkJobCluster、FlinkJobManager、JobResultStore等,涵盖了逻辑图、物理图、任务管理、状态管理以及数据流处理的核心概念,帮助读者理解Flink组件的工作原理和架构设计。
摘要由CSDN通过智能技术生成

flink 组件说明


提示:对Flink组件做一些了解和学习


## 文章目录


Flink Application Cluster
Flink 应用程序集群是一种专用的Flink 集群,仅从一个Flink 应用程序执行Flink 作业。Flink Cluster的生命周期与 Flink Application 的生命周期绑定.

Flink Job Cluster
Flink 作业集群是专用的Flink 集群,仅执行单个Flink 作业。Flink Cluster的生命周期 与 Flink Job 的生命周期绑定.

Flink Cluster
一般情况下,Flink 集群是由一个 Flink JobManager和一个或多个 Flink TaskManager 进程组成的分布式系统。

Event
Event 是对应用程序建模的域的状态更改的声明。它可以同时为流或批处理应用程序的 input 和 output,也可以单独是 input 或者 output 中的一种。Event 是特殊类型的 Record

ExecutionGraph
看下面的 Physical Graph

Function
Function 是由用户实现的,并封装了 Flink 程序的应用程序逻辑。大多数 Function 都由相应的 Operator 封装。

Instance
Instance 常用于描述运行时的特定类型(通常是 Operator 或者 Function)的一个具体实例。由于 Apache Flink 主要是用 Java 编写的,所以,这与 Java 中的 Instance 或 Object 的定义相对应。在 Apache Flink 的上下文中,parallel instance 也常用于强调同一 Operator 或者 Function 的多个 instance 以并行的方式运行。

Flink Application
Flink 应用程序是一种 Java 应用程序,它通过方法(或通过某种其他方式)提交一个或多个Flink Jobs main()。提交作业通常是通过调用execute()执行环境来完成的.

应用程序的作业可以提交到长时间运行的Flink Session Cluster、专用的Flink Application Cluster或Flink Job Cluster.

Flink Job
Flink作业是通过调用Flink Application中的execute()创建和提交的logical graph(也称为数据流图)的运行时表示.

JobGraph
看下面 Logical Graph

Flink JobManager
Flink JobManager 是 Flink Cluster 的主节点。它包含三个不同的组件:Flink Resource Manager、Flink Dispatcher、运行每个 Flink Job 的 Flink JobMaster。

Flink JobMaster
JobMaster 是在 Flink JobManager 运行中的组件之一。JobManager 负责监督单个作业 Task 的执行。以前,整个 Flink JobManager 都叫做 JobManager。

JobResultStore
JobResultStore是一个Flink组件,它将全局终止(即已完成、取消或失败)作业的结果持久保存到文件系统中,允许结果比已完成的作业更持久。Flink随后使用这些结果来确定是否应在高可用集群中恢复作业.

Logical Graph
逻辑图是一种有向图,其中节点是Operators和边定义运算符的输入/输出关系,并对应于数据流或数据集。逻辑图是通过从Flink应用程序提交作业来创建的.

逻辑图通常也称为数据流图.

Managed State
Managed State 描述了已在框架中注册的应用程序的托管状态。对于托管状态,Apache Flink 会负责持久化和重伸缩等事宜。

Operator
Logical Graph 的节点。算子执行某种操作,该操作通常由 Function 执行。Source 和 Sink 是数据输入和数据输出的特殊算子。
Operator Chain
算子链由两个或多个连续的 Operator 组成,两者之间没有任何的重新分区。同一算子链内的算子可以彼此直接传递 record,而无需通过序列化或 Flink 的网络栈。

Partition
分区是整个数据流或数据集的独立子集。通过将每个 Record 分配给一个或多个分区,来把数据流或数据集划分为多个分区。在运行期间,Task 会消费数据流或数据集的分区。改变数据流或数据集分区方式的转换通常称为重分区。

Physical Graph
Physical graph 是一个在分布式运行时,把 Logical Graph 转换为可执行的结果。节点是 Task,边表示数据流或数据集的输入/输出关系或 partition。

Record
Record 是数据集或数据流的组成元素。Operator 和 Function接收 record 作为输入,并将 record 作为输出发出。

Flink Session Cluster
长时间运行的 Flink Cluster,它可以接受多个 Flink Job 的执行。此 Flink Cluster 的生命周期不受任何 Flink Job 生命周期的约束限制。以前,Flink Session Cluster 也称为 session mode 的 Flink Cluster,和 Flink Application Cluster 相对应。

State Backend
对于流处理程序,Flink Job 的 State Backend 决定了其 state 是如何存储在每个 TaskManager 上的( TaskManager 的 Java 堆栈或嵌入式 RocksDB),以及它在 checkpoint 时的写入位置( Flink JobManager 的 Java 堆或者 Filesystem)。

Sub-Task
Sub-Task 是负责处理数据流 Partition 的 Task。“Sub-Task"强调的是同一个 Operator 或者 Operator Chain 具有多个并行的 Task 。

Task
Task 是 Physical Graph 的节点。它是基本的工作单元,由 Flink 的 runtime 来执行。Task 正好封装了一个 Operator 或者 Operator Chain 的 parallel instance。

Flink TaskManager
TaskManager 是 Flink Cluster 的工作进程。Task 被调度到 TaskManager 上执行。TaskManager 相互通信,只为在后续的 Task 之间交换数据。

Transformation
Transformation 应用于一个或多个数据流或数据集,并产生一个或多个输出数据流或数据集。Transformation 可能会在每个记录的基础上更改数据流或数据集,但也可以只更改其分区或执行聚合。虽然 OperatorFunction 是 Flink API 的“physical”部分,但 Transformation 只是一个 API 概念。具体来说,大多数(但不是全部)Transformation 是由某些 Operator 实现的。

  • 33
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值