选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 AWS CLI

聚焦模式
使用 AWS CLI - 亚马逊 SageMaker AI

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

以下主题提供了如何以 JSON 格式编写 SageMaker HyperPod API 请求文件并使用 AWS CLI 命令运行这些文件的指导。

创建新集群

  1. 准备生命周期配置脚本并将其上传到 S3 存储桶,如 s3://sagemaker-amzn-s3-demo-bucket/lifecycle-script-directory/src/。下面的步骤 2 假设在指定的 S3 存储桶中有一个名为 on_create.sh 的入口点脚本。

    重要

    确保设置的 S3 路径以 s3://sagemaker- 开头。的 IAM 角色适用于 SageMaker HyperPod 附带托管的 AmazonSageMakerClusterInstanceRolePolicy,允许访问带有特定前缀 sagemaker- 的 S3 存储桶。

  2. 准备一个 JSON 格式的 CreateClusterAPI 请求文件。您应配置实例组,使其与您在 provisioning_params.json 文件中设计的 Slurm 集群相匹配,该文件将在创建集群时使用,是运行一组生命周期脚本的一部分。要了解更多信息,请参阅 使用生命周期脚本自定义 SageMaker HyperPod集群。下面的模板有两个实例组,以满足 Slurm 集群的最低要求:一个控制器(主)节点和一个计算(Worker)节点。对于 ExecutionRole,请提供使用托管的 AmazonSageMakerClusterInstanceRolePolicy的 IAM 角色适用于 SageMaker HyperPod 部分创建的 IAM 角色的 ARN。

    // create_cluster.json { "ClusterName": "your-hyperpod-cluster", "InstanceGroups": [ { "InstanceGroupName": "controller-group", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster", // Optional: Configure an additional storage per instance group. "InstanceStorageConfigs": [ { // Attach an additional EBS volume to each instance within the instance group. // The default mount path for the additional EBS volume is /opt/sagemaker. "EbsVolumeConfig":{ // Specify an integer between 1 and 16384 in gigabytes (GB). "VolumeSizeInGB": integer, } } ] }, { "InstanceGroupName": "worker-group-1", "InstanceType": "ml.p4d.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster" } ], // Optional "Tags": [ { "Key": "string", "Value": "string" } ], // Optional "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } }

    根据生命周期脚本设计集群结构的方式,在 InstanceGroups 参数下最多可配置 20 个实例组。

    对于Tags请求参数,您可以添加用于将 SageMaker HyperPod 集群作为 AWS 资源进行管理的自定义标签。您可以像在其他支持标记的 AWS 服务中添加标签一样向集群添加标签。要详细了解如何为 AWS 资源添加标签,请参阅《标记 AWS 资源用户指南》。

    对于 VpcConfig 请求参数,请指定要使用的 VPC 信息。有关更多信息,请参阅 SageMaker HyperPod使用自定义 Amazon VPC 进行设置

  3. 运行 create-cluster 命令如下。

    aws sagemaker create-cluster \ --cli-input-json file://complete/path/to/create_cluster.json

    这将返回新集群的 ARN。

描述集群

运行 describe-cluster 查看集群状态。您可以指定集群的名称或 ARN。

aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster

集群状态变为 InService 后,进入下一步。使用此 API,您还可以从运行其他 HyperPod API 操作中检索失败消息。

列出集群节点的详细信息

运行list-cluster-nodes以检查群集节点的密钥信息。

aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster

这将返回一个响应,InstanceId 是您需要用来登录(使用 aws ssm)的内容。

描述集群节点的详细信息

运行describe-cluster-node以检索群集节点的详细信息。您可以从 list-cluster-nodes输出中获取群集节点 ID。您可以指定集群的名称或 ARN。

aws sagemaker describe-cluster-node \ --cluster-name your-hyperpod-cluster \ --node-id i-111222333444555aa

列出集群

运行 list-clusters 列出账户中的所有集群。

aws sagemaker list-clusters

您还可以添加其他标签来筛选集群列表。要详细了解此命令在低级别运行的内容以及用于过滤的其他标志,请参阅 ListClustersAPI 参考。

更新集群配置

运行 update-cluster 更新集群配置。

注意

您可以使用 UpdateCluster API 缩小集群规模或从 SageMaker HyperPod 集群中移除整个实例组。有关如何缩减或删除实例组的更多说明,请参阅缩小集群

  1. 创建 JSON 格式的 UpdateCluster 请求文件。确保指定正确的集群名称和实例组名称进行更新。您可以更改实例类型、实例数量、生命周期配置入口点脚本以及脚本的路径。

    1. 对于 ClusterName,指定要更新的集群名称。

    2. 对于 InstanceGroupName

      1. 要更新现有实例组,请指定要更新的实例组名称。

      2. 要添加新的实例组,请指定一个集群中不存在的新名称。

    3. 对于 InstanceType

      1. 要更新现有实例组,必须将最初指定的实例类型与组匹配。

      2. 要添加新实例组,请指定要配置该组的实例类型。

    4. 对于 InstanceCount

      1. 要更新现有实例组,请指定与所需实例数量相对应的整数。您可以提供更高或更低的值(向下至 0)来向上或向下扩展实例组。

      2. 要添加新的实例组,请指定一个大于或等于 1 的整数。

    5. 对于 LifeCycleConfig,您可以同时更改 SourceS3UriOnCreat 值,以更新实例组。

    6. 对于 ExecutionRole

      1. 要更新现有实例组,请继续使用创建集群时附加的相同 IAM 角色。

      2. 要添加新的实例组,请指定要附加的 IAM 角色。

    7. 对于 TreadsPerCore

      1. 更新现有实例组时,请继续使用创建集群时指定的相同值。

      2. 添加新实例组时,您可以从每个实例类型允许的选项中选择任意值。有关更多信息,请搜索实例类型并参阅《Amazon EC2 用户指南》中参考表中种实例类型的 CPU 核心数和每 CPU 内核的线程数。

    下面的代码片段是您可以使用的 JSON 请求文件模板。有关此 API 的请求语法和参数的更多信息,请参阅 UpdateClusterAPI 参考。

    // update_cluster.json { // Required "ClusterName": "name-of-cluster-to-update", // Required "InstanceGroups": [ { "InstanceGroupName": "name-of-instance-group-to-update", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster", // Optional: Configure an additional storage per instance group. "InstanceStorageConfigs": [ { // Attach an additional EBS volume to each instance within the instance group. // The default mount path for the additional EBS volume is /opt/sagemaker. "EbsVolumeConfig":{ // Specify an integer between 1 and 16384 in gigabytes (GB). "VolumeSizeInGB": integer, } } ] }, // add more blocks of instance groups as needed { ... } ] }
  2. 运行以下 update-cluster 命令提交请求。

    aws sagemaker update-cluster \ --cli-input-json file://complete/path/to/update_cluster.json

更新集群的 SageMaker HyperPod 平台软件

运行update-cluster-software以使用 SageMaker HyperPod 服务提供的软件和安全补丁更新现有集群。对于 --cluster-name,请指定要更新的集群名称或 ARN。

重要

请注意,在运行此 API 之前必须备份您的工作。打补丁过程会用更新的 AMI 替换根卷,这意味着存储在实例根卷中的先前数据将丢失。请务必将实例根卷中的数据备份到 Amazon S3 或 Amazon for Lustre。 FSx 有关更多信息,请参阅 使用提供的备份脚本 SageMaker HyperPod

aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster

此命令调用 UpdateClusterSoftwareAPI。API 调用后,将集群实例 SageMaker HyperPod 更新为使用最新版本,SageMaker HyperPod DLAMI并在集群创建或更新期间指定的 S3 存储桶中运行您的生命周期脚本。 SageMaker HyperPod 服务团队定期推出新SageMaker HyperPod DLAMI产品,以增强安全性和改善用户体验。我们建议您随时更新到最新的 SageMaker HyperPod DLAMI。如需了解 SageMaker HyperPod Future DLAMI 的安全补丁更新,请跟进。Amazon SageMaker HyperPod 发行说明

提示

如果安全补丁失败,您可以按照 描述集群 中的指示运行 DescribeCluster API,获取失败信息。API。

注意

您只能以编程方式运行此 API。 SageMaker HyperPod 控制台 UI 中未实现修补功能。

使用提供的备份脚本 SageMaker HyperPod

SageMaker HyperPod 提供了一个脚本,用于在 Awsome Distributed T 1.architectures/5.sagemaker-hyperpod/patching-backup.shraining GitHub 存储库中备份和恢复数据。脚本提供以下两个功能。

要在打补丁之前将数据备份到 S3 存储桶

sudo bash patching-backup.sh --create <s3-buckup-bucket-path>

运行该命令后,脚本会检查 squeue 是否有排队作业,如果队列中没有作业则停止 Slurm,备份 mariadb,并将定义在 LOCAL_ITEMS 下的本地项目复制到磁盘上。您可以向 LOCAL_ITEMS 添加更多文件和目录。

# Define files and directories to back up. LOCAL_ITEMS=( "/var/spool/slurmd" "/var/spool/slurmctld" "/etc/systemd/system/slurmctld.service" "/home/ubuntu/backup_slurm_acct_db.sql" # ... Add more items as needed )

此外,您还可以在所提供的脚本中添加自定义代码,为您的使用场景备份任何应用程序。

要在打补丁后从 S3 存储桶恢复数据

sudo bash patching-backup.sh --restore <s3-buckup-bucket-path>

缩小集群

您可以缩减 SageMaker HyperPod 集群中的实例数量或删除实例组,以优化资源分配或降低成本。

您可以使用 UpdateCluster API 操作将实例组中的实例随机终止到指定数量,或者使用 BatchDeleteClusterNodes API 操作终止特定实例,从而缩小规模。您也可以使用 UpdateCluster API 完全移除整个实例组。有关如何使用这些方法缩小规模的更多信息,请参阅缩小集 SageMaker HyperPod 群

注意

您无法删除配置为 Slurm 控制器节点的实例。尝试删除 Slurm 控制器节点会导致验证错误和错误代码。NODE_ID_IN_USE

删除集群

运行 delete-cluster 删除集群。您可以指定集群的名称或 ARN。

aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。