Flink运行时架构以及核心概念
1.运行构架
1.提交作业后启动一个客户端进程,客户端解析参数(-d -t 等等),后进行封装由Actor通信系统提交,取消,更新任务给JobManager。
2.JobManager(进程)通信系统一个组件叫分发器,分发器会启动并提交应用给JobMaster(线程类似于spark里的driver)JobMaster向资源管理器请求资源,资源管理器就会对TaskManager要资源。
3.资源管理器要资源,TaskManager通过通讯走网络把TaskSlot(任务槽)给JobMaster,JobMaster把任务分发出去让TaskManager开始执行任务,最后就是状态更新返回状态结果。
4.一个job对应一个jobmaster
2.核心概念
2.1并行度(Parallelism)
把一个算子操作,复制多份到多个节点。每个算子可以包含多个子任务,子任务在不同的线程,物理机或者容器中完成就是并行度。
2.2算子链
并行度相同的一对一算子操作,可以直接链接在一起形成一个大的任务,每一个这样的任务被一个线程执行,这样的技术被称为算子链。下面原先两个进程合并成一个就不用再跨线程,提高了效率。默认时开启的
2.3任务槽(Task Slots)
用来运行子任务(task)的,将TaskManager分成多份内存。
每个任务槽表示TaskManager拥有计算机的一个固定大小的子集。