VM interrumpibles

Además de usar máquinas virtuales (VM) de Compute Engine, los clústeres de Cloud Dataproc pueden usar instancias de VM interrumpibles, también conocidas como VM interrumpibles. Puedes decidir usar instancias interrumpibles para reducir los costos de procesamiento por hora para los datos que no son esenciales o a fin de crear clústeres muy grandes a un costo total más bajo. Consulta la documentación de precios de Cloud Dataproc para obtener más información.

Cómo funcionan las instancias interrumpibles en Cloud Dataproc

Todas las instancias interrumpibles agregadas a un clúster usan el tipo de máquina de los nodos trabajadores no interrumpibles del clúster. Por ejemplo, si creas un clúster con trabajadores que usan tipos de máquina n1-standard-4, todas las instancias interrumpibles que se agreguen al clúster también usarán máquinas n1-standard-4. La incorporación o eliminación de trabajadores interrumpibles de un clúster no afecta la cantidad de trabajadores no interrumpibles del clúster.

Como las instancias interrumpibles se reclaman si son necesarias para otras tareas, Cloud Dataproc agrega instancias interrumpibles como trabajadores secundarios en un grupo de instancias administrado, que solo contiene trabajadores interrumpibles. El grupo administrado vuelve a agregar automáticamente los trabajadores perdidos porque se reclamaron según lo permita la capacidad. 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 volver a agregarlas.

Las siguientes reglas se aplicarán cuando uses trabajadores interrumpibles con un clúster de Cloud Dataproc:

  • Solo procesamiento: Como las instancias interrumpibles se pueden reclamar en cualquier momento, los trabajadores interrumpibles no almacenan datos. Las instancias interrumpibles agregadas a un clúster de Cloud Dataproc solo funcionan como nodos de procesamiento.
  • No es posible tener solo clústeres interrumpibles: A fin de garantizar que los clústeres no pierdan todos los trabajadores, Cloud Dataproc no puede crear clústeres interrumpibles únicamente. Si utiliza el comando gcloud dataproc clusters create con --num-preemptible-workers y no especifica una cantidad de trabajadores estándar con --num-workers, Cloud Dataproc agregará automáticamente dos trabajadores no interrumpibles al clúster.
  • Tamaño del disco persistente: De forma predeterminada, todos los trabajadores interrumpibles se crean con el tamaño de disco de arranque del trabajador principal 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 --preemptible-worker-boot-disk-size en la creación del clúster. Esta marca se puede especificar incluso si el clúster no tiene trabajadores interrumpibles en el momento de la creación.

Uso de instancias interrumpibles en un clúster

Puedes agregar, actualizar y quitar las instancias interrumpibles que se usen en un clúster de Cloud Dataproc mediante una solicitud clusters.patch de la API de Cloud Dataproc, con la herramienta de línea de comandos gcloud del SDK de Google Cloud o desde Google Cloud Console.

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 o quitar instancias interrumpibles desde o hacia el clúster con el comando gcloud dataproc clusters update. Ambos comandos usan el argumento --num-preemptible-workers para especificar la cantidad de instancias interrumpibles que se usarán en el clúster.

Creación de un clúster con instancias interrumpibles

Para crear un clúster con instancias interrumpibles, usa el comando gcloud dataproc clusters create con el argumento --num-preemptible-workers.

Ejemplo

El siguiente comando crea un clúster llamado "my-test-cluster" con dos instancias interrumpibles (y dos no interrumpibles).

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

Actualiza un clúster con instancias interrumpibles

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

Ejemplo

El siguiente comando actualiza un clúster llamado "my-test-cluster" con dos instancias interrumpibles.

    gcloud dataproc clusters update my-test-cluster --num-preemptible-workers 2
    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
    ...
    

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

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

Ejemplo

El siguiente comando quita todos los trabajadores interrumpibles de un clúster.

    gcloud dataproc clusters update cluster-name --num-preemptible-workers 0
    

API de REST

Usa la API clusters.patch de Cloud Dataproc para agregar y quitar nodos interrumpibles.

Ejemplo

La siguiente solicitud PATCH actualiza un clúster para que tenga 2 trabajadores interrumpibles.

    PATCH /v1/projects/cluster-name/regions/us-central1/clusters/cluster-1?updateMask=config.secondary_worker_config.num_instances
    {
      "config": {
        "secondaryWorkerConfig": {
          "numInstances": 2
        }
      },
      "labels": null
    }
    

Console

Puedes especificar la cantidad de trabajadores interrumpibles cuando creas un clúster de Cloud Dataproc desde Cloud Console. Después de crear un clúster, puedes editar su configuración desde Cloud Console a fin de modificar o agregar 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 prioritarios) en la página de Cloud 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, especificando 0 en el campo Preemptible worker nodes (Nodos trabajadores interrumpibles).