Los clústeres de Dataproc se crean en instancias de Compute Engine. 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 personalizadas. Los clústeres de Dataproc pueden usar tipos predefinidos y personalizados para los nodos maestros y de trabajador.
Los clústeres de Dataproc admiten los siguientes tipos de máquinas predefinidas de Compute Engine (la disponibilidad de los tipos de máquinas 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 y N4 (Dataproc también admite los tipos de máquinas personalizadas N1, N2, N2D, E2, C3, C4 y N4).
Limitaciones:
- El tipo de máquina n1-standard-1 no se admite en imágenes 2.0 o posteriores (el tipo de máquina n1-standard-1 no se recomienda en imágenes anteriores a la versión 2.0; en su lugar, usa un tipo de máquina con más memoria).
- Los tipos de máquinas de núcleo compartido no se admiten, incluidos los siguientes tipos de máquinas no admitidos:
- E2: tipos de máquinas de núcleo compartido e2-micro, e2-small y e2-medium.
- N1: tipos de máquinas con núcleo compartido f1-micro y g1-small.
- Dataproc selecciona
hyperdisk-balanced
como tipo de disco de arranque si el tipo de máquina es C4 o N4.
- Tipos de máquinas optimizadas para la computación, como los tipos de máquinas C2 y C2D.
- Tipos de máquinas con memoria optimizada, que incluyen los tipos de máquinas M1 y M2.
- Tipos de máquinas ARM, incluidos los tipos de máquinas C4A.
Tipos de máquinas personalizadas
Dataproc admite tipos de máquinas personalizadas de la serie N1.
Los tipos de máquinas personalizadas son ideales para las siguientes cargas de trabajo:
- Cargas de trabajo que no se ajustan a los tipos de máquinas predefinidos.
- Cargas de trabajo que requieren más potencia de procesamiento o más memoria, pero que no necesitan todas las mejoras que ofrece el siguiente 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 n1-standard-4
, pero la siguiente instancia, n1-standard-8
, ofrece demasiada capacidad. Con los tipos de máquinas personalizadas, puedes crear clústeres de Dataproc con nodos maestros o de trabajador de gama media, con 6 CPUs virtuales y 25 GB de memoria.
Especificar un tipo de máquina personalizado
Los tipos de máquinas personalizadas usan una machine type
especificación especial y están sujetos a limitaciones. Por ejemplo, la especificación del tipo de máquina personalizada de una VM personalizada con 6 CPUs virtuales y 22,5 GB de memoria es custom-6-23040
.
Los números de la especificación del tipo de máquina corresponden al número de CPUs virtuales (vCPUs) de la máquina (6
) y a la cantidad de memoria (23040
). La cantidad de memoria se calcula multiplicando la cantidad de memoria en gigabytes por 1024
(consulta Expresar 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 de máquina personalizado con tus clústeres. Puedes definir el tipo de máquina para los nodos maestros o de trabajo, o para ambos, al crear un clúster. Si configuras ambos, el nodo maestro puede usar un tipo de máquina personalizado que sea diferente del tipo de máquina personalizado 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 definir por separado (consulta Trabajadores secundarios: máquinas virtuales interrumpibles y no interrumpibles).
Precios de tipos de máquinas personalizadas
Los precios de los tipos de máquinas personalizadas se basan en los recursos utilizados en una máquina personalizada. Los precios de Dataproc se suman al coste de los recursos de computación y se basan en el número total de CPUs virtuales (vCPUs) que se utilizan en un clúster.
Crear un clúster de Dataproc con un tipo de máquina específico
Consola
En el panel Configurar nodos de la página Crear un clúster de Dataproc en la consola Google Cloud , selecciona la familia, la serie y el tipo de máquina de los nodos maestros y de trabajador del clúster.
Comando gcloud
Ejecuta el comando gcloud dataproc clusters create
con las siguientes marcas para crear un clúster de Dataproc con tipos de máquinas maestras o de trabajador:
- La marca
--master-machine-type machine-type
te permite definir el tipo de máquina predefinido o personalizado que usa la instancia de VM principal de tu clúster (o las instancias principales si creas un clúster de alta disponibilidad). - La marca
--worker-machine-type custom-machine-type
te permite definir el tipo de máquina predefinido o personalizado que usan las instancias de VM de trabajador de tu clúster.
Ejemplo:
gcloud dataproc clusters create test-cluster / --master-machine-type custom-6-23040 / --worker-machine-type custom-6-23040 / other args
... 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 REST
Para crear un clúster con tipos de máquinas personalizadas, define el valor de machineTypeUri
en masterConfig
o workerConfig
InstanceGroupConfig
en la solicitud de 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 } } } }
Crear un clúster de Dataproc con un tipo de máquina personalizado con memoria ampliada
Dataproc admite tipos de máquinas personalizadas con memoria ampliada que supera el límite de 6,5 GB por vCPU (consulta Precios de la memoria ampliada).
Consola
Haz clic en Ampliar memoria cuando personalices la memoria del tipo de máquina en la sección Nodo maestro o Nodos de trabajador del panel Configurar nodos de la página Crear un clúster Google Cloud de Dataproc en la consola.

Comando gcloud
Para crear un clúster desde la línea de comandos de gcloud con CPUs personalizadas y memoria ampliada, añade el sufijo -ext
a las marcas ‑‑master-machine-type
o ‑‑worker-machine-type
.
Ejemplo
El siguiente ejemplo de línea de comandos de gcloud crea un clúster de Dataproc con 1 CPU y 50 GB de memoria (50 * 1024 = 51200) 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 de JSON de ejemplo <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> de una solicitud de la API REST de Dataproc clusters.create especifica 1 CPU y 50 GB de memoria (50 * 1024 = 51200) en cada nodo:
... "masterConfig": { "numInstances": 1, "machineTypeUri": "custom-1-51200-ext", ... }, "workerConfig": { "numInstances": 2, "machineTypeUri": "custom-1-51200-ext", ... ...
Tipos de máquinas ARM
Dataproc permite crear clústeres con nodos que usen tipos de máquinas ARM, como el tipo de máquina C4A.
Requisitos y limitaciones:
- La imagen de Dataproc debe ser compatible con el chipset ARM.
Las imágenes de Dataproc
2.1-ubuntu20-arm
,2.2-ubuntu22-arm
, y2.3-ubuntu22-arm
(y las posteriores con el sufijo-arm
) son compatibles con el chipset ARM. Las imágenes compatibles con ARM no admiten muchos componentes opcionales ni de acción de inicialización, tal como se indica en las páginas de la versión de lanzamiento de la imagen. - Como se debe especificar una imagen para un clúster, los nodos maestro, de trabajador y de trabajador secundario deben usar un tipo de máquina ARM que sea compatible con la imagen ARM de Dataproc seleccionada.
- Las funciones de Dataproc que no son compatibles con los tipos de máquinas ARM no están disponibles (por ejemplo, los SSD locales no son compatibles con los tipos de máquinas C4A).
- Las imágenes 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.
Crear un clúster de Dataproc con un tipo de máquina ARM
Consola
Actualmente, la consola no admite la creación de un clúster de tipo de máquina ARM de Dataproc. Google Cloud
gcloud
Para crear un clúster de Dataproc que use el tipo de máquina ARM c4a-standard-4
, ejecuta el siguiente comando gcloud
localmente en una ventana de terminal o en Cloud Shell.
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: la región en la que se ubicará el clúster.
Las imágenes ARM están disponibles a partir de
2.1.18-ubuntu20-arm
,2.2.61-ubuntu22-arm
y2.3.7-ubuntu22-arm
.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.
Las imágenes de
*-arm
solo admiten los componentes preinstalados y los siguientes componentes opcionales que se indican en las versiones de lanzamiento 2.1.x, 2.2.x y 2.3.x. Los otros componentes opcionales 2.1, 2.2 y 2.3, junto con todas las acciones de inicialización que se indican, no se admiten:- Apache Hive WebHCat
- Docker
- Zeppelin
- Zookeeper (instalado en clústeres de alta disponibilidad; componente opcional en clústeres que no son de alta disponibilidad)
API
La siguiente solicitud de la API REST de Dataproc clusters.create crea un clúster de tipo de máquina ARM.
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" } } }
Siguientes pasos
- Consulta más información sobre las máquinas virtuales Arm en Compute.
- Consulta cómo crear una VM con un tipo de máquina personalizado.
- Consulta cómo crear e iniciar una instancia de Compute Engine.