【云星数据---Apache Flink实战系列(精品版)】:Apache Flink高级特性与高级应用004-Flink的作业调度情况001

来源:互联网 发布:南京邮电大学网络信息 编辑:程序博客网 时间:2024/06/03 13:20

一、作业(Job)和调度(Scheduling)

1.调度(Scheduling)

1.Flink集群一般有一个或多个TaskManager,每个TaskManager有一个或多个slot来区分不同的资源(当前是内存)2.每个slot都可以运行整个pipeline,这些pipeline中的并行任务都可以并行的运行在各个slot之中3.可通过SlotSharingGroup和CoLocationGroup来定义任务在共享任务槽的行为,可定义为自由共享,  或是严格定义某些任务部署到同一个任务槽中。

这里写图片描述

1.本例中有2个TaskManager,每个TaskManager划分了3个slot,一共6个slot。2.本例是一个source-map-reduce的pipeline例子,source并行度为4map并行度为4,reduce并行度为3.最大并行度为4.3.图中可见TaskManager1使用2个slot,分别运行蓝,黄2个subtask的pipeline。4.图中可见TaskManager2使用2个slot,分别运行红,橙2个subtask的pipeline。

2.JobManager数据结构(JobManager Data Structures)

这里写图片描述

1.client将program解析成dataflow,并将dataflow的描述信息JobGraph提交给JobManager。JobGraph包含Operator(JobVertex),IntermediateResult(IntermediateDataSet),并行度,执行代码,附加的库等信息。2.JobManager将JobGraph并行化处理成ExecutionGraph。Operator(JobVertex)处理成包含多个Subtask(ExecutionVertex)的ExecutionJobVertex。IntermediateResult(IntermediateDataSet)并行化成含多个IntermediateResultPartition的IntermediateResult.也就是任务并行化: JobVertex->ExecutionJobVertex(含多个ExecutionVertex)数据并行化: IntermediateResult->IntermediateResult(含多个IntermediateResultPartition)
阅读全文
0 0
原创粉丝点击