创建部分集群

为了缓解特定区域中用户指定的虚拟机在特定时间不可用(库存缺货)的影响,Dataproc 允许您通过指定允许创建集群的最低数量来请求创建 partial cluster

标准集群 部分集群
如果无法创建和初始化一个或多个主要工作器,则集群创建将失败。创建的工作器会继续运行并产生费用,直到用户删除为止。 如果可以创建的工作器数量达到指定的最低数量,系统就会创建集群。已失败(未初始化)的工作器会被删除,不会产生费用。如果无法创建和初始化指定最小数量的工作器,则不会创建集群。已创建的工作器不会被删除,以便进行调试。
集群创建时间已优化。 由于所有节点都必须报告预配状态,因此集群创建时间可能会更长。
单节点集群可供创建。 无法创建单节点集群

自动扩缩:

自动扩缩与部分集群创建搭配使用,以帮助确保创建主要工作器的目标(完整)数量。如果工作负载需要失败的工作器,自动扩缩功能将尝试在后台获取这些工作器。

以下是自动扩缩政策的示例,系统会不断重试,直到主工作器实例的总数达到目标大小 10。政策的 minInstancesmaxInstances 与创建集群时指定的主要工作器数量下限和总数相符(请参阅如何创建部分集群)。将 scaleDownFactor 设置为 0 可防止集群从 10 个缩容到 8 个,并且有助于将工作器数量保持在 10 个工作器的数量上限。

workerConfig:
  minInstances: 8
  maxInstances: 10
basicAlgorithm:
  cooldownPeriod: 2m
  yarnConfig:
    scaleUpFactor: 1
    scaleDownFactor: 0
    gracefulDecommissionTimeout: 1h

如何创建部分集群

您可以使用 Google Cloud CLI 或 Dataproc API 来创建 Dataproc 部分集群。

gcloud

如需通过命令行创建 Dataproc 部分集群,请在终端窗口或 Cloud Shell 中本地运行以下 gcloud dataproc clusters create 命令。

gcloud dataproc clusters create CLUSTER_NAME \
    --project=PROJECT \
    --region=REGION \
    --num-workers=NUM_WORKERS \
    --min-num-workers=MIN_NUM_WORKERS \
    other args ...
  • CLUSTER_NAME:集群名称必须以小写字母开头,后面最多可跟 51 个小写字母、数字和连字符,但不能以连字符结尾。
  • PROJECT:指定与作业集群关联的项目。
  • REGION:指定作业集群所在的 Compute Engine 区域
  • NUM_WORKERS:要创建的集群中主要工作器的总数(如果有)。
  • MIN_NUM_WORKERS:在无法创建指定的工作器总数 (NUM_WORKERS) 时,需要创建的主要工作器数量下限。如果无法创建此数量下限的主要工作器,则集群创建将失败(创建的工作器不会被删除,以便进行调试)。如果省略此标志,则系统会尝试使用主要工作器总数 (NUM_WORKERS) 创建标准集群。

REST

如需创建 Dataproc 部分集群,请在 clusters.create 请求中的 workerConfig.minNumInstances 字段中指定主要工作器数量下限。

显示已预配工作器的数量

创建集群后,您可以运行以下 gcloud CLI 命令列出集群中预配的工作器(包括所有辅助工作器)的数量。

gcloud dataproc clusters list \
    --project=PROJECT \
    --region=REGION \
    --filter=clusterName=CLUSTER_NAME