Batch 使用入门

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

概览

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

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

Batch 包含以下组件:

  • 作业:在无需任何用户互动的情况下运行一组任务完成的计划程序,通常用于计算工作负载。例如,某项作业可以是单个 Shell 脚本,也可以是复杂的多部分计算。

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

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

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

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

    具体而言,每个 Batch 作业都在区域级代管式实例组 (MIG) 上运行,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. 确保您的 Google Cloud 项目已启用结算功能

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

    1. 使用 Google Cloud 控制台或 Google Cloud CLI 为 Batch 启用 API。

      控制台

      启用 Batch, Compute Engine, and Cloud Logging API。

      启用 API

      gcloud

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

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

    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)
    • 如需查看作业的日志,请使用项目的日志查看器 (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

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

      gcloud config set project PROJECT_ID
      

      PROJECT_ID 替换为您的项目 ID

  3. 如果要将 API 示例或客户端库示例用于 Batch,请参阅向 Batch 进行身份验证

获取支持

您可以在 Cloud 论坛上与社区讨论 Batch。

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

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

  • 如需了解 Google Cloud 的结算问题,请联系结算支持

  • 如果您购买了付费支持套餐,对于 Batch 方面的问题,请直接与 Google Cloud 支持团队联系。

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

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

    • 如需查看与 Batch 文档相关的反馈,请选择“文档反馈”。
    • 有关 Batch 的所有其他反馈,请选择“Product feedback”(产品反馈)。

后续步骤