En este documento, se describe cómo crear un clúster de Managed Service para Apache Spark en el modo de alta disponibilidad (HO). El modo de alta disponibilidad mejora la probabilidad de aprovisionar correctamente las VMs del clúster durante períodos de alta demanda o restricciones de recursos, ya que permite que Managed Service para Apache Spark seleccione entre un rango de tipos de máquinas compatibles en lugar de requerir un tipo de máquina fijo cuando se crea un clúster.
Usa el modo de alta disponibilidad para crear clústeres con requisitos de procesamiento de uso general y ayudar a evitar fallas en la creación y el escalamiento de clústeres debido a la falta de disponibilidad de las VM.
Cómo funciona el modo de alta probabilidad de obtención
En las solicitudes de creación de clústeres estándar, especificas tipos de máquinas específicos (como
n2-standard-4) para los nodos del clúster. Si ese tipo de máquina específico no está disponible
en una zona, la solicitud de creación fallará.
En el modo de alta disponibilidad, especificas requisitos de recursos flexibles para los nodos trabajadores principales, secundarios y principales, en lugar de tipos de máquinas fijos:
- Recuento de núcleos de CPU virtuales: Solicita una cantidad objetivo de CPU virtuales por instancia de VM (2, 4, 8, 16 o 32 núcleos).
Clase de hardware: Especifica el perfil de rendimiento y memoria:
STANDARD: Proporciona una configuración equilibrada con aproximadamente 4 GB de memoria por CPU virtual y niveles de almacenamiento persistente estándar. Los tipos de máquinas candidatos actuales incluyenn4-standard,n4d-standard,n2-standardyn2d-standard(preferencia de rango 0), yc4-standardyc4d-standard(preferencia de rango 1).PERFORMANCE: Proporciona una configuración de alto rendimiento con aproximadamente 8 GB de memoria por CPU virtual y configuraciones de disco de nivel superior (IOPS y capacidad de procesamiento más altas). Los tipos de máquinas candidatos actuales incluyenn4-highmem,n4d-highmem,n2-highmemyn2d-highmem(preferencia de rango 0), yc4-highmemyc4d-highmem(preferencia de rango 1).
Recuento de instancias: Especifica la cantidad de instancias para cada grupo:
- Principal: Debe ser 1 instancia.
- Trabajadores principales: número entero positivo.
- Trabajadores secundarios: número entero no negativo.
Tamaño del disco de arranque: Es el tamaño opcional del disco de arranque (por ejemplo, 100 GB).
Managed Service para Apache Spark usa automáticamente la ubicación de zona automática para evaluar las zonas en la región del clúster y seleccionar los tipos de máquinas candidatos dentro de la clase de hardware solicitada que tengan capacidad disponible.
Requisitos y limitaciones
El modo de alta disponibilidad tiene los siguientes requisitos y limitaciones:
- Cuotas de recursos: Tu proyecto debe tener suficientes
cuotas de recursos de Compute Engine
en la región del clúster para todas las familias de máquinas candidatas en la clase de hardware
seleccionada (
N4,N4D,N2,N2D,C4yC4D). Debido a que los tipos de máquinas candidatos subyacentes están controlados por Google y pueden cambiar en cualquier momento, no dependas de tipos de máquinas específicos. - Especificación de zona: No puedes especificar un
--zone(ozoneUri) de forma explícita. Managed Service para Apache Spark selecciona automáticamente una zona disponible en la región con la ubicación de zona automática. - Exclusividad mutua con configuraciones fijas de máquinas y nodos:
- Cuando configuras grupos de nodo trabajador principales, secundarios o principales
con parámetros de configuración flexibles (
--master-flexible-config,--worker-flexible-configo--secondary-worker-flexible-config), no puedes especificar el tipo de máquina estándar, la selección de instancias, el recuento de instancias, el disco o las marcas de acelerador para esos grupos de nodos:- Master: No se puede combinar con
--master-machine-type,--master-machine-types,--master-instance-selection,--master-instance-flexibility-policy-file,--master-boot-disk-size,--master-boot-disk-type,--num-master-local-ssds,--master-acceleratorni--master-min-cpu-platform. - Trabajadores principales: No se puede combinar con
--num-workers,--worker-machine-type,--worker-machine-types,--worker-instance-selection,--worker-instance-flexibility-policy-file,--worker-boot-disk-size,--worker-boot-disk-type,--num-worker-local-ssds,--worker-acceleratorni--worker-min-cpu-platform. - Trabajadores secundarios: No se pueden combinar con
--num-secondary-workers,--secondary-worker-type,--secondary-worker-machine-types,--secondary-worker-instance-selection,--secondary-worker-instance-flexibility-policy-file,--secondary-worker-boot-disk-size,--secondary-worker-boot-disk-type,--num-secondary-worker-local-ssdsni--secondary-worker-accelerator.
- Master: No se puede combinar con
- En un clúster de varios nodos, si el modo de alta disponibilidad está habilitado para el
grupo de nodos principal, el grupo de nodo trabajador principal también debe usar configuraciones
flexibles (
--worker-flexible-config). - Si se usan trabajadores secundarios en un clúster de alta disponibilidad, deben
usar
--secondary-worker-flexible-configen lugar de las marcas de trabajadores secundarios estándar.
- Cuando configuras grupos de nodo trabajador principales, secundarios o principales
con parámetros de configuración flexibles (
- Clústeres de un solo nodo: En un
clúster de un solo nodo
(
--single-nodeo--cluster-type=single-node), solo se puede especificar--master-flexible-config. No se admiten las marcas de configuración flexible de los trabajadores principales y secundarios. - Actualizaciones de clústeres: Puedes actualizar la cantidad de instancias
(
num-instances) para los trabajadores principales y secundarios congcloud dataproc clusters update. El recuento de núcleos, la clase de hardware y el tamaño del disco de arranque son especificaciones del momento de la creación y no se pueden modificar después de la creación. - Clústeres de alta disponibilidad: Los clústeres de alta disponibilidad (HA) (clústeres con tres nodos principales) no se admiten en el modo de alta disponibilidad. El recuento de instancias de la instancia principal debe ser 1.
Crea un clúster de alta disponibilidad
Puedes crear un clúster en el modo de alta disponibilidad con la Google Cloud CLI o la API de Dataproc.
gcloud
Para crear un clúster en modo de alta disponibilidad, ejecuta el comando
gcloud dataproc clusters create
con las marcas --master-flexible-config y --worker-flexible-config.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=1,boot-disk-size=BOOT_DISK_SIZE" \
--worker-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=NUM_WORKERS,boot-disk-size=BOOT_DISK_SIZE"
Reemplaza lo siguiente:
CLUSTER_NAME: el nombre del clústerREGION: Es la región de Compute Engine del clúster, comous-central1. No especifiques un--zone.CORES: Es la cantidad de CPU virtuales por instancia de VM. Debe ser una potencia de 2 (2,4,8,16o32).HARDWARE_CLASS: Es la clase de perfil de hardware, ya seaSTANDARDoPERFORMANCE.NUM_WORKERS: Es la cantidad de nodos trabajadores principales en el clúster.BOOT_DISK_SIZE: el tamaño del disco de arranque, como100GB.
Agrega trabajadores secundarios
Para agregar nodos trabajadores secundarios en el modo de alta disponibilidad, incluye la
marca --secondary-worker-flexible-config:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=4,hardware-class=STANDARD,num-instances=1,boot-disk-size=100GB" \
--worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB" \
--secondary-worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB"
Crea un clúster de un solo nodo
Para crear un clúster de alta disponibilidad de
un solo nodo,
especifica --single-node (o
--cluster-type=single-node) con --master-flexible-config y omite las marcas de configuración flexible
de los trabajadores:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--single-node \
--master-flexible-config="cores=4,hardware-class=STANDARD,boot-disk-size=100GB"
Actualiza la capacidad de los trabajadores del clúster
Para escalar la cantidad de trabajadores principales o secundarios en un clúster de alta
disponibilidad existente, usa el comando
gcloud dataproc clusters update:
gcloud dataproc clusters update CLUSTER_NAME \
--region=REGION \
--worker-flexible-config="num-instances=NEW_NUM_WORKERS"
REST
Para crear un clúster de alta disponibilidad con la API de REST, envía una solicitud
clusters.create. En el objeto
ClusterConfig:
- Deja
gceClusterConfig.zoneUrivacío (o no lo incluyas) para habilitar la ubicación Zona automática. - Especifica los objetos
masterFlexibleConfigyworkerFlexibleConfig.
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": {
"zoneUri": ""
},
"masterFlexibleConfig": {
"numInstances": 1,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
},
"workerFlexibleConfig": {
"numInstances": 2,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
}
}
}
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto de Google Cloud .REGION: Es la región de Compute Engine en la que se creará el clúster, comous-central1.CLUSTER_NAME: el nombre del clúster
Opcional: Para agregar trabajadores secundarios, incluye el
objeto secondaryWorkerFlexibleConfig con los valores numInstances,
coreCount, hardwareClass y bootDiskSizeGb que desees.
¿Qué sigue?
- Obtén más información sobre la ubicación de zona automática.
- Obtén información para priorizar los tipos de VMs con VMs flexibles.
- Obtén información para escalar clústeres de Managed Service para Apache Spark.