前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flink优化器与源码解析系列--Flink相关基本概念

Flink优化器与源码解析系列--Flink相关基本概念

作者头像
用户7600169
发布2022-04-25 15:51:07
7840
发布2022-04-25 15:51:07
举报
文章被收录于专栏:BigDataplusBigDataplus

背景

Apache Flink是用于分布式流和批处理数据处理的开源平台。Flink的核心是流数据流引擎,可为数据流上的分布式计算提供数据分发,通信和容错能力。Flink在流引擎之上构建批处理,覆盖了本机迭代支持,托管内存和程序优化。本文档适用于Apache Flink 1.10版。

学习Flink就要先从相关基本概念了解,才能更好理解笔者下一篇文章“Flink优化器与源码解析系列--Flink内存模型详解”。才能更好的理解Flink分布式运行原理。

基本概念

  • Flink Application ClusterFlink应用程序集群

Flink应用程序集群是仅执行一个Flink Job专用的Flink Cluster。Flink Cluster的生命周期就是Flink Job的生命周期。在工作模式下,相对于与Flink Session Cluster而言,之前的Flink应用程序集群也称为Flink集群 。

  • Flink Cluster Flink集群

通常由一个Flink Master和一个或多个 Flink TaskManager进程组成的一种分布式系统。

  • Event 事件

事件是有关由应用程序建模的域的状态更改的声明。事件可以是流或批处理应用程序的输入和/或输出。事件是特殊类型的记录。

  • Function 函数

功能由用户实现,并封装Flink程序的应用程序逻辑。大多数函数由相应的运算符包装 。

  • Instance 实例

术语实例用于描述特定类型的(通常的特定实例 操作或功能在运行期间)。由于Apache Flink主要是用Java编写的,因此它对应于Java中的Instance或Object的定义。在Apache Flink的上下文中,术语“ 并行实例”也经常用来强调相同操作符或函数类型的多个实例正在并行运行。

  • Flink Job Flink作业

Flink作业是Flink程序的运行时表示形式。Flink作业既可以提交到长期运行的Flink会话集群,也可以作为独立的Flink应用程序集群启动。

  • Flink JobManager Flink作业管理器

JobManager是Flink Master中运行的组件之一。JobManager负责监督单个作业的任务执行。在历史上,整个Flink Master都称为JobManager。

  • Logical Graph 逻辑图

逻辑图是描述流处理程序的高层次逻辑的有向图。节点是操作符Operators,边edges指示数据流或数据集相应的操作符Operators的输入/输出关系。

  • Managed State 管理状态

管理状态描述了已在框架中注册的应用程序状态。对于管理状态,Apache Flink将特别关注持久性和重新缩放。

  • Flink Master

Flink主机是Flink群集的主机。它包含三个不同的组件:Flink资源管理器,Flink调度程序和 每个运行的Flink Job一个Flink JobManager。

  • Operator 操作符或算子

逻辑图的节点。操作符执行某种操作,通常由Function执行。Sources 和 Sinks是用于数据摄取和数据出口的特殊操作符Operators。

  • Operator Chain 操作链

一个操作符链由两个或多个连续的操作符Operators组成,中间没有任何重新分配。同一操作符链中的操作符Operators无需经过序列化或Flink的网络堆栈即可直接将记录彼此传输。

  • Partition 分区

分区是整个数据流或数据集的独立子集。通过将每个记录分配给一个或多个分区,将数据流或数据集划分为多个分区。任务Task在运行时使用数据流或数据集的分区。改变数据流或数据集分区方式的转换通常称为重新分区repartitioning。

  • Physical Graph 物理图

物理图是转换逻辑图以在分布式运行时中执行的结果。节点是任务,边缘指示数据流或数据集的输入/输出关系或分区。

  • Record 记录

记录是数据集或数据流的组成元素。操作符Operators和函数接收记录作为输入,并发出记录作为输出。

  • Flink Session Cluster Flink会话集群

长期运行的Flink群集,它接受多个Flink作业来执行。此Flink群集的生命周期与每个Flink作业的生命周期有关。以前,Flink Session Cluster Flink会话群集在会话模式下也称为Flink群集。

  • State Backend 后端状态

对于流处理程序,Flink作业的后端状态确定如何在每个TaskManager(TaskManager的Java堆或(嵌入式)RocksDB)上存储其状态,以及如何在检查点checkpoint上写入状态(Flink Master或文件系统的Java堆) )。

  • Sub-Task 子任务

子任务是负责处理数据流分区partition的任务。术语“子任务”强调针对同一操作符或算子Operator or Operator Chain有多个并行任务 。

  • Task 任务

物理图的节点。任务是基本工作单元,由Flink的运行时执行。任务恰好封装了一个操作符或算子Operator or Operator Chain的并行实例 。

  • Flink TaskManager Flink任务管理器

TaskManager是Flink群集的工作进程worker processes。任务Task安排在TaskManager中执行。它们彼此通信以在后续任务之间交换exchange数据。

  • Transformation 转换

将转换应用于一个或多个数据流或数据集,并产生一个或多个输出数据流或数据集。转换可能会更改每个记录的数据流或数据集,但也可能仅更改其分区或执行聚合。尽管操作符或算子Operators和函数Functions是Flink API的“物理”部分,但转换只是API概念。具体而言,大多数转换是由某些操作符或算子Operators实现的

总结

本篇文章介绍Flink相关基本概念,其是学习Flink的开始,更深入理解Flink分布式运行原理和内存模型构成,如何调优内存和故障排除等问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BigDataplus 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档