在Azure上启动Ray集群#

本指南详细介绍了在Azure上启动Ray集群所需的步骤。

有两种方式可以启动一个 Azure Ray 集群。

  • 通过 Ray 集群启动器启动。

  • 使用 Azure 门户部署集群。

备注

Azure 集成是由社区维护的。如果您遇到任何问题,请在 Github 上联系集成维护者:gramhagen, eisber, ijrsvt。

使用 Ray 集群启动器#

安装 Ray 集群启动器#

Ray 集群启动器是 ray CLI 的一部分。使用 CLI 通过 ray upray downray attach 等命令来启动、停止和附加到正在运行的 Ray 集群。你可以使用 pip 安装支持集群启动器的 ray CLI。更多详细说明请参考 Ray 安装文档

# install ray
pip install -U ray[default]

安装和配置 Azure CLI#

接下来,安装 Azure CLI (pip install -U azure-cli azure-identity) 并使用 az login 登录。

# Install azure cli.
pip install azure-cli azure-identity

# Login to azure. This will redirect you to your web browser.
az login

使用 Ray 集群启动器启动 Ray#

提供的 集群配置文件 将创建一个包含一个按需 Standard DS2v3 头节点的小型集群,该头节点配置为自动扩展到最多两个 Standard DS2v3 spot-instance 工作节点。

请注意,您需要在这些模板中填写您的 Azure resource_grouplocation。您还需要设置要使用的订阅。您可以通过命令行使用 az account set -s <subscription_id> 或在集群配置文件中填写 subscription_id 来完成此操作。

通过从本地机器运行以下命令来测试其是否工作:

# Download the example-full.yaml
wget https://raw.githubusercontent.com/ray-project/ray/master/python/ray/autoscaler/azure/example-full.yaml

# Update the example-full.yaml to update resource_group, location, and subscription_id.
# vi example-full.yaml

# Create or update the cluster. When the command finishes, it will print
# out the command that can be used to SSH into the cluster head node.
ray up example-full.yaml

# Get a remote screen on the head node.
ray attach example-full.yaml
# Try running a Ray program.

# Tear down the cluster.
ray down example-full.yaml

恭喜,您已经在 Azure 上启动了一个 Ray 集群!

使用 Azure 门户#

或者,您可以直接使用 Azure 门户部署集群。请注意,自动扩展是通过 Azure VM 规模集完成的,而不是通过 Ray 自动扩展器。这将部署 Azure Data Science VMs (DSVM) 用于头节点和由 Azure 虚拟机规模集 管理的自动扩展集群。头节点方便地提供了 SSH 和 JupyterLab。

一旦模板成功部署,部署输出页面将提供用于连接的ssh命令以及头节点上JupyterHub的链接(用户名/密码如模板输入中指定)。在Jupyter笔记本中使用以下代码(使用模板输入中指定的conda环境,默认情况下为py38_tensorflow)连接到Ray集群。

import ray; ray.init()

在底层,azure-init.sh 脚本被执行并执行以下操作:

  1. 激活DSVM上可用的conda环境之一

  2. 安装 Ray 以及用户指定的任何其他依赖项

  3. 设置一个 systemd 任务 (/lib/systemd/system/ray.service) 以在头节点或工作节点模式下启动 Ray