为了缓解特定区域中用户指定的虚拟机在特定时间不可用(库存缺货)的影响,Dataproc 允许您通过指定允许创建集群的最低数量来请求创建 partial cluster
。
标准集群 | 部分集群 |
---|---|
如果无法创建和初始化一个或多个主要工作器,则集群创建将失败。创建的工作器会继续运行并产生费用,直到用户删除为止。 | 如果可以创建的工作器数量达到指定的最低数量,系统就会创建集群。已失败(未初始化)的工作器会被删除,不会产生费用。如果无法创建和初始化指定最小数量的工作器,则不会创建集群。已创建的工作器不会被删除,以便进行调试。 |
集群创建时间已优化。 | 由于所有节点都必须报告预配状态,因此集群创建时间可能会更长。 |
单节点集群可供创建。 | 无法创建单节点集群。 |
自动扩缩:
将自动扩缩与部分集群创建搭配使用,以帮助确保创建主要工作器的目标(完整)数量。如果工作负载需要失败的工作器,自动扩缩功能将尝试在后台获取这些工作器。
以下是自动扩缩政策的示例,系统会不断重试,直到主工作器实例的总数达到目标大小 10。政策的 minInstances
和 maxInstances
与创建集群时指定的主要工作器数量下限和总数相符(请参阅如何创建部分集群)。将 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