Ray 集群架构与 MapReduce 示例详解
1. Ray 集群头节点
在 Ray 集群中,有一个特殊的节点被称为头节点(Head Node)。头节点上有驱动进程(driver process),驱动进程可以提交任务,但自身无法执行任务。同时,头节点也可以有一些工作进程,这对于运行由单个节点组成的本地集群非常重要。
头节点与其他工作节点基本相同,但它额外运行着负责集群管理的进程,例如自动缩放器(autoscaler)和全局控制服务(Global Control Service,GCS)。GCS 是一个关键组件,它存储着集群的全局信息,是一个键值存储,用于存储系统级元数据。例如,它有一个包含每个 Raylet 心跳信号的表,以确保可以访问这些 Raylet;而 Raylet 会向 GCS 发送心跳信号,表明自己处于活动状态。此外,GCS 还存储着 Ray 参与者(Ray actors)的位置信息。根据所有权模型,所有对象信息都存储在其所属的工作进程中,这样可以避免 GCS 成为瓶颈。
2. 分布式调度与执行
Ray 集群的分布式调度和执行涉及多个方面,下面详细介绍其步骤和细节:
- 分布式内存 :每个 Raylet 的对象存储负责管理节点上的内存。但有时需要在节点之间传输对象,这被称为分布式对象传输,用于解决远程依赖问题,确保工作进程拥有运行任务所需的对象。
- 通信 :Ray 集群中的大部分通信,如对象传输,都是通过 gRPC 进行的。
- 资源管理和分配 :在节点上,Raylet 负责分配资源并将工作进程租借
订阅专栏 解锁全文
453



被折叠的 条评论
为什么被折叠?



