Flink架构

1、Apache Flink集群的核心架构:

        1、client(作业客户端):提交任务的地方叫做客户端

        2、JobManager(作业管理器):作用是用于管理集群中任务

        3、TaskManager(任务管理器):负责执行Task的任务

2、Apache Flink的架构:
        1、JobManager:

                1、主要的作用是负责任务的调度,资源的分配以及将Task任务发送到TaskManager上去执行,会收集TaskManager的Heartbeat和统计信息

                2、Scheduler:负责的是资源的调度

                3、Checkpoint Coordinator:因为Flink中会做checkpoint,所以Checkpoint Coordinator的主要的工作就是负责定期做checkpoint。

        2、TaskManager:

                1、Task Solt(任务槽):slot是flink中从资源层面进行调度的单位,是用来执行Task任务的。

                2、Memory & I/O Manager :是用于管理内存数据

                3、Network Manager:负责管理网络连接的。在flink中,多个TaskManager之间也是有连接的,数据会以Data Streams的形式(数据流形式)将Flink中的上游的数据传输到下游。

                4、Actor System:负责远程调用的,是负责与JobManager之间进行通信的一个接口,工具,flink中不同的角色之间都是通过Actor来通信,程序拿到Client之后会通过Akka客户端来通信

Flink架构_第1张图片

Flink的主要的调度的流程:

        1、首先在client端,编写一段Program Code,然后在本地client端,构建出来一个Daraflow graph图,客户端就会将构建好的Daraflow graph(数据流图)图以dataflow的形式提交到JobManager上面

        2、此时JobManager端接收到客户端传输过来的Daraflow graph图,然会就会根据有没有shuffle,将图进行切分,转化成一个一个的Task

        3、JobManager会不断接收TaskManager的心跳消息,从而可以获取到有效的TaskManager

        4、然后将切分好的Task分发到TaskManager上面去执行。

你可能感兴趣的:(Flink,1.15.2,flink,架构,大数据)