Tipos de máquina admitidos

Los clústeres de Managed Service para Apache Spark se compilan en Compute Engine instancias. Los tipos de máquinas definen los recursos de hardware virtualizados disponibles para una instancia. Compute Engine ofrece tipos de máquinas predefinidos y tipos de máquinas personalizados. Los clústeres de Managed Service para Apache Spark pueden usar tipos predefinidos y personalizados para los nodos principales y trabajadores.

Los clústeres de Managed Service para Apache Spark admiten los siguientes tipos predefinidos de máquinas de Compute Engine (la disponibilidad de tipo de máquina varía según la región):

  • Tipos de máquinas de uso general, que incluyen los tipos de máquinas N1, N2, N2D, E2, C3, C4, N4 y N4D (Managed Service para Apache Spark también admite los tipos personalizados de máquinas N1, N2, N2D, E2, N4 y N4D).

    Limitaciones:

    • El tipo de máquina n1-standard-1 no admitido para imágenes 2.0 o posteriores (el tipo de máquina n1-standard-1 no se recomienda para las imágenes anteriores a la versión 2.0, los usuarios deben usar un tipo de máquina con más memoria).
    • Los tipos de máquinas de núcleo compartido no son compatibles, que incluyen los siguientes tipos de máquinas no compatibles:
      • E2: Tipos de máquinas de núcleo compartido, e2-micro, e2-small y e2-medium
      • N1: Tipos de máquinas de núcleo compartido f1-micro y g1-small
    • Managed Service para Apache Spark selecciona hyperdisk-balanced como el tipo de disco de arranque si el tipo de máquina es C4, N4 o N4D.
  • Tipos de máquinas optimizados para procesamiento, que incluyen los tipos de máquinas C2 y C2D.
  • Tipos de máquinas con optimización de memoria, que incluyen los tipos de máquinas M1 y M2.
  • Tipos de máquinas Arm, que incluyen C4A tipos de máquinas.

Tipos personalizados de máquinas

Managed Service para Apache Spark admite tipos personalizados de máquinas de las series N1, N2, N2D, E2, N4 y N4D.

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 en el siguiente paso, una instancia de n1-standard-8, proporciona demasiada capacidad. Con los tipos personalizados de máquinas, puedes crear clústeres de Managed Service para Apache Spark 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 especial machine type 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.

El tipo personalizado de máquina se especifica cuando creas un clúster. 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 de los tipos personalizados de máquinas

Los tipo de máquina de máquinas se basan en los recursos usados en una máquina personalizada. El precio de Managed Service para Apache Spark 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 Managed Service para Apache Spark con un tipo de máquina especificado

Console

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

Comando de gcloud

Ejecuta el gcloud dataproc clusters create comando con las siguientes marcas para crear un clúster de Managed Service para Apache Spark 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 Managed Service para Apache Spark, 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

Para crear un clúster con tipos de máquina personalizados, establece el machineTypeUri en el masterConfig y/o workerConfig InstanceGroupConfig en la cluster.create solicitud a la API.

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
      }
    }
  }
}

Crea un clúster de Managed Service para Apache Spark con un tipo personalizado de máquina con memoria extendida

Managed Service para Apache Spark 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).

Console

Haz clic en 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 el panel Configurar nodos de la página Crear un clúster de Managed Service para Apache Spark en la Google Cloud consola.

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 Managed Service para Apache Spark 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

El siguiente fragmento JSON de muestra de una solicitud a la API de REST de Managed Service para Apache Spark <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> clusters.create 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",
     ...
...

Tipos de máquinas Arm

Managed Service para Apache Spark admite la creación de un clúster con nodos que usan tipos de máquinas Arm, como el tipo de máquina C4A.

Requisitos y limitaciones:

  • La imagen de Managed Service para Apache Spark debe ser compatible con el chipset Arm. Las imágenes de Managed Service para Apache Spark 2.1-ubuntu20-arm, 2.2-ubuntu22-arm, y 2.3-ubuntu22-arm (y el sufijo -arm posterior) son compatibles con el chipset Arm. Las imágenes compatibles con Arm no admiten muchos componentes opcionales y de acción de inicialización , como se indica en las páginas de la versión de lanzamiento de la imagen.
  • Dado que se debe especificar una imagen para un clúster, los nodos principal, trabajador y trabajador secundario deben usar un tipo de máquina Arm que sea compatible con la imagen Arm de Managed Service para Apache Spark seleccionada.
  • Las funciones de Managed Service para Apache Spark que no son compatibles con los tipos de máquinas Arm no están disponibles (por ejemplo, los tipos de máquinas C4A no admiten SSD locales).
  • Las imágenes de Arm solo admiten componentes preinstalados y un conjunto limitado de componentes opcionales. No se admiten otros componentes opcionales ni todas las acciones de inicialización.

Crea un clúster de Managed Service para Apache Spark con un tipo de máquina Arm

Console

Para crear un clúster de Managed Service para Apache Spark que use un tipo de máquina Arm, haz lo siguiente:

  1. En la Google Cloud consola de, ve a la página de Managed Service para Apache Spark Crea un clúster de Dataproc en Compute Engine.

    Ir a Crear un clúster de Dataproc en Compute Engine

  2. En la sección Control de versiones, haz clic en Cambiar para seleccionar una imagen del chipset Arm.

  3. Selecciona el panel Configurar nodos.

  4. Selecciona la serie Arm (como C4A) y el tipo de máquina Arm para cada nodo del clúster.

  5. Confirma o especifica otros detalles del clúster y, luego, haz clic en Crear.

gcloud

Para crear un clúster de Managed Service para Apache Spark que use un tipo de máquina Arm, ejecuta el siguiente comando gcloud de forma local en una ventana de terminal o en Cloud Shell. En este ejemplo, se especifican la imagen 2.1-ubuntu20-arm y el tipo de máquina Arm c4a-standard-4.

gcloud dataproc clusters create cluster-name \
    --region=REGION \
    --image-version=2.1-ubuntu20-arm \
    --master-machine-type=c4a-standard-4 \
    --worker-machine-type=c4a-standard-4

Notas:

  • REGION: Es la región en la que se ubicará el clúster.

  • Consulta la documentación de referencia de gcloud dataproc clusters create para obtener información sobre las marcas de línea de comandos adicionales que puedes usar para personalizar tu clúster.

API

La siguiente solicitud de ejemplo a la API de REST de Managed Service para Apache Spark clusters.create crea un clúster que usa el tipo de máquina Arm c4a-standard-4.

POST /v1/projects/my-project-id/regions/is-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "sample-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "c4a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "c4a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "softwareConfig": {
      "imageVersion": "2.1-ubuntu20-arm"
    }
  }
}

¿Qué sigue?