网站举报有奖平台,网上购物系统的设计与实现论文,下载一个手机app,网站建设图片设置Flink 运行架构和核心概念
几个角色的作用#xff1a;
客户端#xff1a;提交作业JobManager进程 任务管理调度 JobMaster线程 一个job对应一个JobMaster 负责处理单个作业ResourceManager 资源的分配和管理#xff0c;资源就是任务槽分发器 提交应用#xff0c;为每一个…Flink 运行架构和核心概念
几个角色的作用
客户端提交作业JobManager进程 任务管理调度 JobMaster线程 一个job对应一个JobMaster 负责处理单个作业ResourceManager 资源的分配和管理资源就是任务槽分发器 提交应用为每一个新提交的作业启动一个新的JobMaster 组件 TaskManager 处理数据每个TaskManager 都包含一定的slots 作业提交过程Standlone
提交作业到客户端客户端解析参数 提交任务到JobManagerJobManager通过分发器启动并提交应用作业图 JobGraph一个作业对应一个JobMasterJobMaster 将作业图 解析为可执行的执行图 Execution Graph得到所需要的资源数向资源管理器请求slots资源管理器 向TaskManager请求资源 也就是slotsTaskManager 会向资源管理器注册自己的任务槽并提供JobMaster 分发任务给TaskManager
核心概念
并行度
特定算子子任务的个数。
设置有三种方式
代码中设置
stream.map(word - Tuple2.of(word, 1L)).setParallelism(2);
提交应用时设置 全局设置
bin/flink run –p 2 –c com.atguigu.wc.SocketStreamWordCount
./FlinkTutorial-1.0-SNAPSHOT.jar
配置文件中设置 算子
算子有两种
一对一 类似于窄依赖重分区 类似于shuffle
并行度相同的 一对一的算子可以合并 成为 算子链
// 禁用算子链
.map(word - Tuple2.of(word, 1L)).disableChaining();
// 从当前算子开始新链
.map(word - Tuple2.of(word, 1L)).startNewChain()
任务槽
TaskManager所分配的特定的资源内存
任务槽数量的设置在配置文件中 默认的数量是1
taskmanager.numberOfTaskSlots: 8
任务槽只是隔离内存 不隔离cpu所以 一般会把任务槽的数量设置为cpu的核数避免不同任务对cpu的争抢。
同一个作业中的不同任务节点的并行子任务可以放到同一个slot中执行
任务槽和并行度的关系
占用任务槽的数量等于作业的最大并行度。
参考资料25_Flink运行时架构_核心概念_并行度设置优先级_哔哩哔哩_bilibili