4--Flink Parallelism AND 操作链
2023-09-02 10:09:37 1 举报
Flink Parallelism AND 操作链
作者其他创作
大纲/内容
Flink
任务
构建
TaskManagers / works
JobManagers备
调用
JobManagers / Master主
作业
四种方式配置文件:flink-conf.yaml执行环境级别:通过 setParallism() 在配置环境方法后面设置 默认环境内所有都是此配置算子级别:通过 setParallism() 定义单个算子代码运行时:算子的任务和本次任务相关
Task Manager
JobManager 将做业务划分多个Task
主要协调分布式运行 调度任务,协调checkpoint,协调失败任务的恢复Flink集群至少有一台 JobManagers
任务并行度设置
代码实现操作链式默认适配的 但可以关闭操作链 或 阻止单个算子关闭操作链关闭:environment.disableOperatorChaining();阻止:Stream.disableChaining()
至少有一个TaskManager
打包
执行操作链的条件1.上下游算子实例间是 oneToOne 数据传输2.上下游算子并行度相同3.上下游算子属于相同的 slotSharingGroup(槽位共享组)
DataStream API
1.每个算子的并行度不同 就会导致Shuffle 产生IO2.每个算子根据并行度产生Task 如果算子比较多会产生大量 Task
Stream执行环境
调用 execute() 时 此Job Graph 就被打包
执行Task任务 缓存数据 数据交换在同一个JVM中 多线程执行任务一个TaskManager可以同时执行多个任务:可以是同一个算子的子任务(数据并行)可以是来自不同算子(任务并行)可以是另一个不同应用程序(作业并行)
processing slots提供了一定数量用于控制可以并行执行的任务数
操作链将相同并行度的Task组合成一个Task
task slot每个作业的多个并行子任务将在 task slot中执行
将应用构建了 Job Graph 到 StreamExecutionEnvironment
0 条评论
下一页