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