Tipos de máquina admitidos

Los clústeres de Dataproc se compilan en instancias de 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 Dataproc pueden usar tipos predefinidos y personalizados para los nodos principales o trabajadores.

Dataproc admite los siguientes tipos predefinidos de máquinas de Compute Engine en clústeres:

  • Tipos de máquinas de uso general, que incluyen los tipos de máquinas N1, N2, N2D y E2:
  • Dataproc también es compatible con los tipos personalizados de máquinas N1, N2, N2D y E2.

  • Tipo de máquina optimizado para procesamiento, que incluyen tipos de máquinas C2.

  • Tipos de máquina con optimización de memoria, que incluyen tipos de máquinas M1 y M2.

Tipos personalizados de máquinas

Los tipos personalizados de máquinas son ideales para las situaciones siguientes:

  • 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

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

Especifica un tipo personalizado de máquina

Los tipos personalizados de máquinas usan una especificación machine type especial y están sujetos a limitaciones. 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 custom-6-23040:

Los números en la especificación de tipo de máquina corresponden al número de CPU virtuales (vCPU) en la máquina (6) y la cantidad de memoria (23040). Se calcula la cantidad de memoria multiplicando la cantidad de memoria en gigabytes por 1024 (consulta Expresa la memoria en GB o MB). En este ejemplo, 22.5 (GB) se multiplica por 1024: 22.5 * 1024 = 23040.

Usa la sintaxis anterior para especificar el tipo personalizado de máquina 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. El tipo de máquina que usan los trabajadores secundarios sigue la configuración de los trabajadores principales y no se puede establecer por separado (consulta Trabajadores secundarios: VM interrumpibles y no interrumpibles).

Precios

Los precios de los tipos personalizados de máquinas se basan en los recursos usados en una máquina personalizada. El precio de Dataproc se agrega al costo de los recursos de procesamiento y se basa en la cantidad total de CPU virtuales usadas en un clúster.

Crea un clúster de Dataproc con un tipo de máquina especificado

Comando de gcloud

Ejecuta el comando gcloud dataproc clusters create con las siguientes marcas para crear un clúster de Dataproc con tipos de máquinas principales o trabajadoras:
  • La marca --master-machine-type machine-type te permite configurar el tipo predefinido o personalizado de máquina que usa la instancia de VM principal en tu clúster (o instancias principales si creas un Clúster de HA ).
  • La marca --worker-machine-type custom-machine-type te permite establecer el tipo predefinido o 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 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 de máquina personalizados, establece machineTypeUri en InstanceGroupConfig masterConfig y/o workerConfig en la solicitud a la API cluster.create.

Ejemplo:
POST /v1/projects/my-project-id/regions/is-central1/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

En el panel Configurar nodos de la página Crear un clúster de Dataproc en Cloud Console, selecciona las familias de máquinas, series y tipos para los nodos principales y trabajadores del clúster.

Memoria extendida de la CPU

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

Usa la memoria extendida

Comando de gcloud

Para crear un clúster desde 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 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 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 Dataproc en Cloud Console.

Más información

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