Crear un clúster multizona

En este documento, se describe cómo crear un clúster multizona de Managed Service para Apache Spark. En un clúster multizona, Managed Service para Apache Spark aprovisiona y distribuye las instancias de VM de Compute Engine del clúster en varias zonas de una sola región, en lugar de colocar todos los nodos del clúster en una zona.

Usa un clúster multizonal cuando necesites crear o escalar un clúster grande y la capacidad de una sola zona podría no ser suficiente para satisfacer tu solicitud.

Cómo funcionan los clústeres multizona

Cuando creas un clúster multizona, Managed Service para Apache Spark aprovisiona los nodos del clúster de la siguiente manera:

Debido a que Managed Service para Apache Spark distribuye las solicitudes de VM de trabajador en varias zonas, es menos probable que las restricciones de capacidad en una sola zona bloqueen tu solicitud. Esto ayuda a evitar errores ZONE_RESOURCE_POOL_EXHAUSTED cuando creas o escalas clústeres grandes, clústeres con VM Spot o trabajadores secundarios interrumpibles, o clústeres que usan tipos de máquinas de alta demanda.

Requisitos y limitaciones

Para crear un clúster multizona, debes usar una de las siguientes versiones de imagen o una versión posterior en la misma pista de versión de imagen:

Seguimiento de la versión de la imagen Versión mínima de la imagen compatible
2.2.x 2.2.88
2.3.x 2.3.37
3.0.x 3.0.3

Los clústeres multizona tienen las siguientes limitaciones:

  • No puedes especificar una configuración de zona única y una configuración multizona en la misma solicitud de creación de clúster.
  • No puedes crear un clúster multizonal con más de 1,000 trabajadores principales en la solicitud de creación inicial del clúster. Si tu carga de trabajo requiere más de 1,000 trabajadores principales, crea el clúster con 1,000 trabajadores principales o menos y, luego, escala el clúster después de crearlo.

Costos de transferencia de datos de red

En un clúster de una sola zona, todas las VMs se encuentran en la misma zona, y el tráfico de red que usa direcciones IP internas entre las VMs de la misma zona se ofrece sin cargo. En un clúster de varias zonas, las VMs principales y de trabajador pueden estar en diferentes zonas de la misma región. El tráfico de red entre VMs de diferentes zonas de la misma región genera cargos por transferencia de datos entre zonas.

Para obtener detalles sobre los precios, consulta Precios de las transferencias de datos de VM a VM dentro de Google Cloud.

Crear un clúster multizona

Puedes crear un clúster multizona con Google Cloud CLI o la API de Dataproc.

gcloud

Para crear un clúster multizonal, ejecuta el comando gcloud dataproc clusters create con la marca --multizone. No especifiques la marca --zone.

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --multizone \
    --image-version=IMAGE_VERSION \
    --master-machine-type=MASTER_MACHINE_TYPE \
    --worker-machine-type=WORKER_MACHINE_TYPE \
    --num-workers=NUM_WORKERS

Reemplaza lo siguiente:

  • CLUSTER_NAME: el nombre del clúster
  • REGION: Es una región de Compute Engine disponible para el clúster, como us-central1.
  • IMAGE_VERSION: Es una versión de imagen que admite clústeres multizona, como 2.3.37-debian12. Para obtener más información, consulta Requisitos y limitaciones.
  • MASTER_MACHINE_TYPE: Es el tipo de máquina de Compute Engine del nodo principal, como n2-standard-4.
  • WORKER_MACHINE_TYPE: Es el tipo de máquina de Compute Engine de los nodos trabajadores principales, como n2-standard-4.
  • NUM_WORKERS: Es la cantidad de trabajadores principales en el clúster. Este valor no puede ser superior a 1000.

REST

Para crear un clúster multizonal, envía una solicitud clusters.create. En el objeto gceClusterConfig de la solicitud, deja vacío el campo zoneUri y configura el campo multiZoneConfig.targetShape como ANY.

Método HTTP y URL:

POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters

Cuerpo JSON de la solicitud:

{
  "projectId": "PROJECT_ID",
  "clusterName": "CLUSTER_NAME",
  "config": {
    "gceClusterConfig": {
      "multiZoneConfig": {
        "targetShape": "ANY"
      }
    },
    "softwareConfig": {
      "imageVersion": "IMAGE_VERSION"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "MASTER_MACHINE_TYPE"
    },
    "workerConfig": {
      "numInstances": NUM_WORKERS,
      "machineTypeUri": "WORKER_MACHINE_TYPE"
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • REGION: Es una región de Compute Engine disponible para el clúster, como us-central1.
  • CLUSTER_NAME: el nombre del clúster
  • IMAGE_VERSION: Es una versión de imagen que admite clústeres multizona, como 2.3.37-debian12. Para obtener más información, consulta Requisitos y limitaciones.
  • MASTER_MACHINE_TYPE: Es el tipo de máquina de Compute Engine del nodo principal, como n2-standard-4.
  • NUM_WORKERS: Es la cantidad de trabajadores principales en el clúster. Este valor no puede ser superior a 1000.
  • WORKER_MACHINE_TYPE: Es el tipo de máquina de Compute Engine de los nodos trabajadores principales, como n2-standard-4.

¿Qué sigue?