Crear un clúster parcial de Dataproc

Para mitigar los efectos de la falta de disponibilidad de las VMs especificadas por el usuario en regiones concretas en momentos específicos (agotamientos de existencias), Dataproc te permite solicitar la creación de un partial cluster especificando un número mínimo de trabajadores principales que sea aceptable para permitir la creación del clúster.

Clúster estándar Clúster parcial
Si no se pueden crear ni inicializar uno o varios trabajadores principales, la creación del clúster falla. Los workers que se creen seguirán ejecutándose y generando cargos hasta que el usuario los elimine. Si se puede crear el número mínimo de trabajadores especificado, se crea el clúster. Los trabajadores que no se han inicializado se eliminan y no generan cargos. Si no se puede crear e inicializar el número mínimo de trabajadores especificado, no se creará el clúster. Los elementos Worker que se crean no se eliminan para permitir la depuración.
El tiempo de creación del clúster se optimiza. El clúster puede tardar más en crearse, ya que todos los nodos deben informar del estado de aprovisionamiento.
Se pueden crear clústeres de nodo único. Los clústeres de un solo nodo no se pueden crear.

Autoescalado

Usa el autoescalado con la creación parcial de clústeres para asegurarte de que se cree el número objetivo (completo) de trabajadores principales. El autoescalado intentará adquirir trabajadores fallidos en segundo plano si la carga de trabajo lo requiere.

A continuación, se muestra una política de autoescalado de ejemplo que vuelve a intentar la operación hasta que el número total de instancias de trabajador principal alcance un tamaño objetivo de 10. Los valores minInstances y maxInstances de la política coinciden con el número mínimo y total de trabajadores principales especificado en el momento de la creación del clúster (consulte Crear un clúster parcial). Si se define el valor de scaleDownFactor en 0, se evita que el clúster se reduzca de 10 a 8 y se mantiene el número de trabajadores en el límite máximo de 10.

workerConfig:
  minInstances: 8
  maxInstances: 10
basicAlgorithm:
  cooldownPeriod: 2m
  yarnConfig:
    scaleUpFactor: 1
    scaleDownFactor: 0
    gracefulDecommissionTimeout: 1h

Crear un clúster parcial

Puedes usar la CLI de Google Cloud o la API de Dataproc para crear un clúster parcial de Dataproc.

gcloud

Para crear un clúster parcial de Dataproc en la línea de comandos, ejecuta el siguiente comando gcloud dataproc clusters create 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 ...

Haz los cambios siguientes:

  • CLUSTER_NAME: El nombre del clúster debe empezar por una letra minúscula, seguida de un máximo de 51 letras minúsculas, números y guiones, y no puede acabar en guion.
  • PROJECT: especifica el proyecto asociado al clúster de trabajos.
  • REGION: especifica la región de Compute Engine en la que se ubicará el clúster de trabajo.
  • NUM_WORKERS: número total de trabajadores principales del clúster que se va a crear, si está disponible.
  • MIN_NUM_WORKERS: número mínimo de trabajadores principales que se deben crear si no se puede crear el número total de trabajadores especificado (NUM_WORKERS). La creación del clúster falla si no se puede crear este número mínimo de trabajadores principales (los trabajadores que se crean no se eliminan para permitir la depuración). Si se omite esta marca, se intentará crear un clúster estándar con el número total de trabajadores principales (NUM_WORKERS).

REST

Para crear un clúster parcial de Dataproc, especifica el número mínimo de trabajadores principales en el campo workerConfig.minNumInstances de una solicitud clusters.create.

Mostrar el número de trabajadores aprovisionados

Después de crear un clúster, puedes ejecutar el siguiente comando de la CLI de gcloud para ver el número de trabajadores, incluidos los secundarios, aprovisionados en tu clúster.

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