| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Flink运行时架构(一) -> 正文阅读 |
|
[大数据]Flink运行时架构(一) |
主从架构:一个JobManager(作业管理器)和多个TaskManager(任务管理器) JobManager进程中包含三种线程; 1)ResourceManager(资源管理器),管理TaskManager中的Task Slot(任务插槽) 2)Dispatcher(分发器,WebUI)? 提价任务和监控集群和任务 3)JobMaster? 负责管理单个JobGraph的执行,调度任务,将DAG部署到任务管理器 TaskManager(任务管理器) 1)Task Slot(任务插槽):是一个物理分区 2)不同的任务插槽就是不同的物理分区 3)每个任务插槽是一个内存分片 4) 内存的本质:字节数组 关于任务,子任务,并行子任务 任务:一个Flink作业 子任务:readTextFile,map,sum都是子任务 并行子任务:每个算子可能会有多个并行子任务? ?.print().setParallelism(2) ? 并行度的优先级: 1.任务管理器的配置文件里面? flink-conf.yaml~? ?parallelism.default:1 2.在命令行提交任务时设置并行度? ./bin/flink run? ?xxx.jar? -p 16 3.全局并行度? env.setParallelism(1) 4.针对算子设置并行度? ? .print().setParallelism(1) 并行度注意事项: 1) 不要设置全局并行度? ?因为没法在命令行动态扩容 2)针对某些算子设置并行度? 例如数据源,为了不改变数据的顺序 3)在命令行设置可以动态扩容 4)任务插槽中的数量在配置文件中写死了,但并行度可以动态配置,但并行度的大小不能超过任务插槽的数量 任务插槽: 1)Flink中每一个 TaskManager 都是一个 JVM 进程,每一个任务插槽都会启动一个或者多个线程,它可能会在独立的线程上执行一个或多个 subtask,每一个子任务占用一个任务插槽(Task Slot)。 2)为了控制一个 TaskManager 能接收多少个 Task,TaskManager 通过 Task Slot 来进行控制(一个TaskManager 至少有一个 Slot, 3)默认情况下,Flink 允许子任务共享 Slot 。这样的结果是,一个 Slot 可以保存作业的整个管道 4)Task Slot是静态的概念,是指 TaskManager 具有的并发执行能力 ? ?任务提交流程: ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 5:46:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |