Batch 使用入门

本页面介绍了如何开始使用 Batch for Google Cloud。

概览

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

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

批次由以下部分组成:

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

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

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

  • 可运行对象:您定义为作业一部分的可执行脚本或容器。

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

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

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

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

价格

使用 Batch 无需额外付费。您只需支付执行作业所需的底层资源费用。

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

限制

批处理具有以下限制:

  • 您不得超出项目的 Batch 配额和限制
  • 每个作业只能指定一种机器类型,可以是预定义的,也可以是自定义的。
  • 每个作业只能指定一个任务组。所有作业都只有一个名为 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. Verify that billing is enabled for your Google Cloud project.

  3. 确保您的项目已启用 Batch:

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

      Enable the APIs

    2. 确保您的项目拥有一个或多个服务账号,这些账号具有创建和访问资源以运行 Batch 作业所需的权限。

      请务必注意,您必须向要允许在项目中创建和运行 Batch 作业的任何用户授予使用这些服务账号的权限。因此,请勿选择权限超出您要授予这些用户的服务账号。

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

      除非您计划仅为作业的服务账号使用默认配置,否则请向您的项目用于 Batch 作业的所有服务账号授予以下 IAM 角色。

      • 项目的 Batch Agent Reporter (roles/batch.agentReporter)
      • 如需让作业在 Cloud Logging 中生成日志,请授予项目 Logs Writer (roles/logging.logWriter) 权限

      您为作业使用的服务账号可能还需要其他角色,具体取决于您要为作业使用的配置选项。请参阅各项任务的文档,了解是否需要其他权限。如需详细了解如何向服务账号授予角色,请参阅限制服务账号管理对服务账号的访问权限

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

      创建 Batch 作业后,系统会自动为您的项目创建 Batch 服务代理,其名称如下:

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

      PROJECT_NUMBER 替换为您的项目编号

      Batch 服务代理会自动获得 Google Batch Service Agent (roles/batch.serviceAgent) IAM 角色。您的项目必须进行此配置才能使用 Batch。

      不过,在某些使用情形下(例如在共享 VPC 网络上运行作业),您需要向项目的 Batch 服务代理授予额外的权限。

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

为新用户设置 Batch

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

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

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

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

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

  2. 如果您想使用 Batch 的命令行示例,请按以下步骤设置 Google Cloud CLI。详细了解 Google Cloud CLI 的身份验证

    1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    2. 建议:使用 gcloud config set project 命令设置默认项目:

      gcloud config set project PROJECT_ID
      

      PROJECT_ID 替换为您的项目的项目 ID

  3. 如果您想使用 Batch 的 API 示例或客户端库示例,请参阅向 Batch 进行身份验证

获取支持

您可以在 Google 开发者计划论坛上使用 Batch 标记与社区讨论 Batch。

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

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

  • 如果 Google Cloud存在结算问题,请与结算支持团队联系。

  • 如果您有付费支持套餐,请直接与 Google Cloud 支持团队联系,以解决 Batch 相关问题。

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

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

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

后续步骤