Después de crear un clúster de Dataproc, puedes ajustar su tamaño aumentando o disminuyendo el número de nodos de trabajador principales o secundarios (escalado horizontal). Puedes escalar un clúster de Dataproc en cualquier momento, incluso cuando se estén ejecutando trabajos en el clúster. No puedes cambiar el tipo de máquina de un clúster que ya tengas (escalado vertical). Para escalar verticalmente, crea un clúster con un tipo de máquina compatible y, a continuación, migra los trabajos al nuevo clúster.
Puedes escalar un clúster de Dataproc para lo siguiente:
- para aumentar el número de trabajadores y que una tarea se ejecute más rápido.
- para reducir el número de trabajadores y ahorrar dinero (consulta la sección Retirada gradual como opción para usar cuando se reduce el tamaño de un clúster y evitar perder el trabajo en curso).
- para aumentar el número de nodos y ampliar el almacenamiento disponible del sistema de archivos distribuidos de Hadoop (HDFS).
Como los clústeres se pueden escalar más de una vez, puede que quieras aumentar o reducir el tamaño del clúster en un momento dado y, después, reducirlo o aumentarlo.
Usar el escalado
Hay tres formas de escalar un clúster de Dataproc:
- Usa la herramienta de línea de comandos
gcloud
en gcloud CLI. - Edita la configuración del clúster en la consola deGoogle Cloud .
- Utilice la API REST.
Los nuevos trabajadores que se añadan a un clúster usarán el mismo tipo de máquina que los trabajadores que ya estén en el clúster. Por ejemplo, si se crea un clúster con trabajadores que usan el tipo de máquina n1-standard-8
, los nuevos trabajadores también usarán el tipo de máquina n1-standard-8
.
Puedes escalar el número de trabajadores principales o el de trabajadores secundarios (no garantizados), o ambos. Por ejemplo, si solo ajustas el número de trabajadores preemptivos, el número de trabajadores principales seguirá siendo el mismo.
gcloud
Para escalar un clúster congcloud dataproc clusters update
,
ejecuta el siguiente comando:
gcloud dataproc clusters update cluster-name \ --region=region \ [--num-workers and/or --num-secondary-workers]=new-number-of-workers
gcloud dataproc clusters update dataproc-1 \ --region=region \ --num-workers=5 ... Waiting on operation [operations/projects/project-id/operations/...]. Waiting for cluster update operation...done. Updated [https://dataproc.googleapis.com/...]. clusterName: my-test-cluster ... masterDiskConfiguration: bootDiskSizeGb: 500 masterName: dataproc-1-m numWorkers: 5 ... workers: - my-test-cluster-w-0 - my-test-cluster-w-1 - my-test-cluster-w-2 - my-test-cluster-w-3 - my-test-cluster-w-4 ...
API REST
Consulta clusters.patch.
Ejemplo
PATCH /v1/projects/project-id/regions/us-central1/clusters/example-cluster?updateMask=config.worker_config.num_instances,config.secondary_worker_config.num_instances { "config": { "workerConfig": { "numInstances": 4 }, "secondaryWorkerConfig": { "numInstances": 2 } }, "labels": null }
Consola
Una vez creado un clúster, puedes escalarlo abriendo la página Detalles del clúster del clúster desde la Google Cloud consola página Clústeres, y, a continuación, haciendo clic en el botón Editar de la pestaña Configuración.

Cómo selecciona Dataproc los nodos de clúster que se van a eliminar
En los clústeres creados con versiones de imagen 1.5.83+, 2.0.57+ y 2.1.5+, cuando se reduce la escala de un clúster, Dataproc intenta minimizar el impacto de la eliminación de nodos en las aplicaciones YARN en ejecución. Para ello, primero elimina los nodos inactivos, incorrectos y inactivos, y luego los nodos con el menor número de contenedores y maestros de aplicaciones YARN en ejecución.
Retirada suave
Cuando reduces la escala de un clúster, el trabajo en curso puede detenerse antes de completarse. Si usas Dataproc 1.2 o versiones posteriores, puedes usar la retirada gradual, que incorpora la retirada gradual de nodos de YARN para finalizar el trabajo en curso de un trabajador antes de que se elimine del clúster de Cloud Dataproc.
Retirada suave y trabajadores secundarios
El grupo de trabajadores de reserva sigue aprovisionando o eliminando trabajadores para alcanzar el tamaño esperado incluso después de que se haya completado una operación de escalado del clúster. Si intentas retirar de forma controlada un trabajador secundario y recibes un mensaje de error similar al siguiente:
"Secondary
worker group cannot be modified outside of Dataproc. Si has creado o actualizado este clúster recientemente, espera unos minutos antes de retirarlo correctamente para que todas las instancias secundarias puedan unirse al clúster o abandonarlo.
Tamaño esperado del grupo de trabajadores secundario: x; tamaño real: y",
espera unos minutos y vuelve a enviar la solicitud de retirada gradual.
Usar retirada suave
La retirada gradual de Dataproc incorpora la retirada gradual de nodos de YARN para finalizar el trabajo en curso de un trabajador antes de que se elimine del clúster de Cloud Dataproc. De forma predeterminada, la retirada suave está inhabilitada. Para habilitarlo, debes definir un valor de tiempo de espera al actualizar el clúster para quitar uno o varios trabajadores del clúster.
gcloud
Cuando actualices un clúster para quitar uno o varios trabajadores, usa el comando gcloud dataproc clusters update con la marca--graceful-decommission-timeout
. Los valores de timeout(string) pueden ser "0s" (el valor predeterminado; retirada forzosa, no gradual) o una duración positiva relativa a la hora actual (por ejemplo, "3s").
La duración máxima es de 1 día.
gcloud dataproc clusters update cluster-name \ --region=region \ --graceful-decommission-timeout="timeout-value" \ [--num-workers and/or --num-secondary-workers]=decreased-number-of-workers \ ... other args ...
API REST
Consulta clusters.patch.gracefulDecommissionTimeout. Los valores de tiempo de espera (cadena) pueden ser "0" (valor predeterminado; retirada forzosa, no gradual) o una duración en segundos (por ejemplo, "3s"). La duración máxima es de 1 día.Consola
Una vez creado un clúster, puedes seleccionar la retirada gradual de un clúster. Para ello, abre la página Detalles del clúster del clúster en la página Clústeres de la Google Cloud consola y, a continuación, haz clic en el botón Editar de la pestaña Configuración.

Cancelar una operación de reducción de escala de retirada suave
En los clústeres de Dataproc creados con versiones de imagen 2.0.57+ o 2.1.5+, puedes ejecutar el comando gcloud dataproc operations cancel
o enviar una solicitud operations.cancel
a la API de Dataproc para cancelar una operación de reducción de escala con desactivación gradual.
Cuando cancelas una operación de reducción de escala de retirada suave:
Los trabajadores en estado
DECOMMISSIONING
se vuelven a poner en servicio y pasan a estarACTIVE
cuando se completa la cancelación de la operación.Si la operación de reducción incluye actualizaciones de etiquetas, es posible que estas no se apliquen.
Para verificar el estado de la solicitud de cancelación, puedes ejecutar el comando gcloud dataproc operations describe
o enviar una solicitud de la API de Dataproc operations.get
. Si la operación de cancelación se realiza correctamente, el estado de la operación interna se marca como CANCELLED
.