VM interrumpibles

Además de usar máquinas virtuales (VM) de Compute Engine estándar, los clústeres de Dataproc pueden usar instancias de VM interrumpibles, también conocidas como VM interrumpibles Los trabajadores interrumpibles se reclaman, se quitan del clúster, si Google Cloud los requiere para otras tareas. Si bien la posible eliminación de trabajadores interrumpibles puede afectar la estabilidad del trabajo, puedes optar por usar instancias interrumpibles para reducir los costos de procesamiento por hora para los datos de procesamiento que no son esenciales o a fin de crear clústeres muy grandes con menor costo total. Consulta la documentación de precios de Dataproc para obtener más información.

Cómo funcionan los trabajadores interrumpibles con Dataproc

Todos los trabajadores secundarios agregados a un clúster usan el tipo de máquina de los nodos trabajadores principales del clúster. Por ejemplo, si creas un clúster con trabajadores principales que usan tipos de máquina n1-standard-4, todos los trabajadores secundarios que se agreguen al clúster también usarán máquinas n1-standard-4.

Los trabajadores interrumpibles se reclaman si Google Cloud los necesita para otras tareas. Se vuelven a agregar al clúster si la capacidad lo permite. Por ejemplo, si se reclaman dos máquinas interrumpibles y se quitan de un clúster, estas instancias se volverán a agregar al clúster cuando se disponga de capacidad para agregarlas.

Las siguientes reglas se aplican a todos los trabajadores secundarios, interrumpibles y no interrumpibles, en un clúster de Dataproc:

  • Solo procesamiento: Los trabajadores secundarios no almacenan datos. Solo funcionan como nodos de procesamiento.

  • No hay clústeres secundarios de solo trabajador: Tu clúster debe tener trabajadores principales. Si creas un clúster y no especificas la cantidad de trabajadores principales, Dataproc agrega dos trabajadores principales al clúster.

  • Tamaño de disco persistente: De forma predeterminada, los trabajadores secundarios se crean con el tamaño del disco de arranque del trabajador principal o con un tamaño de menos de 100 GB. Este espacio de disco se usa para el almacenamiento en caché local de datos y no está disponible a través de HDFS. Puedes anular el tamaño de disco predeterminado con el comando gcloud dataproc clusters create --secondary-worker-boot-disk-size durante la creación del clúster. Puedes especificar esta marca incluso si el clúster no tiene trabajadores secundarios cuando se crea.

Uso de instancias interrumpibles en un clúster

Puedes especificar la cantidad y el tipo de trabajadores secundarios (interrumpibles o no interrumpibles) cuando creas un clúster a través de una solicitud de API de Dataproc con la herramienta de línea de comandos del SDK de Cloud gcloud o desde Google Cloud Console.

Notas:

  • Un clúster puede contener trabajadores secundarios interrumpibles o trabajadores secundarios no interrumpibles, pero no ambos.
  • Puedes actualizar tu clúster después de crearlo para cambiar el número de trabajadores secundarios en tu clúster, pero no el tipo.
  • Las actualizaciones de etiquetas se propagan a todos los trabajadores secundarios interrumpibles en 24 horas. Actualmente, las actualizaciones de etiquetas no se propagan a trabajadores secundarios no interrumpibles existentes. Las actualizaciones de las etiquetas también se propagan a los trabajadores que se agregan a un clúster después de la actualización de la etiqueta. Por ejemplo, si escalas el clúster, todos los trabajadores principales nuevos y secundarios tendrán las etiquetas nuevas.

Comando de gcloud

Usa el comando gcloud dataproc clusters create para agregar instancias interrumpibles a un clúster en el momento de su creación. Después de crear un clúster, puedes agregar instancias interrumpibles al clúster o quitarlas de él con el comando gcloud dataproc clusters update.

Crea un clúster con trabajadores interrumpibles

Para crear un clúster con trabajadores interrumpibles, usa el comando gcloud dataproc clusters create con el argumento --num-secondary-workers. Ten en cuenta que los trabajadores secundarios son interrumpibles de forma predeterminada, pero puedes agregar trabajadores secundarios no interrumpibles cuando creas un clúster si configuras --secondary-worker-type=non-preemptible (consulta el ejemplo 2).

Ejemplo 1

Con el siguiente comando, puedes crear un clúster llamado "my-test-cluster" con dos trabajadores interrumpibles.

gcloud dataproc clusters create my-test-cluster \
    --num-secondary-workers=2 \
    --region=us-central1
...
Waiting on operation [operations/projects/project-id/operations/...].
clusterName: my-test-cluster
  ...
secondaryWorkerConfiguration:
    - dataproc-1-sw-2skd
    - dataproc-1-sw-l20p
    isPreemptible: true
...

Ejemplo 2

El siguiente comando usa la marca secondary-worker-type para crear un clúster llamado "my-test-cluster" con dos trabajadores secundarios no interrumpibles.

gcloud dataproc clusters create my-test-cluster \
    --num-secondary-workers=2 \
    --secondary-worker-type=non-preemptible \
    --region=us-central1

Actualiza un clúster con trabajadores secundarios

Para actualizar un clúster y agregar o quitar trabajadores secundarios, usa el comando gcloud dataproc clusters update con el argumento --num-secondary-workers.

Ejemplo

El siguiente comando actualiza un clúster llamado "my-test-cluster" para que use dos trabajadores secundarios.

gcloud dataproc clusters update my-test-cluster \
    --num-secondary-workers=2 \
    --region=us-central1
...
Waiting on operation [operations/projects/project-id/operations/...].
Waiting for cluster update operation...done.
Updated [https://dataproc.googleapis.com/...].
clusterName: my-test-cluster
  ...
secondaryWorkerConfiguration:
    - dataproc-1-sw-2skd
    - dataproc-1-sw-l20p
    isPreemptible: true
...

Quita todos los trabajadores secundarios de un clúster

Para quitar todos los trabajadores secundarios de un clúster, usa el comando gcloud dataproc clusters update con --num-secondary-workers configurado como 0.

Ejemplo

Con el siguiente comando, se quitan todos los trabajadores secundarios de un clúster.

gcloud dataproc clusters update my-test-cluster \
    --num-secondary-workers=0 \
    --region=us-central1

API de REST

Crea un clúster con trabajadores interrumpibles

Usa la API clusters.create de Dataproc para agregar trabajadores interrumpibles a un clúster cuando se crea el clúster. Ten en cuenta que los trabajadores secundarios son interrumpibles de forma predeterminada, pero puedes agregar trabajadores secundarios no interrumpibles a tus clústeres, como se muestra en el ejemplo 2.

Ejemplo 1

La siguiente solicitud POST crea un clúster con dos trabajadores interrumpibles.


POST https://dataproc.googleapis.com/v1/projects/project-id/regions/region/clusters

{
  "clusterName": "cluster-name",
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 2
    }
  }
}

Ejemplo 2

La siguiente solicitud POST crea un clúster con dos trabajadores secundarios no interrumpibles.


POST https://dataproc.googleapis.com/v1/projects/project-id/regions/region/clusters

{
  "clusterName": "cluster-name",
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 2,
      "preemptibility": "NON_PREEMPTIBLE"
    }
  }
}

Actualiza un clúster con instancias interrumpibles

Usa la API de clusters.patch de Dataproc para agregar y quitar trabajadores secundarios.

Ejemplo

La siguiente solicitud PATCH actualiza un clúster para que tenga dos trabajadores secundarios.


PATCH /v1/projects/project-id/regions/region/clusters/cluster-name?updateMask=config.secondary_worker_config.num_instances
{
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 2
    }
  }
}

Console

Puedes especificar la cantidad de trabajadores interrumpibles cuando creas un clúster de Dataproc desde Cloud Console. Después de crear un clúster, puedes editar su configuración desde Cloud Console a fin de agregar o quitar trabajadores interrumpibles.

Creación de un clúster con instancias interrumpibles

Abre el panel desplegable titulado "Preemptible workers, bucket, network, version, initialization, & access options" (Opciones de acceso, inicialización, versión, red, depósito y trabajadores interrumpibles) en la página de Dataproc Create a cluster (Crear un clúster) de Cloud Console.

Para agregar trabajadores interrumpibles al nuevo clúster, especifica un número positivo en el campo Nodes (Nodos).

Actualiza un clúster con instancias interrumpibles

Después de crear un clúster, haz clic en el botón Edit (Editar) de la pestaña Configuration(Configuración) en la página Cluster details (Detalles del clúster) a fin de editar la cantidad de trabajadores interrumpibles de un clúster.

Para cambiar la cantidad de trabajadores interrumpibles, especifica un valor nuevo en el campo Preemptible worker nodes (Nodos trabajadores interrumpibles).

Eliminación de todas las instancias interrumpibles de un clúster

Para quitar todas las instancias interrumpibles de un clúster, actualiza la configuración del clúster como se explicó anteriormente y especifica 0 en el campo Preemptible worker nodes (Nodos trabajadores interrumpibles).