本页面介绍了如何开始使用 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,请完成以下前提条件:
- 如果您的项目之前未使用过 Batch,请为您的项目启用 Batch。
- 为每位新用户设置 Batch。
为项目启用 Batch
如需开始在项目中使用 Batch,请执行以下操作:
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Verify that billing is enabled for your Google Cloud project.
确保您的项目已启用 Batch:
Enable the Batch, Compute Engine, and Cloud Logging APIs.
确保您的项目拥有一个或多个服务账号,这些账号具有创建和访问资源以运行 Batch 作业所需的权限。
请务必注意,您必须向要允许在项目中创建和运行 Batch 作业的任何用户授予使用这些服务账号的权限。因此,请勿选择权限超出您要授予这些用户的服务账号。
每个作业默认使用的服务账号是 Compute Engine 默认服务账号,但您也可以自定义作业使用的服务账号。
除非您计划仅为作业的服务账号使用默认配置,否则请向您的项目用于 Batch 作业的所有服务账号授予以下 IAM 角色。
- 项目的 Batch Agent Reporter (
roles/batch.agentReporter
) - 如需让作业在 Cloud Logging 中生成日志,请授予项目 Logs Writer (
roles/logging.logWriter
) 权限
您为作业使用的服务账号可能还需要其他角色,具体取决于您要为作业使用的配置选项。请参阅各项任务的文档,了解是否需要其他权限。如需详细了解如何向服务账号授予角色,请参阅限制服务账号和管理对服务账号的访问权限。
- 项目的 Batch Agent Reporter (
确保您熟悉项目的 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,请执行以下操作:
如需获得使用 Batch 所需的权限,请让您的管理员为您授予项目的必需 IAM 角色。请参阅各项任务的文档,了解其所需的权限。
例如,如果您想通过创建基本作业来开始学习如何使用 Batch,请考虑为以下任务请求角色:
- 如需创建作业,请执行以下操作:
- 项目中的 Batch Job Editor (
roles/batch.jobsEditor
) - 作业的服务账号(默认情况下为默认 Compute Engine 服务账号)的 Service Account User (
roles/iam.serviceAccountUser
)
- 项目中的 Batch Job Editor (
- 列出和描述作业:项目的 Batch Job Editor (
roles/batch.jobsEditor
) 或 Batch Job Viewer (roles/batch.jobsViewer
) - 如需查看作业的日志:项目的 Logs Viewer (
roles/logging.viewer
) - 如需删除作业,请在项目中打开 Batch Job Editor (
roles/batch.jobsEditor
)
如需详细了解如何授予角色,请参阅管理访问权限。
- 如需创建作业,请执行以下操作:
如果您想使用 Batch 的命令行示例,请按以下步骤设置 Google Cloud CLI。详细了解 Google Cloud CLI 的身份验证。
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
建议:使用
gcloud config set project
命令设置默认项目:gcloud config set project PROJECT_ID
将
PROJECT_ID
替换为您的项目的项目 ID。
如果您想使用 Batch 的 API 示例或客户端库示例,请参阅向 Batch 进行身份验证。
获取支持
您可以在 Google 开发者计划论坛上使用 Batch 标记与社区讨论 Batch。
如果您在使用 Batch 时遇到问题,请参阅问题排查文档。
如需获得 Batch 支持或提供反馈,请使用以下资源:
如果 Google Cloud存在结算问题,请与结算支持团队联系。
如果您有付费支持套餐,请直接与 Google Cloud 支持团队联系,以解决 Batch 相关问题。
Google Cloud 提供多种支持套餐以满足不同的需要,例如全天候支持、手机支持以及技术支持经理对接。如需了解详情,请参阅 Google Cloud 支持团队。
如需针对 Batch 提供任何反馈或功能请求,或者在没有付费支持套餐的情况下报告 Batch 的问题,请点击发送反馈按钮。您可以在每个 Batch 文档页面的开头和结尾处找到该按钮。 然后,选择以下选项之一:
- 如需提供与 Batch 文档相关的反馈,请选择“文档反馈”。
- 对于有关 Batch 的所有其他反馈,请选择“产品反馈”。
后续步骤
详细了解 Batch:
详细了解如何创建作业。
了解相关 Google Cloud 产品: