Comprender la estrategia y los escenarios de asignación de nodos - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Comprender la estrategia y los escenarios de asignación de nodos

En esta sección se ofrece información general sobre la estrategia de asignación de nodos y los escenarios de escalado comunes que puede utilizar con Escalado administrado de Amazon EMR.

Estrategia de asignación de nodos

Escalado administrado de Amazon EMR asigna los nodos principales y de tarea en función de las siguientes estrategias de escalado y reducción verticales:

Estrategia de escalado vertical

  • Escalado administrado de Amazon EMR primero agrega capacidad a los nodos principales y, después, a los nodos de tarea hasta que se alcanza la capacidad máxima permitida o hasta que se alcanza la capacidad de destino de escalado vertical deseada.

  • Cuando Amazon EMR experimenta un retraso en el escalado vertical con el grupo de instancias actual, los clústeres que usan el escalado administrado cambian automáticamente a un grupo de instancias de tareas diferente.

  • Si el parámetro MaximumCoreCapacityUnits está establecido, Amazon EMR escala los nodos principales hasta que las unidades principales alcanzan el límite máximo permitido. Toda la capacidad restante se agrega a los nodos de tarea.

  • Si el parámetro MaximumOnDemandCapacityUnits está establecido, Amazon EMR escala el clúster mediante las instancias bajo demanda hasta que las unidades bajo demanda alcanzan el límite máximo permitido. Toda la capacidad restante se agrega mediante instancias de spot.

  • Si se establecen los parámetros MaximumCoreCapacityUnits y MaximumOnDemandCapacityUnits, Amazon EMR tiene en cuenta ambos límites durante el escalado.

    Por ejemplo, si MaximumCoreCapacityUnits es inferior a MaximumOnDemandCapacityUnits, Amazon EMR primero escala los nodos principales hasta alcanzar el límite de capacidad principal. Para la capacidad restante, Amazon EMR utiliza primero las instancias bajo demanda para escalar los nodos de tarea hasta alcanzar el límite bajo demanda y, a continuación, utiliza las instancias de spot para los nodos de tarea.

Estrategia de reducción vertical

  • Las versiones 5.34.0 y posteriores, y 6.4.0 y posteriores de Amazon EMR admiten el escalado administrado compatible con los datos de mezclas aleatorias de Spark (datos que Spark redistribuye entre las particiones para realizar operaciones específicas). Para más información sobre las operaciones de mezclas aleatorias, consulte Spark Programming Guide. El escalado administrado solo reduce verticalmente las instancias que están infrautilizadas y que no contienen datos de mezclas aleatorias utilizados activamente. Este escalado inteligente evita la pérdida involuntaria de datos de mezclas aleatorias, lo que evita la necesidad de volver a intentar el trabajo y volver a calcular los datos intermedios.

  • Escalado administrado de Amazon EMR elimina primero los nodos de tarea y, a continuación, elimina los nodos principales hasta que se alcanza la capacidad de destino de reducción vertical deseada. El clúster nunca se escala por debajo de las restricciones mínimas de la política de escalado administrado.

  • Dentro de cada tipo de nodo (ya sean nodos principales o de tarea), Escalado administrado de Amazon EMR elimina primero las instancias de spot y, a continuación, las instancias bajo demanda.

  • En el caso de los clústeres que se lanzan con las versiones 5.x, 5.34.0 y posteriores, y las versiones 6.x, 6.4.0 y posteriores de Amazon EMR, el Escalado administrado de Amazon EMR no reduce verticalmente los nodos que tienen ApplicationMaster para Apache Spark en ejecución. Esto minimiza los errores y los reintentos en los trabajos, lo que ayuda a mejorar el rendimiento de los trabajos y a reducir los costos. Para confirmar qué nodos del clúster se ejecutan ApplicationMaster, visite el servidor del historial de Spark y filtre el controlador en la pestaña Ejecutores del ID de aplicación de Spark.

Si el clúster no tiene ninguna carga, Amazon EMR cancela la adición de nuevas instancias de una evaluación anterior y realiza operaciones de reducción vertical. Si el clúster tiene una carga elevada, Amazon EMR cancela la eliminación de instancias y realiza operaciones de escalado vertical.

Consideraciones sobre la asignación de nodos

Le recomendamos que utilice la opción de compra bajo demanda para los nodos principales a fin de evitar la pérdida de datos de HDFS en caso de recuperación de spot. Puede utilizar la opción de compra puntual para los nodos de tarea a fin de reducir los costos y agilizar la ejecución de los trabajos cuando se agreguen más instancias de spot a los nodos de tarea.

Escenarios de asignación de nodos

Puede crear varios escenarios de escalado en función de sus necesidades configurando los parámetros máximo, mínimo, límite bajo demanda y máximo de nodos principales en diferentes combinaciones.

Escenario 1: escalar únicamente los nodos principales

Para escalar únicamente los nodos principales, los parámetros de escalado administrado deben cumplir los siguientes requisitos:

  • El límite bajo demanda es igual al límite máximo.

  • El máximo de nodos principales es igual al límite máximo.

Cuando no se especifican los parámetros del límite bajo demanda y el máximo de nodos principales, ambos parámetros se establecen de forma predeterminada en el límite máximo.

En los siguientes ejemplos, se muestra el escenario de escalado de nodos principales únicamente.

Estado inicial del clúster Parámetros de escalado Comportamiento del escalado

Grupos de instancias

Principal: 1 bajo demanda

Tarea: 1 bajo demanda y 1 de spot

UnitType: instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 20

Escale entre 1 y 20 instancias o unidades de flota de instancias en los nodos principales mediante el tipo bajo demanda. No se puede escalar en los nodos de tarea.

Flotas de instancias

Principal: 1 bajo demanda

Tarea: 1 bajo demanda y 1 de spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 20

Escenario 2: escalar únicamente los nodos de tarea

Para escalar únicamente los nodos de tarea, los parámetros de escalado administrado deben cumplir el siguiente requisito:

  • El máximo de nodos principales debe ser igual al límite mínimo.

En los siguientes ejemplos, se muestra el escenario de escalado de nodos de tarea únicamente.

Estado inicial del clúster Parámetros de escalado Comportamiento del escalado

Grupos de instancias

Principal: 2 bajo demanda

Tarea: 1 de spot

UnitType: instancias

MinimumCapacityUnits: 2

MaximumCapacityUnits: 20

MaximumCoreCapacityUnits: 2

Mantenga los nodos principales estables en 2 y escale únicamente los nodos de tarea entre 0 y 18 instancias o unidades de flota de instancias. La capacidad entre los límites mínimo y máximo se agrega únicamente a los nodos de tarea.

Flotas de instancias

Principal: 2 bajo demanda

Tarea: 1 de spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 2

MaximumCapacityUnits: 20

MaximumCoreCapacityUnits: 2

Escenario 3: solo las instancias bajo demanda del clúster

Para tener únicamente instancias bajo demanda, el clúster y los parámetros de escalado administrado deben cumplir el siguiente requisito:

  • El límite bajo demanda es igual al límite máximo.

    Si no se especifica el límite bajo demanda, el valor del parámetro se establece de forma predeterminada en el límite máximo. El valor predeterminado indica que Amazon EMR escala únicamente las instancias bajo demanda.

Si el máximo de nodos principales es inferior al límite máximo, el parámetro del máximo de nodos principales se puede utilizar para dividir la asignación de capacidad entre los nodos principales y de tarea.

Para habilitar este escenario en un clúster compuesto por grupos de instancias, todos los grupos de nodos del clúster deben usar el tipo de compra bajo demanda durante la configuración inicial.

En los siguientes ejemplos, se muestra el escenario en el que hay instancias bajo demanda en todo el clúster.

Estado inicial del clúster Parámetros de escalado Comportamiento del escalado

Grupos de instancias

Principal: 1 bajo demanda

Tarea: 1 baja demanda

UnitType: instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 12

Escale entre 1 y 12 instancias o unidades de flota de instancias en los nodos principales mediante el tipo bajo demanda. Escale la capacidad restante mediante el tipo bajo demanda en los nodos de tarea. No se puede escalar con instancias de spot.

Flotas de instancias

Principal: 1 bajo demanda

Tarea: 1 baja demanda

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 12

Escenario 4: solo las instancias de spot del clúster

Para tener únicamente instancias de spot, los parámetros de escalado administrado deben cumplir el siguiente requisito:

  • El límite bajo demanda está establecido en 0.

Si el máximo de nodos principales es inferior al límite máximo, el parámetro del máximo de nodos principales se puede utilizar para dividir la asignación de capacidad entre los nodos principales y de tarea.

Para habilitar este escenario en un clúster compuesto por grupos de instancias, el grupo de instancias principales debe usar la opción de compra de spot durante la configuración inicial. Si no hay ninguna instancia de spot en el grupo de instancias de las tareas, Escalado administrado de Amazon EMR crea un grupo de tareas que utiliza instancias de spot cuando es necesario.

En los siguientes ejemplos, se muestra el escenario en el que hay instancias de spot en todo el clúster.

Estado inicial del clúster Parámetros de escalado Comportamiento del escalado

Grupos de instancias

Principal: 1 de spot

Tarea: 1 de spot

UnitType: instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 0

Escale entre 1 y 20 instancias o unidades de flota de instancias en los nodos principales mediante el tipo de spot. No se puede escalar con el tipo bajo demanda.

Flotas de instancias

Principal: 1 de spot

Tarea: 1 de spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 0

Escenario 5: escalar las instancias bajo demanda en los nodos principales y las instancias de spot en los nodos de tarea

Para escalar las instancias bajo demanda en los nodos principales y las instancias de spot en los nodos de tarea, los parámetros de escalado administrado deben cumplir los siguientes requisitos:

  • El límite bajo demanda debe ser igual al máximo de nodos principales.

  • Tanto el límite bajo demanda como el máximo de nodos principales deben ser inferiores al límite máximo.

Para habilitar este escenario en un clúster compuesto por grupos de instancias, el grupo de nodos principales debe usar la opción de compra bajo demanda.

En los siguientes ejemplos, se muestra el escenario en el que se escalan las instancias bajo demanda en los nodos principales y las instancias de spot en los nodos de tarea.

Estado inicial del clúster Parámetros de escalado Comportamiento del escalado

Grupos de instancias

Principal: 1 bajo demanda

Tarea: 1 bajo demanda y 1 de spot

UnitType: instancias

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 7

MaximumCoreCapacityUnits: 7

Escale hasta 6 unidades bajo demanda en el nodo principal, ya que ya hay una unidad bajo demanda en el nodo de tarea y el límite máximo de unidades bajo demanda es de 7. A continuación, escale hasta 13 unidades de spot en los nodos de tarea.

Flotas de instancias

Principal: 1 bajo demanda

Tarea: 1 bajo demanda y 1 de spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 7

MaximumCoreCapacityUnits: 7