Flink-Task、SubTask、并行度
Task与SubTask
一个算子就是一个Task. 一个算子的并行度是几, 这个Task就有几个SubTask
对应关系:
算子=Task
并行度=SubTask
task是抽象概念,subtask是物力概念
Parallelism并行度
默认并行度--cpu核数
关键点
不同的并行度(subtask),肯定在不同的slot,但也可能在不同的taskmanager
一个流程序的并行度,可以认为就是其所有算子中算子并行度最大的并行度
数据传输模式:
One-to-one:
类似于spark中的窄依赖
Redistributing
类似于spark中的宽依赖
stream(map()跟keyBy/window之间或者keyBy/window跟sink之间)
例如,keyBy()基于
hashCode重分区(类似shuffler)、
broadcast(一个流向多个)
rebalance(并行度不一致)
设置并行度
如何控制操作链(生产环境下不会用):
1. .startNewChain()
从当前算子开启一个新链
2. .disableChaining()
当前算子不会和任何的算子组成链
3.env.disableOperatorChaining();
全局禁用操作链
给算子设置并行度(优先级越来越高,4最高):
1. 在配置文件中 flink.yaml parallelism.default: 1
2. 在提交job的时候通过参数传递 -p 3
3. 通过执行环境来设置并行度 env.setParallelism(1);
4. 单独的给每个算子设置并行度
Operator Chains(任务链)-->这是flink默认的优化
相同并行度的one to one操作,Flink将这样相连的算子链接在一起形成一个task,原来的算子成为里面的一部分。 每个subtask被一个线程执行.
将算子链接成task是非常有效的优化:它能减少线程之间的切换和基于缓存区的数据交换,在减少时延的同时提升吞吐量。链接的行为可以在编程API中进行指定
ExecutionGraph(执行图)(了解即可)
由Flink程序直接映射成的数据流图是StreamGraph,也被称为逻辑流图,因为它们表示的是计算逻辑的高级视图。为了执行一个流处理程序,Flink需要将逻辑流图转换为物理数据流图(也叫执行图),详细说明程序的执行方式。
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个并发度(Source为1个并发度)的 SocketTextStreamWordCount 四层执行图的演变过程
env.socketTextStream().flatMap(…).keyBy(0).sum(1).print();
Flink-Task、SubTask、并行度相关推荐
- Flink中subTask,并行度,slot你分得清吗?
Apache Flink是一个开源的流处理框架,应用于分布式.高性能.高可用的数据流应用程序.可以处理有限数据流和无限数据,即能够处理有边界和无边界的数据流.无边界的数据流就是真正意义上的流数据,所以 ...
- 1.21.Flink Slot和并行度(parallelism)\Flink的并行度由什么决定的?\Flink的task是什么?\slot和parallelism
1.21.Flink Slot和并行度(parallelism) 1.21.1.Flink的并行度由什么决定的? 1.21.2.Flink的task是什么? 1.21.3.slot和paralleli ...
- 第一天:什么是Flink、WordCount入门、Flink安装、并行度
1. 初识 Flink 在当前数据量激增的时代,各种业务场景都有大量的业务数据产生,对于这些不断产的数据应该如何进行有效的处理,成为当下大多数公司所面临的问题.目前比较流行的大数据处理引擎 Apach ...
- Flink——Task退出流程与Failover机制
Flink--Task退出流程与Failover机制 目录 Flink--Task退出流程与Failover机制 1 TaskExecutor端Task退出逻辑 2 JobMaster端failove ...
- 【Flink】flink on yarn 并行度设置高导致任务失败
文章目录 1.概述 1.概述 flink on yarn 并行度设置高了就失败有遇到过没,400的并行度就没事,设置成600就不断失败,是需要做什么额外的配置吗,比如网络缓冲?看报错日志没找到什么相关 ...
- 【Flink】flink sql的并行度怎么单独设置
1.概述 小记一下,记录flink sql的并行度怎么单独设置
- Flink的Parallelism并行度
一.Flink的Parallelism并行度 Flink的Parallelism并行度 在flink-conf.yaml中通过parallelism.default配置项给所有execution nv ...
- Flink Task、Sub-Task、task slot和parallelism
Task:物理图的节点.任务是工作的基本单元,由Flink的运行时执行.任务精确地封装运算符或运算符链的一个并行实例.Task是逻辑概念,一个Operator就代表一个Task(多个Operator被 ...
- flink sql设置并行度_《从0到1学习Flink》—— Flink parallelism 和 Slot 介绍
前言 之所以写这个是因为前段时间自己的项目出现过这样的一个问题: Caused by: akka.pattern.AskTimeoutException: Ask timed out on [Acto ...
- flink sql设置并行度_Flink原理——任务调度原理
本文主要从以下几个方面介绍Flink的任务调度原理 一.Flink运行时的组件 二.TaskManger与Slots 三.程序与数据流 四.Flink的执行图 五.Flink程序执行的并行度 六.Fl ...
最新文章
- 使用Xpose突破安卓App禁止截屏限制
- 【jQuery】手机验证码倒计时效果
- cisco 交换机vlan-trunk的配置详解及应用实例:
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]42蒙哥马利乘法,哪里泄漏侧信道路吗?
- Python 机器学习 随机森林 天气最高温度预测任务(三)
- Xftp5如何设置默认的文件夹
- 读书笔记_Effective_C++_条款二十四: 若所有参数皆需类型转换,请为此采用non-member函数...
- 双系统重装windows后修复UBUNTU的GRUB
- 实验4-1-8 求给定精度的简单交错序列部分和 (15 分)
- 如虎添翼VSPHERE 4/5 环境下 linux/windows 动态扩展磁盘
- 【精选】OCR精选10个问题 百度paddleocr
- 图像匹配之不变矩匹配法
- 单片机应用系统设计技术——串行口方式0 拓展并行输出端口 02 74LS164芯片
- HTML meta 标签
- 毕业设计开题分析:MIPS指令集硬件化设计与实现
- [转]让你的网页文本框增加光晕效果与提示,水印(类似QQ2011)
- 每月缴的个税,你知道怎么算的吗?
- 如何检查您附近(或任何地方)的空气质量
- 360n5s不打印日志 不同厂商手机系统日志抓取方法
- Windows 7 彻底退出历史舞台