Las VMs flexibles son una función de Dataproc que permite especificar listas priorizadas de tipos de VM para Dataproc trabajadores secundarios crear un clúster de Dataproc
¿Por qué usar VMs flexibles?
Anteriormente, si un tipo de VM no estaba disponible cuando enviaste una solicitud de creación de clúster, la solicitud falló y tuviste que actualizar tu solicitud, secuencia de comandos o código para especificar Tipo de VM. Esta proceso nuevo de solicitud podría implicar varias iteraciones hasta que especifiques un tipo de VM que estaba disponible.
La función de VM flexible de Dataproc ayuda a crear clústeres de manera correcta seleccionando los tipos de VM de trabajador secundario de tus listas de VM clasificadas y, luego, buscando para zonas dentro de la región de tu clúster especificado con disponibilidad de los tipos de VM de la lista.
Terminología
Tipo de VM: La familia, la capacidad de memoria y la cantidad de núcleos de CPU de una instancia de VM. Dataproc admite el uso de tipos predefinidos y personalizados de VMs.
Trabajadores secundarios: Trabajadores secundarios no almacenan datos. Funcionan solo como nodos de procesamiento. Puedes usar y secundarios para escalar procesamiento sin escalar el almacenamiento.
Limitaciones y consideraciones
Las VMs flexibles están disponibles en Dataproc en Compute Engine
2.0.74+
,2.1.22+
y versiones posteriores Dataproc en Compute Engine versiones de imágenes.Durante la versión preliminar:
- Puedes especificar VMs flexibles solo para trabajadores secundarios.
- Puedes especificar Spot o no interrumpible tipos de trabajadores secundarios como VMs flexibles, pero no de ambos, en la solicitud de creación del clúster. Si Si no especificas el tipo de trabajador secundario, Dataproc usa VMs Spot, que son interrumpibles.
Puedes especificar hasta cinco listas de tipos de VM clasificadas, con hasta 10 tipos de VM en una lista. Para obtener más información, consulta Cómo solicitar VM flexibles.
La creación de un clúster con VMs flexibles requiere el uso de ubicación de la zona automática de Dataproc, Permite que Dataproc elija la zona que tiene la capacidad de entregar tus solicitudes de tipo de VM.
Si tu solicitud de creación de clúster incluye un política de ajuste de escala automático, Las VMs flexibles pueden pertenecer a diferentes familias de VM, pero deben tener la misma la cantidad de memoria y el recuento de núcleos.
Cuando se aprovisionan VMs flexibles, Dataproc consume “cualquier concordancia” las reservas disponibles, pero no "específicas" reservas (consulta Consumir instancias reservadas). Los tipos de máquinas que coinciden con las reservas primero se seleccionan dentro de una clasificación y, luego, Tipos de VM con la mayor cantidad de CPU.
Dataproc aplica cuotas de Google Cloud al aprovisionamiento flexible de VM.
Aunque puedes especificar diferentes proporciones de CPU a memoria o tipos de V de trabajadores secundarios en un clúster, esto puede provocar una degradación del rendimiento porque la proporción más pequeña de CPU a memoria se usa como la unidad de contenedor más pequeña.
Si actualizas un clúster que se creó con VMs flexibles, Dataproc selecciona y agrega trabajadores de las listas de VM flexibles que que proporcionaste cuando creaste el clúster.
Cómo solicitar VMs flexibles
Puedes especificar VMs flexibles cuando creas un clúster de Dataproc con la consola de Google Cloud, Google Cloud CLI o la API de Dataproc.
- Puedes especificar hasta cinco listas de tipos de VM clasificadas, con hasta 10 tipos de VM en una lista. Las listas con la clasificación más baja tienen la prioridad más alta. De forma predeterminada, Las listas de VM tienen una clasificación de 0. Dentro de una lista, Dataproc prioriza las VM los tipos con reservas sin usar, seguidos de los tamaños de VM más grandes. Los tipos de VM dentro de una lista con la misma cantidad de CPU se tratan de la misma manera.
Console
Para crear un clúster con VM flexibles de trabajador secundario, sigue estos pasos:
Abre el panel de Dataproc. Crea un clúster en Compute Engine en la consola de Google Cloud.
El panel Configurar clúster está seleccionado con campos completados con campos predeterminados. de salida. Puedes cambiar el nombre sugerido y la región del clúster. realizar otros cambios. Asegúrate de que Cualquiera esté seleccionado como el clúster. Zona para permitir Posición de la zona automática de Dataproc para elegir la zona con la mejor disponibilidad Tipos de VM especificados en tus listas de VMs flexibles.
Selecciona el panel Configurar nodos. En Nodos trabajadores secundarios especifique la cantidad y la interrumpibilidad de los trabajadores secundarios.
- Haz clic en Agregar un trabajador secundario para cada clasificación de trabajadores secundarios. que especifican uno o más tipos de máquina para incluir en cada clasificación.
Después de confirmar y especificar los detalles del clúster, crea los paneles. Haz clic en Crear.
gcloud
Usa el
gcloud dataproc clusters create
comando para agregar varias marcas secondary-worker-machine-types
para especificar los valores
listas de VM flexibles para
Trabajadores secundarios de Dataproc.
El tipo predeterminado de trabajador secundario de VM flexible es Spot, que es un tipo interrumpible.
En el siguiente ejemplo de gcloud CLI, Dataproc intenta
para aprovisionar primero a los trabajadores secundarios con n2-standard-8
VMs (clasificación 0) Si
Las máquinas n2-standard-8 no están disponibles; los intentos de Dataproc
para aprovisionar a los trabajadores secundarios con e2-standard-8
o t2d-standard-8
VMs (rango 1).
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --zone="" \ --master-machine-type=n1-standard-8 \ --worker-machine-type=n1-standard-8 \ --num-workers=4 \ --num-secondary-workers=4 \ --secondary-worker-type=non-preemptible \ --secondary-worker-machine-types="type=n2-standard-8,rank=0" \ --secondary-worker-machine-types="type=e2-standard-8,type=t2d-standard-8,rank=1"
Notas:
--zone=""
: La función de VM flexible requiere Ubicación de la zona automática de Dataproc en para que Dataproc elija la zona que tiene tus Tipos de VM disponibles para su uso. Pasa un valor vacío (“”) para la marca--zone
anula cualquier selección de zonas especificada en el valor predeterminado.gcloud config list
Dataproc genera propiedades del componente
role
basadas en máquinas núcleos y memoria. Puedes anular estas propiedades generadas por el sistema con el--properties
con la siguiente sintaxis:--properties="ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY=VALUE"
En la versión preliminar, la función
secondary_worker
es la única compatible.En el siguiente ejemplo, la marca
--properties
cambia la cantidad de núcleos. dee2-standard-8
máquinas asignadas a nodos trabajadores secundarios del8
al6
:--properties="secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"
API
Usa la instanceFlexibilityPolicy.instanceSelectionList
.
como parte de una API de Dataproc
clusters.create
a fin de especificar una lista clasificada de machineTypes para los trabajadores secundarios.
Ejemplo:
El siguiente fragmento de JSON de un clusters.create
de Dataproc
cuerpo de la solicitud
especifica los tipos de máquina de trabajadores secundarios para los rangos 0 y 1.
"config": { "secondaryWorkerConfig": { "instanceFlexibilityPolicy": { "instanceSelectionList": [ { "machineTypes": [ "n1-standard-4", "n2-standard-4" ], "rank": 0 }, { "machineTypes": [ "e2-standard-4", "n2d-standard-4" ], "rank": 1 } ] } } }
Usar las propiedades del clúster para personalizar los roles de los componentes: Dataproc
Genera propiedades del componente role
basadas en la memoria y los núcleos de la VM.
Puedes anular estas propiedades generadas por el sistema agregando
SoftwareConfig.properties
a tu solicitud clusters.create
con la siguiente sintaxis key=value
:
ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY=VALUE
En la versión preliminar, la función secondary_worker
es la única compatible.
En el siguiente ejemplo, el campo properties
cambia la cantidad de núcleos.
Se asigna al nodo trabajador secundario de una VM e2-standard-8
de 8
a 6
:
"secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"