Para mitigar los efectos de la falta de disponibilidad de las VMs especificadas por el usuario en regiones y momentos específicos (agotamientos de stock), Dataproc te permite solicitar la creación de un partial cluster
especificando 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 pueden crear ni inicializar uno o más trabajadores primarios, falla la creación del clúster. Los trabajadores que se crean siguen ejecutándose y generan cargos hasta que el usuario los borra. | Si se puede crear la cantidad mínima de trabajadores especificada, 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 de trabajadores especificada, no se creará el clúster. Los trabajadores que se crean no se borran para permitir la depuración. |
Se optimizó el tiempo de creación del clúster. | El tiempo de creación del clúster puede ser más largo, ya que todos los nodos deben informar el estado de aprovisionamiento. |
Clústeres de nodo único están disponibles para su creación. | Los clústeres de nodo único no están disponibles para la creación. |
Ajuste de escala automático
Usa el ajuste de escala automático con la creación parcial del clúster 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 ejemplo que vuelve a intentar la operación hasta que la cantidad total de instancias de trabajadores principales alcanza un tamaño objetivo de 10.
Los campos minInstances
y maxInstances
de la política coinciden con la cantidad mínima y total de trabajadores principales especificada en el momento de la creación del clúster (consulta Crea un clúster parcial).
Si configuras scaleDownFactor
en 0, se evitará que el clúster se reduzca de 10 a 8, y se ayudará a mantener la cantidad 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
Crea un clúster parcial
Puedes usar Google Cloud CLI 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 la 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 por un máximo de 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án si están disponibles.
- MIN_NUM_WORKERS: Es la cantidad mínima de trabajadores principales que se deben crear si no se puede crear la cantidad total de trabajadores especificada (
NUM_WORKERS
). La creación del clúster falla 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 intentará 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 campo workerConfig.minNumInstances
como parte de una solicitud 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