1、简介网络
Flink 运行时架构主要包含几个部分:Client、JobManager(master节点)和TaskManger(slave节点)。架构
2、分工框架
JobManager:是主(master)节点,至关于YARN里面的REsourceManager,生成环境中通常能够作HA 高可用。JobManager会将任务进行拆分,调度到TaskManager上面执行。spa
TaskManager:是从节点(slave),TaskManager才是真正实现task的部分。blog
Client提交做业到JobManager,就须要跟JobManager进行通讯,它使用Akka框架或者库进行通讯,另外Client与JobManager进行数据交互,使用的是Netty框架。Akka通讯基于Actor System,Client能够向JobManager发送指令,好比Submit job或者Cancel /update job。JobManager也能够反馈信息给Client,好比status updates,Statistics和results。开发
Client提交给JobManager的是一个Job,而后JobManager将Job拆分红task,提交给TaskManager(worker)。JobManager与TaskManager也是基于Akka进行通讯,JobManager发送指令,好比Deploy/Stop/Cancel Tasks或者触发Checkpoint,反过来TaskManager也会跟JobManager通讯返回Task Status,Heartbeat(心跳),Statistics等。另外TaskManager之间的数据经过网络进行传输,好比Data Stream作一些算子的操做,数据每每须要在TaskManager之间作数据传输。it
当Flink系统启动时,首先启动JobManager和一至多个TaskManager。JobManager负责协调Flink系统,TaskManager则是执行并行程序的worker。当系统以本地形式启动时,一个JobManager和一个TaskManager会启动在同一个JVM中。当一个程序被提交后,系统会建立一个Client来进行预处理,将程序转变成一个并行数据流的形式,交给JobManager和TaskManager执行。ast