一、任务和算子链
- 分布式计算中,flink会将算子(operator)的子task链式组成tasks,每个task由一个线程执行,把算子链化为tasks是一个非常好的优化,他减少了线程之间的通信和缓冲,而且能增加吞吐量降低延迟
二、job Manager ,task managers clients
- JobManager (也成为master)用来协调分布式计算,负责进行任务调度,协调checkpoint,协调错误恢复等等,至少需要一个jobmanager,高可用部署下可能有多个jobmanager,其中一个作为leader,其余处于standby
- taskmanagers(也称为workers)真正执行dataflow中的tasks,并且对streams进行缓存和交换,至少需要一个taskmanager
- 有多种方式可以启动jobmanager和taskmanagers:直接在计算机上启动作为standalone cluster,在容器中或者由资源管理器yarn 或者mesos启动,taskmanager连接到jobmanager后,会通知jobmanager自己已经可用,接着分配工作
- client不作为运行时和程序执行的一部分,只是用于准备和发送dataflow作业到jbomanager