Batch 使用入门

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

概览

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

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

批处理由以下组件组成:

  • 作业:一个计划程序,它可以运行一组任务,而不需要任何用户互动,通常适用于计算工作负载。例如,一个作业可能是单个 Shell 脚本或复杂的多部分计算。

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

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

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

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

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

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

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

价格

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

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

限制

批处理存在以下限制:

  • 您不能超出项目的批处理配额和限制
  • 每个作业只能指定一种机器类型,该类型可以是预定义类型或自定义类型。
  • 您不能为每个作业指定多个任务组。所有作业只有一个名为 group0 的任务组。

前提条件

如需开始使用批量处理,请满足以下前提条件:

  1. 如果您的项目之前未使用过批处理功能,请为您的项目启用批处理功能
  2. 为每个新用户设置批量处理

为项目启用 Batch

如需开始将批处理功能与项目搭配使用,请执行以下操作:

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

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

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

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

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

      Enable the APIs

      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 替换为您的项目编号

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

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

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

为新用户设置批量处理

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

  1. 如需获得使用批处理所需的权限,请让您的管理员为您授予项目的所需 IAM 角色。如需查看每个任务所需的权限,请参阅相应任务的文档。

    例如,如果您想通过创建基本作业开始学习如何使用批处理,不妨考虑为以下任务请求角色:

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

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

  2. 如果您想使用适用于批处理的命令行示例,请按以下步骤设置 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 支持团队联系,咨询有关批处理的问题。

    Google Cloud 提供多种支持套餐以满足不同的需要,例如全天候支持、手机支持以及技术支持经理对接。如需了解详情,请参阅 Google Cloud 支持

  • 如需提供有关批处理的任何反馈或功能请求,或者在没有付费支持套餐的情况下报告批处理问题,请点击发送反馈按钮,该按钮位于每个批处理文档页面的开头和结尾。然后,选择以下任一选项:

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

后续步骤