| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Flink-Task、SubTask、并行度 -> 正文阅读 |
|
[大数据]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 四层执行图的演变过程
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 | -2025/5/1 3:26:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |