连接Ray资源组进行作业开发

更新时间:
复制为 MD 格式

Ray资源组提供交互式访问地址,以方便快速进行Ray作业迭代开发。您可在本地、Notebook中通过该地址与Ray资源组通信,借助云上资源实现作业快速开发。

前提条件

获取 Ray 资源组交互式访问地址

  1. 登录Lindorm管理控制台

  2. 在页面左上角,选择实例所属的地域。

  3. 实例列表页,单击目标实例ID或者目标实例所在行操作列的管理

  4. 实例详情页左侧展开配置与管理,单击子菜单中的 数据库连接

  5. 在右侧页面中,选择计算引擎页签,在Ray连接方式部分查看您所需连接Ray资源的交互式访问地址

使用 Ray 资源组交互式访问地址

Ray 交互式访问地址使用说明

Ray 交互式访问地址适合在作业开发阶段使用,例如通过Notebook、Python交互式解释器(运行python命令进入的python交互环境),您可以按需地将某个代码片段在本地执行或者提交到Ray资源组上分布式运行。

说明
  • Ray资源组交互式访问地址为VPC地址,请在Lindorm实例所在VPC内连接该地址通信。

  • 请确保使用的客户端侧Python版本、Ray版本与Ray资源组保持一致。默认情况下,Ray资源组的Python版本为3.10,Ray版本为2.50.1。

本地开发 Ray 作业

下文以Python交互环境为例,介绍如何在本地链接Ray资源组,调度Ray Task执行。

1. 安装 Ray Client 客户端

执行 pip install 'ray[client]==2.50.1'

2. 启动 Python 交互环境,运行代码片段

初始化 Ray Client 连接
import ray
ray.init("ray://ld-bp17g15apaXXXX-${RAY_CG_NAME}-proxy-ldps.lindorm.aliyuncs.com:10001")

此时可观察到输出内容如下:

ClientContext(dashboard_url='xxxx', python_version='3.10.16', ray_version='2.50.1', ray_commit='e6c5981ae7d5cf6a33d93fba4c7893d9e796801e', _num_clients=1, _context_to_restore=<ray.util.client._ClientContext object at 0x7f68ad951f30>, protocol_version=None)

如观察到有Python patch version mismatch的日志信息,可忽略该信息,Ray兼容Major&Minor相同(即 3.10)的 Python 逻辑。

2025-12-26 17:10:56,311	WARNING utils.py:1591 -- Python patch version mismatch: The cluster was started with:
    Ray: 2.50.1
    Python: 3.10.16
This process on Ray Client was started with:
    Ray: 2.50.1
    Python: 3.10.2
定义 Ray Task
@ray.remote
def do_work(x):
    return x ** x
触发 Ray Task 执行并打印返回结果
ref = do_work.remote(2)
print(ray.get(ref))
# Output: 4

3. 观察交互式开发作业

访问Ray资源组WebUI,在Jobs页签可以查看到一个Submission ID为空,Entrypointpython -m ray.util.client.serverRay Job,该Job即为通过Ray Client触发的作业。

image.png

进入该作业,可看到通过Python交互环境提交的Ray Task、Actor运行信息。

4. 退出 Python 交互环境,终止Ray Job

您无需主动管理Ray资源组中的Ray Job状态。 该 Job在您未提交任何Ray Task时不会占用集群资源。如果网络连接断开或者您退出了Python环境,该Ray Job会自动终止运行。

使用 DataWorks Notebook 开发 Ray 作业

DataWorks Notebook支持连接 Lindorm Ray 计算资源,无需在本地配置环境即可快速进行 Ray 作业开发。

连接 Ray 资源组

DataWorks Notebook 支持通过 Magic Command 快速链接 Ray 交互式访问地址。

  • 您可以通过 %lindorm_ray 与 Ray 交互式访问地址建立链接。执行该命令后,在单元格右下角选择 Lindorm 计算资源和 Ray 资源组即可完成连接。

  • 如您需要配置自定义运行环境配置(如安装额外的 Python 包),需要使用%%lindorm_ray来链接 Ray 交互式访问地址。

比如您可以通过如下代码连接 Ray 资源组,配置自定义环境。

%%lindorm_ray
{
  "runtime_env": {
    "pip": ["jieba"]
  }
}

编写 Ray 代码

连接成功后,直接在 Notebook 单元格中编写 Ray 代码即可,日志会实时回传:

import ray 

@ray.remote
def do_work(x):
    import jieba

    return "/".join(jieba.cut(x))

print(ray.get(do_work.remote("欢迎使用DataWorks+LindormRay解决方案")))

DataWorks notebook 调度任务运行时的日志默认只显示前 1 MB,如需查看完整日志,可跳转至 Lindorm Ray Dashboard。

更多详细信息,请参考 DataWorks Notebook高级开发指南