Client主要职责是提交任务, 提交后可以结束进程, 或者保持连接等待结果返回 Client不是Flink集群运行时的一部分 Actor system Actor system是具有各种角色的actor的容器(container),它提供诸如调度,配置,日志记 录等服务。 它还包含一个线程池。 所有的actor驻留在一个层次结构中。 每个新创建的actor都将被分配给父母。 actor之间使用信息系统互相交谈。 每个actor都有自己的邮箱,从中读取所有邮件。 如 果actor是本地的,则消息通过共享内存共享,但是如果actor是远程的,则认为RPC调 用消息。 JobManager 主要职责是分布式执行,并协调任务做检查点(checkpoint),协调故障恢复等 JobManager 从客户端接收到任务以后, 首先生成优化过的执行计划, 再调度到 TaskManager 中执行 Scheduler 调度器:Flink中的执行者被定义为任务槽。 每个任务管理器都需要管理一个或多个任务槽。 在内部,Flink决定哪些任务需要共享该插槽以及哪些任务必须被放置在特定的插槽中。 它通 过SlotSharingGroup和CoLocationGroup完成。 Checkpoint Coordinator Checkpoint协调器,负责checkpoint管理执行 Memory Manager 内存管理器: 会根据配置等信息计算内存的分配 TaskManager 主要职责是从 JobManager 处接收任务, 并部署和启动任务, 接收上游的数据并处理 TaskManager 在创建之初就设置好了 Slot , 每个 Slot 可以执行一个任务 每个TaskManager是一个进程 Task Slot 任务槽,负责具体任务的执行 每一个slot是一个线程 |
1. 程序代码提交前,Client中的Graph Builder对程序流程进行优化,将优化后的程序流程图提交给Client的Actor System。 2. Client的Actor System将程序和流程图提交给Flink集群中的主节点JobManager的Actor System。 3. JobManager的Actor System将程序分发给各个TashManager节点的Actor System。 4. TashManager节点的Actor System启动内部的Task Slot进行任务的执行。 5. 任务执行期间,JobManager开启Checkpoint Coordinator容器,协调检查点的制作,实现容错 机制。 6. TashManager执行任务结束,将执行结果逐级返回。 |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |