美文网首页Flink精选学习
【Flink 精选】TaskManager 详解 — 架构

【Flink 精选】TaskManager 详解 — 架构

作者: 熊本极客 | 来源:发表于2021-07-28 23:12 被阅读0次

    本文重点介绍 TaskManager 总体架构。TaskManager 整体是一个 RPC 服务端,提供的接口,例如请求 slot、提交任务、取消任务等。TaskManager 包含的模块有 TaskSlotTable、JobLeaderService、ResourceManager 等。

    1.TaskManager 总体架构

    JobManager 与 TaskManager 是基于 akka 进行 RPC 通信

    TaskManager 本身是一个 RPC 服务端,提供了任务提交、任务取消等接口,同时包含 JobLeaderService、TaskSlot 管理、资源管理、心跳检测、存储服务。例如,JobLeaderService 监听和保存 Master 节点信息的功能。TaskSlot 可以管理 Task 和 Slot。

    TaskManager 架构.jpg

    2.TaskManager 的组成模块

    TaskManager 包含的模块有JobManager 模块、TaskSlot 管理、资源管理 ResourceManager、心跳检测 HeartbeatManager、存储服务 BlobCacheService。

    2.1 TaskSlotTable

    问题1: TaskSlot 的概念
    答:TaskSlot 任务槽是指运行 Task 的容器,与普通线程的最大区别是每个 Slot 都可以分配到独立的内存
    问题2:TaskSlot 的主要特点
    TaskSlot 具有内存管理、状态等能力,其主要特点是不同 JobVertex 可以共享 Slot

    image.png

    TaskSlotTable 是管理 TaskSlot,其生命周期与 TaskManager 保持一致。TaskSlotTable 主要功能有添加和获取 Task、申请和释放 Slot。

    2.2 JobLeaderService

    JobLeaderService 用于监听 Master。如果 Master 节点改变,会通知 JobLeaderService,内部是以 jobId 为 key 保存 LeaderRetrievalService 和 JobManagerLeaderListener。

    2.3 资源管理 ResourceManager

    ResourceManager 用于监听 ResourceManager 主节点。如果主节点有变化,会通知 ResourceManagerLeaderRetriever。

    2.4 心跳监测 HeartbeatManager

    HeartbeatManager 模块包含 JobManagerHeartbeatManager 和 ResourceManagerHeartbeatManager 的心跳检测。
    ① JobManagerHeartbeatManager 负责检测 JobManager 与 TaskManager 的心跳;
    ② ResourceManagerHeartbeatManager 负责检测 ResourceManager 与 TaskManager 的心跳。

    image.png

    2.5 存储服务 BlobCacheService

    BlobService 包含 PermanentBlobService 和 TransientBlobService。
    ① PermanentBlobService:可恢复,数据会上传到 BlobStore 分布式文件系统;
    ② TransientBlobService:不可恢复,数据不会上传到 BlobStore 分布式文件系统;

    BLOB 底层存储,支持多种实现HDFS,S3,FTP等,HA 中使用BlobStore 进行文件的恢复。

    相关文章

      网友评论

        本文标题:【Flink 精选】TaskManager 详解 — 架构

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