Tipos personalizados de máquinas

Los clústeres de Google Cloud Dataproc se compilan en instancias de Google Compute Engine. Los recursos de hardware virtualizados disponibles para una instancia dependen de los tipos de máquinas. Compute Engine ofrece tipos predefinidos de máquinas y tipos personalizados de máquinas. Los clústeres de Cloud Dataproc pueden usar tipos estándares y personalizados para los nodos principales o trabajadores.

Casos prácticos para tipos personalizados de máquinas

Como se menciona en la documentación sobre tipos personalizados de máquinas, estos son ideales para las siguientes cargas de trabajo:

  • Las cargas de trabajo que no son adecuadas para los tipos predefinidos de máquina
  • Las cargas de trabajo que requieren mayor memoria o poder de procesamiento, pero no todas las actualizaciones que proporciona el próximo nivel de tipo de máquina

Ejemplo

A modo de ejemplo, supongamos que tienes una carga de trabajo que necesita más poder de procesamiento que el que aprovisiona una instancia n1-standard-4, pero la del nivel siguiente, una instancia n1-standard-8, proporciona demasiada capacidad. Con los tipos personalizados de máquinas, puedes crear clústeres de Cloud Dataproc con nodos principales o trabajadores en el rango medio, con 6 CPU virtuales y 25 GB de memoria.

Precios

Los precios de los tipos personalizados de máquinas varían según los recursos usados en una máquina personalizada. El precio de Dataproc se agrega al costo de los recursos de procesamiento y se calcula en función de la cantidad total de CPU virtuales usadas en un clúster.

Usa tipos personalizados de máquinas con Cloud Dataproc

En este momento, la creación de clústeres con tipos personalizados de máquinas solo es compatible a través del comando gcloud dataproc del SDK de Google Cloud.

Primero, conoce los tipos personalizados de máquinas

Antes de crear un clúster con tipos personalizados de máquinas, revisa Crea una instancia de VM con un tipo personalizado de máquina para obtener información sobre consideraciones importantes, como las especificaciones de los tipos personalizados y los precios.

Los tipos personalizados de máquinas usan una especificación machine type especial. A modo de ejemplo, la especificación del tipo personalizado de máquina para una VM personalizada con 6 CPU virtuales y 22.5 GB de memoria es la que se muestra a continuación:

custom-6-23040

Los números en el tipo de máquina corresponden al número de CPU virtuales en la máquina (en este caso, 6) y la cantidad de memoria (en este caso, 23040). Para calcular la cantidad de memoria, se multiplica esta cantidad en gigabytes por 1024. En este ejemplo, multiplicamos 22.5 (GB) por 1,024:

22.5 * 1024 = 23040

Si respetas los límites en combinaciones de CPU y memoria, puedes usar la sintaxis de arriba para especificar el tipo personalizado de máquina que deseas usar con tus clústeres. Puedes establecer el tipo de máquina para nodos principales o trabajadores, o para ambos, cuando creas un clúster. Si estableces los dos, el nodo principal puede usar un tipo personalizado de máquina diferente al del tipo que usan los trabajadores. Las opciones de configuración de tipo de máquina para trabajadores interrumpibles (secundarios) siguen la configuración de los trabajadores principales y no pueden establecerse por separado (consulta Cómo funcionan los interrumpibles con Cloud Dataproc).

Crea un clúster de Cloud Dataproc con tipos personalizados de máquinas

Comando de gcloud

Ejecuta el comando gcloud dataproc clusters create con las siguientes marcas para crear un clúster de Cloud Dataproc con tipos personalizados de máquinas principales o trabajadoras:
  • La marca --master-machine-type custom-machine-type te permite establecer el tipo personalizado de máquina que usa la instancia de VM principal en tu clúster (o instancias principales si creaste un clúster HA).
  • La marca --worker-machine-type custom-machine-type te permite establecer el tipo personalizado de máquina que usan las instancias de VM de trabajador en tu clúster.

Ejemplo:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Una vez que se inicie el clúster de Cloud Dataproc, sus detalles se mostrarán en la ventana de terminal. La siguiente es una lista parcial de muestra de las propiedades del clúster mostradas en la ventana de terminal:
...
properties:
  distcp:mapreduce.map.java.opts: -Xmx1638m
  distcp:mapreduce.map.memory.mb: '2048'
  distcp:mapreduce.reduce.java.opts: -Xmx4915m
  distcp:mapreduce.reduce.memory.mb: '6144'
  mapred:mapreduce.map.cpu.vcores: '1'
  mapred:mapreduce.map.java.opts: -Xmx1638m
...

API de REST

Para crear un clúster con tipos personalizados de máquinas, establece machineTypeUri en masterConfig o workerConfigInstanceGroupConfig en la solicitud a la API de cluster.create.

Ejemplo:
POST /v1/projects/my-project-id/regions/global/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "test-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    }
  }
}

Console

Cuando crees un clúster de Cloud Dataproc en la página Create a cluster, haz clic en Customize (Personalizar) en la sección Machine type (Tipo de máquina) del panel Master node (Nodo principal) o Worker nodes (Nodos trabajadores) y luego llena la cantidad de núcleos y memoria. Las etiquetas y el texto de ayuda de la consola facilitan la selección de valores válidos de tipos personalizados de máquinas.

La siguiente captura de pantalla muestra valores de nodos principales y trabajadores para crear un clúster con 6 CPU virtuales y 22.5 GB de memoria en cada nodo.
Haz clic en Extend memory (Extender memoria) a fin de proporcionar valores de memoria extendida para los nodos principales o trabajadores.

Memoria extendida de la CPU

Cloud Dataproc es compatible con tipos personalizados de máquinas con memoria extendida más allá del límite de 6.5 GB por CPU virtual (consulta Precios de la memoria extendida).

Usa la memoria extendida

Comando de gcloud

Para crear un clúster a partir de la línea de comandos de gcloud con CPU personalizadas con memoria extendida, agrega un sufijo -ext a las marcas ‑‑master-machine-type o ‑‑worker-machine-type.

Ejemplo

La siguiente línea de comandos de gcloud de muestra crea un clúster de Cloud Dataproc con 1 CPU con 50 GB de memoria (50 * 1,024 = 51,200) en cada nodo:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-1-51200-ext /
    --worker-machine-type custom-1-51200-ext /
    other args

API de REST

El siguiente fragmento JSON de muestra de una solicitud a la API de REST de clusters.create de Cloud Dataproc especifica 1 CPU y 50 GB de memoria (50 * 1,024 = 51,200) en cada nodo:

...
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "custom-1-51200-ext",
    ...
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "custom-1-51200-ext",
     ...
...

Console

Haz clic en Extend memory (Extender memoria) cuando personalices la memoria en Machine type (Tipo de máquina) en la sección Master node (Nodo principal) o Worker nodes (Nodos trabajadores) en la página Create a cluster (Crear un clúster) de Cloud Dataproc en GCP Console.

Más información

Consulta Crea una instancia de VM con un tipo personalizado de máquina.

¿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.