Batch 使用入门

本页介绍了如何开始使用 Google Cloud 批处理。

概览

Batch 是一个全代管式服务 您可以安排、排队和执行批处理 Google Cloud 资源上的工作负载。 例如,您可以考虑将 Batch 用于 高性能计算 (HPC)、机器学习 (ML) 以及 数据处理工作负载 Batch 会代表您预配资源并管理容量,使批处理工作负载能够大规模运行。

借助 Batch,您无需配置和管理第三方 作业调度程序、预配和取消预配资源,或者请求资源 一个可用区。要运行作业,请为资源指定参数 之后,Batch 会获取资源并 将作业排队等待执行。Batch 提供与其他 Google Cloud 服务的原生集成,有助于安排、执行、存储和分析批处理作业,因此您可以专注于提交作业和使用结果。

Batch 包含以下组件:

  • 作业:运行一系列任务来完成而不提供 通常用于计算工作负载。 例如,作业可能是单个 Shell 脚本或 进行复杂的多部分计算。

    具体而言,一个批量作业表示一个数组,其中包含 以及运行这些任务的环境。 您可以将作业的程序定义为一个或多个可运行程序的序列。每个任务都会在作业的资源上运行一系列可运行对象。您可以将作业的任务配置为并行运行或按顺序运行。

  • 任务:作业的可运行对象序列的一次执行。如果作业包含多个任务,您可以通过在作业的可运行项中引用任务索引的环境变量,指定您希望每次执行的差异。

  • 可运行对象:您在作业中定义的可执行脚本或容器。

  • 资源:运行作业所需的基础架构。您至少只需指定每个任务所需的计算资源:CPU 核心、内存和(如果需要)额外的启动磁盘存储空间。(可选) 您还可以为作业指定其他资源选项。 Batch 自动创建和删除资源 满足规范要求的所有对象。

    具体而言,每个批量作业 区域级代管式实例组 (MIG),即包含一个或多个 与之匹配的 Compute Engine 虚拟机 位于某个包含的可用区内。每个虚拟机都有专用于 CPU 核心和内存(这两者会影响作业的性能)的硬件,以及用于存储操作系统 (OS) 映像和用于运行作业的指令的启动磁盘。如果指定了,作业可能还会包含或访问其他资源,例如 GPU 或外部存储卷。为作业预配的虚拟机数量取决于您指定的硬件要求和任务调度选项。

总而言之,借助 Batch,您可以创建和运行作业,每个作业自动预配并使用执行其任务所需的资源。

如需详细了解作业行为和选项,请参阅作业创建和执行概览页面。

价格

使用批处理无需额外付费。您只需为执行作业所需的底层资源付费。

如需详细了解与批处理相关的费用以及如何过滤 Cloud Billing 报告以查看批处理费用,请参阅价格

限制

Batch 具有以下限制:

  • 您不能超出 项目的批量配额和限制
  • 您只能指定一种机器类型 预定义custom、 。
  • 您不能为每个作业指定多个任务组。所有作业只有一个名为 group0 的任务组。

前提条件

如需开始使用 Batch,请先满足以下前提条件:

  1. 如果您的项目之前没有使用过 Batch, 为项目启用 Batch
  2. 为每个新用户设置 Batch

为项目启用 Batch

如需开始在项目中使用 Batch,请执行以下操作:

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. 确保您的 Google Cloud 项目已启用结算功能

  3. 确保您的项目已启用批量处理功能:

    1. 使用 Google Cloud 控制台或 Google Cloud CLI 为批处理启用 API。

      控制台

      Enable the Batch, Compute Engine, and Cloud Logging APIs.

      Enable the APIs

      gcloud

      Enable the Batch, Compute Engine, and Cloud Logging APIs:

      gcloud services enable batch.googleapis.com compute.googleapis.com logging.googleapis.com

    2. 请确保您的项目具有一个或多个 服务账号 拥有创建和访问资源所需的必要权限 运行批处理作业所需的资源

      请务必注意,您要允许哪些用户在项目中创建和运行批处理作业,就必须向他们授予使用其中一个服务账号的权限。因此,请勿选择权限超出您要授予这些用户的权限的服务账号。

      每个作业默认使用的服务账号是 Compute Engine 默认服务账号。 但您也可以 自定义作业使用的服务账号

      除非您打算只对作业的 服务账号,请向任意服务账号授予以下 IAM 角色 服务账号。

      • 项目的 Batch Agent Reporter (roles/batch.agentReporter)
      • 如需让作业在 Cloud Logging 中生成日志,请为项目启用日志写入器 (roles/logging.logWriter)

      您用于作业的服务账号可能还需要 根据需要配置更多角色, 应用场景。请参阅每项任务对应的文档, 需要额外权限。如需详细了解如何向服务账号授予角色,请参阅限制服务账号管理对服务账号的访问权限

    3. 确保您熟悉项目的 批处理服务代理:

      创建批处理作业后,系统会自动为您的项目创建一个批处理服务代理,其名称为:

      service-PROJECT_NUMBER@gcp-sa-cloudbatch.iam.gserviceaccount.com
      

      PROJECT_NUMBER 替换为您的项目编号

      Batch 服务代理会被自动授予 Google Batch Service Agent (roles/batch.serviceAgent) IAM 角色。 必须进行此配置,项目才能使用 批处理。

      不过,在某些用例(例如在共享 VPC 网络上运行作业)中,您需要向项目的批处理服务代理授予其他权限。

      如需了解详情,请参阅服务代理

为新用户设置批量处理

如需以用户身份开始使用批处理,请执行以下操作:

  1. 为了获得使用 Batch 所需的权限, 请让管理员授予您所需的 IAM 角色 项目级别请参阅每项任务对应的文档,了解 所需权限。

    例如,如果您希望开始学习如何使用 Batch 请考虑为以下任务请求角色:

    • 如需创建作业,请执行以下操作:
    • 如需列出和描述作业:项目的 Batch Job Editor (roles/batch.jobsEditor) 或 Batch Job Viewer (roles/batch.jobsViewer)
    • 如需查看作业的日志,请使用项目的日志查看器 (roles/logging.viewer)
    • 如需删除作业,请使用项目的 Batch Job Editor (roles/batch.jobsEditor)

    如需详细了解如何授予角色,请参阅管理访问权限

  2. 如果您想使用适用于 Batch 的命令行示例, 通过执行以下操作来设置 Google Cloud CLI。详细了解 Google Cloud CLI 进行身份验证

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    2. 推荐使用 gcloud config set project 命令

      gcloud config set project PROJECT_ID
      

      PROJECT_ID 替换为项目的项目 ID

  3. 如果您想使用适用于批处理的 API 示例或客户端库示例,请参阅对批处理进行身份验证

获取支持

您可以使用 Cloud 论坛上的批量标签

如果您在使用批处理时遇到问题,请参阅问题排查文档。

要获得 Batch 的支持或提供反馈,请使用 以下资源:

  • 如有 Google Cloud 的结算问题,请联系 结算支持

  • 如果您有付费支持套餐,请联系 Google Cloud 支持团队 来咨询有关 Batch 的问题。

    Google Cloud 提供不同的支持套餐来满足不同的需求 例如全天候服务、手机支持以及技术支持 。如需了解详情,请参阅 Google Cloud 支持

  • 为 Batch 提供任何反馈或功能请求,或 在没有付费支持套餐的情况下报告 Batch 的问题, 点击发送反馈按钮(您可以在底部找到该按钮) 每个 Batch 文档页面的末尾部分。 然后,选择以下任一选项:

    • 对于与 Batch 文档相关的反馈,请选择“文档反馈”。
    • 如需提供有关批量处理的所有其他反馈,请选择“产品反馈”。

后续步骤