1.TaskManager 总体架构
TaskManager 本身是一个 RPC 服务端,提供了任务提交、任务取消等接口,同时包含 JobLeaderService、TaskSlot 管理、资源管理、心跳检测、存储服务。例如,JobLeaderService 监听和保存 Master 节点信息的功能。TaskSlot 可以管理 Task 和 Slot。
2.TaskManager 的组成模块
2.1 TaskSlotTable
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 的心跳。
2.5 存储服务 BlobCacheService
BlobService 包含 PermanentBlobService 和 TransientBlobService。
① PermanentBlobService:可恢复,数据会上传到 BlobStore 分布式文件系统;
② TransientBlobService:不可恢复,数据不会上传到 BlobStore 分布式文件系统;