Para mitigar los efectos de la falta de disponibilidad de las VMs especificadas por el usuario en regiones específicas en momentos específicos
(agotamiento de stock),
Managed Service para Apache Spark te permite solicitar la creación de un partial cluster si especificas
una cantidad mínima de trabajadores principales que sea aceptable para permitir la creación del clúster.
| Clúster estándar | Clúster parcial |
|---|---|
| Si no se puede crear ni inicializar uno o más trabajadores principales, falla la creación del clúster. Los trabajadores que se crean continúan ejecutándose y generando cargos hasta que el usuario los borra. | Si se puede crear la cantidad mínima especificada de trabajadores, se crea el clúster. Los trabajadores con errores (sin inicializar) se borran y no generan cargos. Si no se puede crear ni inicializar la cantidad mínima especificada de trabajadores, no se crea el clúster. Los trabajadores que se crean no se borran para permitir la depuración. |
| Se optimiza el tiempo de creación del clúster. | Puede ocurrir un tiempo de creación del clúster más largo, ya que todos los nodos deben informar el estado de aprovisionamiento. |
| Los clústeres de nodo único están disponibles para su creación. | Los clústeres de nodo único no están disponibles para su creación. |
Ajuste de escala automático
Usa el ajuste de escala automático con la creación de clústeres parciales para asegurarte de que se cree la cantidad objetivo (completa) de trabajadores principales. El ajuste de escala automático intentará adquirir trabajadores con errores en segundo plano si la carga de trabajo los requiere.
A continuación, se muestra una política de ajuste de escala automático de muestra que vuelve a intentarlo hasta que la cantidad total de instancias de trabajadores principales alcance un tamaño objetivo de 10.
Los minInstances y maxInstances de la política coinciden con la cantidad mínima y total
de trabajadores principales especificados durante la creación del clúster (consulta
Crea un clúster parcial).
Si configuras scaleDownFactor en 0, se evita que el clúster reduzca la escala de 10 a 8 y se ayuda a mantener la cantidad de trabajadores en el límite máximo de 10 trabajadores.
workerConfig:
minInstances: 8
maxInstances: 10
basicAlgorithm:
cooldownPeriod: 2m
yarnConfig:
scaleUpFactor: 1
scaleDownFactor: 0
gracefulDecommissionTimeout: 1h
Crea un clúster parcial
Puedes usar Google Cloud CLI o la API de Dataproc para crear un clúster parcial de Managed Service para Apache Spark.
gcloud
Para crear un clúster parcial de Managed Service para Apache Spark en la línea de comandos, ejecuta el
siguiente gcloud dataproc clusters create
comando de forma local en una ventana de terminal o en
Cloud Shell.
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT \ --region=REGION \ --num-workers=NUM_WORKERS \ --min-num-workers=MIN_NUM_WORKERS \ other args ...
Reemplaza lo siguiente:
- CLUSTER_NAME: El nombre del clúster debe comenzar con una letra minúscula seguida de hasta 51 letras minúsculas, números y guiones, y no puede terminar con un guion.
- PROJECT: Especifica el proyecto asociado con el clúster de trabajo.
- REGION: Especifica la región de Compute Engine en la que se ubicará el clúster de trabajo.
- NUM_WORKERS: Es la cantidad total de trabajadores principales en el clúster que se creará si está disponible.
- MIN_NUM_WORKERS: Es la cantidad mínima de trabajadores principales que se creará
si no se puede crear la cantidad total especificada de trabajadores (
NUM_WORKERS). Falla la creación del clúster si no se puede crear esta cantidad mínima de trabajadores principales (los trabajadores que se crean no se borran para permitir la depuración). Si se omite esta marca, se intenta crear un clúster estándar con la cantidad total de trabajadores principales (NUM_WORKERS).
REST
Para crear un clúster parcial de Dataproc, especifica la cantidad mínima de trabajadores principales en el
workerConfig.minNumInstances
campo como parte de una clusters.create.
Muestra la cantidad de trabajadores aprovisionados
Después de crear un clúster, puedes ejecutar el siguiente comando de gcloud CLI para enumerar la cantidad de trabajadores, incluidos los trabajadores secundarios, aprovisionados en tu clúster.
gcloud dataproc clusters list \ --project=PROJECT \ --region=REGION \ --filter=clusterName=CLUSTER_NAME