创建部分集群

为了减轻特定区域中用户指定的虚拟机不可用的影响 特定时间 (缺货)、 Dataproc 允许您请求创建 partial cluster,方法是指定 允许创建集群的最小数量的主要工作器。

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

自动扩缩:

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

以下是一个自动扩缩政策示例,它会不断重试,直至达到 的主要工作器实例的目标大小达到 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:集群中主要工作器的总数, create(如果有)。
  • MIN_NUM_WORKERS:要创建的主要工作器数量下限 如果无法创建指定的工作器总数 (NUM_WORKERS)。 如果不能创建此最低数量的主要工作器,集群创建将失败 (系统不会删除所创建的 worker 以便进行调试)。 如果省略此标志,系统会尝试使用主工作器总数 (NUM_WORKERS) 创建标准集群。

REST

要创建 Dataproc 部分集群,请指定 workerConfig.minNumInstances 字段作为 clusters.create 请求的一部分。

显示已预配工作器的数量

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

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