参考:http://lionheartwang.github.io/blog/2018/03/05/flink-framwork-introduction/
https://blog.csdn.net/bingduanlbd/article/details/51880019
Flink 架构
Flink是一个流式计算框架
,Flink框架的架构是Master-Slaver风格的,如下图所示:
当 Flink 集群启动后,首先会启动一个 JobManger
和一个或多个的 TaskManager
。由Client
提交任务给 JobManager,JobManager 再调度任务到各个 TaskManager 去执行,然后 TaskManager 将心跳和统计信息汇报给 JobManager。TaskManager 之间以流的形式进行数据的传输。上述三者均为独立的 JVM 进程。一个TaskManager进程中开启多个Task线程。
-
Client
为提交 Job 的客户端,可以是运行在任何机器上(与 JobManager 环境连通即可)。提交 Job 后,Client 可以结束进程(Streaming的任务),也可以不结束并等待结果返回。
当用户提交一个Flink程序时,Flink框架
会首先创建一个Client进程。
该Client首先会对用户提交的Flink程序进行预处理,并提交到Flink集群中处理,所以Client需要从用户提交的Flink程序配置中获取JobManager的地址,并建立到JobManager的连接,将Flink Job提交给JobManager。