Escala clústeres

Después de crear un clúster de Cloud Dataproc, lo puedes configurar (“escalar”) mediante el aumento o la disminución de la cantidad de nodos trabajadores primarios o secundarios en el clúster. Puedes escalar un clúster de Cloud Dataproc en cualquier momento, incluso cuando los trabajos están en ejecución.

¿Para qué escalar un clúster de Cloud Dataproc?

  1. Para aumentar la cantidad de trabajadores a fin de que un trabajo se ejecute más rápido
  2. Para disminuir la cantidad de trabajadores y ahorrar dinero (consulta Retiro de servicio ordenado como una opción que se usa cuando se reduce el tamaño de un clúster a fin de evitar la pérdida de trabajo en progreso)
  3. Para aumentar la cantidad de nodos y expandir el almacenamiento disponible en el sistema de archivos distribuido de Hadoop (HDFS)

Como los clústeres se pueden escalar más de una vez, puedes necesitar aumentar o disminuir el tamaño del clúster en algún momento y volverlo a hacer después.

Usa el escalamiento

Hay tres maneras en las que puedes escalar tu clúster de Cloud Dataproc:

  1. Usa la herramienta de línea de comandos de gcloud en el SDK de Google Cloud.
  2. Edita la configuración del clúster en Google Cloud Platform Console.
  3. Usa la API de REST.

Los trabajadores nuevos que se agreguen a un clúster usarán el mismo tipo de máquina que los trabajadores existentes. Por ejemplo, si un clúster se crea con trabajadores que usan el tipo de máquina n1-standard-8, los trabajadores nuevos también usarán el tipo de máquina n1-standard-8.

Puedes escalar la cantidad de trabajadores principales o secundarios (interrumpibles), o ambos. Por ejemplo, si solo escalas la cantidad de trabajadores interrumpibles, la cantidad de trabajadores principales permanece igual.

gcloud

Para escalar un clúster con gcloud dataproc clusters update, ejecuta el comando siguiente.
gcloud dataproc clusters update cluster-name \
    [--num-workers and/or --num-preemptible-workers] new-number-of-workers
en el que cluster-name es el nombre del clúster que se actualizará y new-number-of-workers es la cantidad de nodos trabajadores principales o secundarios. Por ejemplo, para escalar un clúster llamado “dataproc-1” a fin de usar cinco nodos trabajadores principales, ejecuta el comando siguiente.
gcloud dataproc clusters update dataproc-1 --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 de REST

Consulta clusters.patch.

Ejemplo

PATCH /v1/projects/project-id/regions/global/clusters/example-cluster?updateMask=config.worker_config.num_instances,config.secondary_worker_config.num_instances
{
  "config": {
    "workerConfig": {
      "numInstances": 4
    },
    "secondaryWorkerConfig": {
      "numInstances": 2
    }
  },
  "labels": null
}

Console

Después de crear un clúster, lo puedes escalar si abres la página Cluster details (Detalles del clúster) desde la página Clusters (Clústeres) en GCP Console y, luego, haces clic en el botón Edit (Editar) en la pestaña Configuration (Configuración).
Ingresa un valor nuevo para la cantidad de Worker nodes (Nodos trabajadores) o Preemptible worker nodes (Nodos trabajadores interrumpibles) (actualizados de “5” y “2”, respectivamente, en la captura de pantalla siguiente).
Haz clic en Save (Guardar) para actualizar el clúster.

Retiro de servicio ordenado

Cuando realizas un escalamiento descendiente de un clúster, el trabajo en progreso puede terminar antes de completarse. Si usas Cloud Dataproc v 1.2 o posterior, puedes usar el retiro de servicio ordenado que incorpora retiro de servicio ordenado YARN para finalizar el trabajo en progreso en un trabajador antes de quitarlo del clúster de Cloud Dataproc.

Retiro de servicio ordenado y trabajadores secundarios

El grupo de trabajadores interrumpibles (secundarios) continúa con el aprovisionamiento o el borrado de trabajadores a fin de alcanzar el tamaño esperado incluso después de que una operación de escalamiento de clúster se marcó como completada. Si intentas realizar un retiro de servicio ordenado de un trabajador secundario y recibes un mensaje de error similar al siguiente:

“El grupo de trabajador secundario no se puede modificar fuera de Cloud Dataproc. Si la creación o actualización de este clúster es reciente, espera unos minutos antes de realizar un retiro de servicio ordenado a fin de permitir que todas las instancias secundarias se unan o abandonen el clúster.Tamaño de grupo de trabajador secundario esperado: x, tamaño real: y”,

espera unos minutos y, luego, repite la solicitud de retiro de servicio ordenado.

También ten en cuenta lo siguiente:

  • Puedes realizar un retiro de servicio de manera forzosa de trabajadores interrumpibles en cualquier momento.
  • Puedes realizar un retiro de servicio ordenado de trabajadores principales en cualquier momento

Usa retiro de servicio ordenado

El retiro de servicio ordenado de Cloud Dataproc incorpora retiro de servicio de YARN para finalizar el trabajo en progreso de un trabajador antes de quitarlo del clúster de Cloud Dataproc. Por configuración predeterminada, el retiro de servicio ordenado está inhabilitado. Lo inhabilitas mediante la configuración de un valor de tiempo de espera cuando actualizas tu clúster con el fin de quitar uno o más trabajadores del clúster.

gcloud

Cuando actualices un clúster para quitar uno o más trabajadores, usa el comando gcloud dataproc clusters update con la marca --graceful-decommission-timeout. Los valores del tiempo de espera (string) pueden ser un valor de “0s” (el predeterminado; retiro de servicio a la fuerza no ordenado) o una duración positiva relacionada con la hora actual (por ejemplo, “3s”). La duración máxima es de 1 día.
gcloud dataproc clusters update cluster-name \
    --graceful-decommission-timeout="timeout-value" \
    [--num-workers and/or --num-preemptible-workers]=decreased-number-of-workers \
    ... other args ...

API de REST

Consulta clusters.patch.gracefulDecommissionTimeout. Los valores del tiempo de espera (string) pueden ser un valor de “0” (el predeterminado; retiro de servicio a la fuerza no ordenado) o una duración en segundos (por ejemplo, “3s”). La duración máxima es de 1 día.

Console

Después de crear un clúster, puedes seleccionar retiro de servicio ordenado mediante la apertura de la página Cluster details desde la página de GCP Console Clusters y, luego, hacer clic en el botón Edit en la pestaña Configuration.
En la sección Graceful Decommissioning (Retiro de servicio ordenado), marca la casilla “Use graceful decommissioning” (Usa retiro de servicio ordenado) y, luego, selecciona un valor de tiempo de espera.
Haz clic en Save para actualizar el clúster.
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Dataproc
¿Necesitas ayuda? Visita nuestra página de asistencia.