具体内容请看b站尚硅谷课程! 32_Flink运行时架构_提交流程_Yarn应用模式_哔哩哔哩_bilibili
JobManager是Flink的进程,它是 Flink 集群的“大脑”,处理作业的提交、计划和监控等,JobMaster、ResouceManager、Dispatcher以线程的形式存在于 JobManager 进程中(JobMaster与Job一一对应,多个Job就有多个JobMaster);Master是Spark的进程, Driver 是运行用户应用程序的进程。
以Source为例,Source算子有两个子任务(Source算子有两个并行度)
分为one-to-one和Redistributing重分区,分别类似于Spark的窄依赖和宽依赖。(上图中间是Redistributing)
减少原本算子之间的跨线程次数,减少时延的同时提升吞吐量。
在一个 Flink 集群中,通常会有多个 TaskManager 实例,每个 TaskManager 可以运行在不同的机器上,故可以配置每个 TaskManager 的 Slot 数量为其所在机器的 CPU 核心数(每台机器通常运行一个 TaskManager 实例,和Hadoop的DataNode一样)
每个slot内部是不间断地并行运行同一个作业中的不同算子链的任务,不是内部串行,每一个算子链的进度都是时刻在变且相互之间没有联系。