扩缩 GKE 集群上的 Dataproc

如需扩缩 Dataproc on GKE 集群,请更新与 Spark 驱动程序或 Spark 执行器角色关联的节点池的自动扩缩器配置。在创建 Dataproc on GKE 集群时,您可以指定 Dataproc on GKE 节点池及其关联的角色

设置节点池自动扩缩

创建 Dataproc on GKE 虚拟集群时,您可以为 Dataproc on GKE 节点池自动扩缩设置边界。如果未指定,Dataproc on GKE 节点池将使用默认值进行自动扩缩(在 Dataproc on GKE GA 版本中,默认值设为最小值 = 1 和最大值 = 10,这些值可能会发生变化)。如需获取特定的节点池自动扩缩最小值和最大值,请在创建 Dataproc on GKE 虚拟集群时进行设置。

更新节点池自动扩缩

使用以下 GKE gcloud container node-pools update 命令更改 Dataproc on GKE 节点池的自动扩缩配置。

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=GKE_CLUSTER_NAME \
    --region=region \
    --enable-autoscaling \
    --min-nodes=min nodes (must be <= max-nodes) \
    --max-nodes=max nodes (must be >= min-nodes) \

Spark 自动扩缩的工作原理

  1. 提交作业后,系统会将驱动程序 pod 调度到与 Spark 驱动程序角色关联的节点池池上运行。
  2. 驱动程序 pod 会调用 GKE 调度程序来创建执行器 pod。
  3. 执行器 pod 会调度到与 Spark 执行器角色关联的节点池池上。
  4. 如果节点池有足够的容量来容纳这些 Pod,这些 Pod 会立即开始运行。如果容量不足,GKE 集群自动扩缩器会扩容节点池以提供所请求的资源,但不超过用户指定的上限。当节点池有过剩容量时,GKE 集群自动扩缩器会将节点池缩减到用户指定的上限。