Flink学习笔记(三):Flink四种执行图

文章目录

  • 1、Graph 的概念
  • 2、Graph 的演变过程
    • 2.1、StreamGraph (数据流图)
    • 2.2、JobGraph (作业图)
    • 2.3、ExecutionGraph (执行图)
    • 2.4、Physical Graph (物理图)

1、Graph 的概念

作业提交和任务处理
Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> Physical Graph

StreamGraph(数据流图):是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。

JobGraph(作业图):StreamGraph经过优化后生成了 JobGraph,提交给 JobManager 的数据结构。主要的优化为,将多个符合条件的节点 chain 在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。

ExecutionGraph(执行图):JobManager 根据 JobGraph 生成 ExecutionGraph。ExecutionGraph 是 JobGraph 的并行化版本,是调度层最核心的数据结构。

Physical Graph(物理图):JobManager 根据 ExecutionGraph 对 Job 进行调度后,在各个TaskManager 上部署 Task 后形成的 “图”,并不是一个具体的数据结构。

2、Graph 的演变过程

2个并发度(Source为1个并发度)的 SocketTextStreamWordCount 四层执行图的演变过程:

env.socketTextStream().flatMap().keyBy(0).sum(1).print();

演变图过程

2.1、StreamGraph (数据流图)

数据流图(StreamGraph):在运行时,Flink 程序按照 算子逻辑 生成一个有向无环图DAG),这个图就是 数据流图(StreamGraph)。

  • StreamNode:用来代表 operator 的类,并具有所有相关的属性,如并发度、入边和出边等。
  • StreamEdge:表示连接两个 StremNode 的边。

2.2、JobGraph (作业图)

StreamGraph 经过优化后生成的就是 JobGraph。主要的优化为: 合并算子链,提交给 JobManager 的数据结构。

  • JobVertex:经过优化后符合条件的多个 StreamNode 可能会chain在一起生成一个 JobVertex,即一个 JobVertex 包含一个或多个operator,JobVertex 的输入是 JobEdge ,输出是 IntermediateDataSet。
  • IntermediateDataSet:表示 JobVertex 的输出,即经过 operator 处理产生的数据集。producer 是 JobVertex ,consumer 是 JobEdge。
  • JobEdge:代表了 job graph 中的一条数据传输通道。source 是 IntermediateDataSet,target 是 JobVertex。即数据通过 JobEdge 由 IntermediateDataSet 传递给目标 JobVertex 。

2.3、ExecutionGraph (执行图)

JobManager 根据 JobGraph 生成 ExecutionGraph。ExecutionGraph 是 JobGraph 的并行化版本,是调度层最核心的数据结构。在 JobGraph 的基础上结合各算子的并行度生成的就是 ExecutionGraph (ExecutionGraph与 JobGraph 最大的区别就是按照并行度将每个算子的任务拆分成了多个并行的子任务,并明确了任务间数据传输的方式。)

  • ExecutionJobVertex:和 JobGraph 中的 JobVertex 一一对应。每一个 ExecutionJobVertex 都有和并发度一样多的 ExecutionVertex。

  • ExecutionVertex:表示 ExecutionJobVertex 的其中一个并发子任务,输入是 ExecutionEdge,输出是 IntermediateResultPartition 。

  • IntermediateResult:和 JobGraph 中的 IntermediateDataSet 一一对应。一个 IntermediateResult 包含多个 IntermediateResultPartition ,其个数等于该 operator 的并发度。

  • IntermediateResultPartition:表示 ExecutionVertex 的一个输出分区,producer 是 ExecutionVertex,consumer 是若干个 ExecutionEdge。

  • ExecutionEdge:表示 ExecutionVertex 的输入,source 是 IntermediateResultPartition,target 是 ExecutionVertex。source 和 target 都只能是一个。

  • Execution:是执行一个 ExecutionVertex 的一次尝试。当发生故障或者数据需要重算的情况下 ExecutionVertex 可能会有多个ExecutionAttemptID。一个 Execution 通过 ExecutionAttemptID 来唯一标识。JobManager 和 TaskManager 之间关于 task 的部署和 task status 的更新都是通过 ExecutionAttemptID 来确定消息接受者。

2.4、Physical Graph (物理图)

JobManager 根据 ExecutionGraph 对 Job 进行调度后,在各个 TaskManager 上部署 Task 后形成的“图”,并不是一个具体的数据结构。

  • Task:Execution 被调度后在分配的 TaskManager 中启动对应的 Task。Task 包裹了具有用户执行逻辑的 operator。

  • ResultPartition:代表由一个 Task 的生成的数据,和 ExecutionGraph 中的 IntermediateResultPartition 一一对应。

  • ResultSubpartition:是 ResultPartition 的一个子分区。每个 ResultPartition 包含多个 ResultSubpartition,其数目要由下游消费 Task 数和 DistributionPattern 来决定。

  • InputGate:代表 Task 的输入封装和 JobGraph 中 JobEdge 一一对应。每个 InputGate 消费了一个或多个的 ResultPartition。

  • InputChannel:每个 InputGate 会包含一个以上的 InputChannel,和 ExecutionGraph 中的 ExecutionEdge 一一对应,也和 ResultSubpartition 一对一地相连,即一个 InputChannel 接收一个 ResultSubpartition 的输出。

Flink物理执行图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/163349.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1811_spacemacs从v.0.200.13升级到v.0.200.14的几点变化感受

全部学习汇总: GreyZhang/editors_skills: Summary for some common editor skills I used. (github.com) 安装了全新的spacemacs的配置,查看了一下版本是v.0.200.14。在此之前,我使用的版本是v.0.200.13。现在还没有在这个配置上完成我所有的…

[opencv]图像和特征点旋转

本来说这是很简单的一个内容,图像旋转只需要使用opencv中自带的旋转函数即可完成,但是最近在做特征点旋转的时候发现使用内置rotate函数给图像旋转90度,再用getRotationMatrix2D得出的旋转矩阵对特征点旋转,画出来的特征点位置全部…

Nginx+keepalived 高可用双机热备—双主模式

双机高可用方法目前分为两种: 1)Nginxkeepalived 双机主从模式:即前端使用两台服务器,一台主服务器和一台热备服务器,正常情况下,主服务器绑定一个公网虚拟IP,提供负载均衡服务,热备…

中文编程工具开发软件实际案例:酒店饭店餐饮点餐管理系统软件编程实例

中文编程工具开发软件实际案例:酒店饭店餐饮点餐管理系统软件编程实例图片如下 软件的安装方法: 软件绿色免安装,压缩包文件解压后,将文件夹复制到电脑的D或E盘里,将软件目录下的红色程序图标按右键发送到桌面快捷方式…

Pinia学习-存储数据、修改数据以及持久化实现

Pinia是什么? Pinia 是 Vue 的存储库,实现全局变量的定义 这里定义的变量信息,任何页面都可以使用,代替原来的VueX 官网:https://pinia.web3doc.top/ 4.2 Pinia存储数据 4.2.1获取存储数据 实现步骤:…

ubuntu 20.04 使用systemback自定义系统镜像和系统备份

ubuntu 20.04 使用systemback自定义系统镜像和系统备份 Systemback简介1. 安装 systemback16.0418.04 查看 2. 使用 systemback创建自定义镜像制作镜像制作中制作完成将镜像写入U盘 Systemback简介 Systemback是一个简单的系统备份和恢复应用程序,根据GPLv3许可条款…

工业企业网络推广解决方案 | 网络营销专家分享 | 上海添力

在国内,工业企业如果想在线上做推广,其主要途径就是做搜索引擎推广,在几个常用的搜索引擎(百度、360、搜狗、必应)中,一般都是从百度开始做起。但不少工厂做百度广告,钱花了不少,就是…

iOS上架App Store的全攻略

​ 第一步:申请开发者账号 在开始将应用上架到App Store之前,你需要申请一个开发者账号。 1.1 打开苹果开发者中心网站:Apple Developer 1.2 使用Apple ID和密码登录(如果没有账号则需要注册),要确保使用…

AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同

Hello大家好,我们今天继续讨论AWS Lambda的内容。 Lambda函数的版本 Lambda函数的版本和别名是辅助资源,我们可以通过创建这些资源管理函数的部署和调用。 首先,让我们来看一下Lambda 函数版本的概念。您可以使用版本来管理函数的部署。例…

Win10系统开机启动文件夹在哪里找?

Win10系统开机启动文件夹在哪里找?Win10系统开机启动文件夹是一个非常重要的目录,它决定了电脑在开机的时候,会有哪些应用程序是自动启动。但是,很多新手用户不知道Win10电脑内开机启动文件夹的具体位置,下面小编介绍开…

paddlenlp:社交网络中多模态虚假媒体内容核查(特征篇)

初赛之特征构造 写在前面一、安装paddleOCR二、代码部分三、模型优缺点四、写在最后 写在前面 通过前面两篇文章的介绍,我们可以大致的知道模型用到的特征分为四块:qCap,qImg,captions,imgs。根据这些特征&#xff0c…

人工智能(pytorch)搭建模型20-基于pytorch搭建文本生成视频的生成对抗网络,技术创新点介绍

大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型20-基于pytorch搭建文本生成视频的生成对抗网络,技术创新点介绍,随着人工智能和深度学习技术的飞速发展,文本到视频生成已经成为计算机视觉领域中一个重…

pragma once与ifndef的区别

概要 代码编译过程中,为了防止同一份代码被重复引用,通常有两种实现方式 方式一 #pragma once 方式二 #ifndef _TEST_H_ #define _TEST_H_ #endif // !TEST_H 通常情况下,使用上述两种方式中的任意一种都是可以的。最近工作中,代…

055:mapboxGL中加载geojson,导出为CSV格式文件

vue+mapbox 第055个 点击查看专栏目录 本示例介绍演示如何在vue+mapbox中加载geojson,导出为CSV格式文件。 通过一个插件,将geojson转化为csv,同时通过file-saver将文件下载下来。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果导出后的…

智能电表的功率计算方式是一样的吗?

随着科技的发展,智能电表已经成为了家庭和企业用电的必备设备。智能电表不仅可以实现用电量的监测和控制,还可以对用电负荷进行管理和优化。在智能电表的使用过程中,功率计算是一个重要的环节。那么,智能电表的功率计算方式是一样…

跨境电商自养号测评:如何配置安全可靠的网络环境?

随着全球化的加速和互联网的普及,跨境电商已经逐渐成为全球电子商务的主流形式。越来越多的企业开始涉足跨境电商领域,希望通过跨越国界的贸易活动来扩大市场份额、提高品牌影响力,以及增加企业收益。 然而跨境电商是一个充满机遇和挑战的领…

NSSCTF做题(10)

叫10好听一点,就是补9的 第7页的内容 [SWPUCTF 2022 新生赛]ez_sql get传参说是不安全,那就只能用post了 有回显了,两个假的flag 发现万能密码 1 or 11#变成了 11# 11# 1 11#1# 11# 11# 发现or和空格都无了,union也过滤 …

博客积分上一万了

博客积分上一万了 继续努力,勇往直前。

TCP/IP(二十一)TCP 实战抓包分析(五)TCP 第三次握手 ACK 丢包

一 实验三:TCP 第三次握手 ACK 丢包 第三次握手丢失了,会发生什么? 注意: ACK 报文是不会有重传的,当 ACK 丢失了,就由对方重传对应的报文 ① 实验环境 ② 模拟方式 1、 服务端配置防火墙iptables -t filter -I INPUT -s 172.25.2.157 -p tcp --tcp-flag ACK…

MS5248数模转换器可pin对pin兼容AD5648

MS5228/5248/5268 是一款 12/14/16bit 八通道输出的电压型 DAC,内部集成上电复位电路、可选内部基准、接口采用四线串口模式,最高工作频率可以到 40MHz,可以兼容 SPI、QSPI、DSP 接口和 Microwire 串口。可pin对pin兼容AD5648。输出接到一个 …