美文网首页
Flink系统架构

Flink系统架构

作者: ssttIsme | 来源:发表于2023-05-14 17:37 被阅读0次

    作业管理器JobManager

    控制一个程序执行的主进程、是Flink集群中任务调度和服务的核心。

    JobMaster对作业单独起控制调度作用

    JobMaster是JobManager中最核心的组件,负责处理单独的作业Job。
    一个Job对应一个JobMaster。
    在作业提交时,JobMaster会接收到要执行的应用。一般是客户提交过来的,包括:Jar包,经过客户端转换处理得到的数据流图(data graph)和作业图-【到底要执行哪些作业】(JobGraph)
    JobMaster会把JobGraph转换成一个物理层面可执行的数据流图,这个图叫做“执行图”(ExecutionGraph),它包含了所有可以并发执行的任务。JobMaster会向资源管理器(ResourceManager)发出请求,申请执行任务必要的资源。一旦它获取到了足够的资源,就将会将执行图分发到真正运行它们的TaskManager上。
    在运行过程中,JobMaster会负责所有需要中央协调的操作,比如检查点(checkpoints)的协调【定期保存】。

    ResourceManager资源管理器

    ResourceManager主要负责资源的分配和管理,在Flink集群中只有一个。所谓“资源”,主要是指TaskManager的任务槽(task slots)。任务槽就是Flink集群中的资源调度单元,包含了机器用来执行计算的一组CPU和内存资源。【slot在实际应用中对资源是有所隔离的,主要是内存的隔离,因为CPU是分时复用无法隔离】每一个并行的任务Task都会分配到一个slot上做执行。

    Dispatcher分发器

    Dispatcher主要负责提供一个REST接口,用来提交应用,并且负责为每一个新提交的作业启动一个新的JobMaster组件(客户端向JobManager提交作业时负责接口通信的组件)。Dispatcher也会启动一个WEB UI,用来方便地展示和监控作业执行的信息。Dispatcher在架构中并不是必须的,(与其他资源管理平台集成后就不需要了,因为资源管理平台可以接收当前作业的提交)在不同的部署模式下可能会被忽略掉。

    早期版本里,只有四大组件叫JobManager(JobMaster以前就叫JobManager)、ResourceManager、Dispatcher和TaskManager

    任务管理器TaskManager

    Flink里的工作进程,TaskManager会有多个。
    每个TaskManager都可以包含一定数量的任务槽(task slots)-能够并行执行任务的资源。一个TaskManager有多少插槽,这就决定了一个TaskManager能够同时并行执行多少任务。
    启动之后TaskManager会向资源管理器ResourceManager注册自己的插槽(当前可用资源)。JobMaster发出请求有新的作业想要资源,ResourceManager就会向TaskManager发出指令提供资源给当前作业执行,TaskManager就会将一个或多个插槽提供给JobMaster调用。JobMaseter就可以像插槽分配任务tasks来执行了。
    在执行过程,多个TaskManager之间可以互相交换数据,每个TaskManager可以有自己的buffer做数据的缓冲。

    相关文章

      网友评论

          本文标题:Flink系统架构

          本文链接:https://www.haomeiwen.com/subject/gfppsdtx.html