Uso del escalado administrado en Amazon EMR - Amazon EMR

Uso del escalado administrado en Amazon EMR

importante

Le recomendamos encarecidamente que utilice la versión más reciente de Amazon EMR (6.14.0) para el escalado administrado. En las versiones anteriores, era posible que se produjeran errores intermitentes en las aplicaciones o retrasos en el escalado. Amazon EMR resolvió este problema en las versiones 5.x: (5.30.2, 5.31.1, 5.32.1, 5.33.1 y posteriores) y las versiones 6.x (6.1.1, 6.2.1, 6.3.1 y posteriores). Para obtener más información sobre la disponibilidad de las versiones y las regiones, consulte Disponibilidad de Escalado administrado.

Información general

Con las versiones 5.30.0 y posteriores de Amazon EMR (excepto la versión 6.0.0 de Amazon EMR), puede habilitar el Escalado administrado de Amazon EMR. El escalado administrado le permite aumentar o disminuir automáticamente el número de instancias o unidades del clúster en función de la carga de trabajo. Amazon EMR evalúa continuamente las métricas del clúster para tomar decisiones de escalado que optimicen los clústeres en cuanto al costo y la velocidad. El escalado administrado está disponible para clústeres compuestos por grupos de instancias o flotas de instancias.

Disponibilidad de Escalado administrado

  • En Asia-Pacífico (Yakarta), el Escalado administrado de Amazon EMR está disponible con Amazon EMR 6.14.0 y versiones posteriores.

  • El Escalado administrado de Amazon EMR está disponible con Amazon EMR 5.30.0, 6.1.0 y versiones posteriores en las siguientes Regiones de AWS:

    Este de EE. UU. (Norte de Virginia y Ohio), Oeste de EE. UU. (Oregón y Norte de California), América del Sur (São Paulo), Europa (Fráncfort, Irlanda, Londres, Milán, París y Estocolmo), Canadá (centro), Asia-Pacífico (Hong Kong, Bombay, Seúl, Singapur, Sídney y Tokio), Medio Oriente (Baréin), África (Ciudad del Cabo), AWS GovCloud (Este de EE. UU.), AWS GovCloud (Oeste de EE. UU.), China (Pekín) operada por Sinnet y China (Ningxia) operada por NWCD.

  • Escalado administrado de Amazon EMR solo funciona con aplicaciones YARN, como Spark, Hadoop, Hive y Flink. No es compatible con aplicaciones que se basen en YARN, como Presto y HBase.

Parámetros de escalado administrado

Debe configurar los siguientes parámetros para el escalado administrado. El límite solo se aplica a los nodos principales y de tareas. No puedes escalar el nodo principal después de la configuración inicial.

  • Mínimo (MinimumCapacityUnits): el límite inferior de la capacidad de EC2 permitida en un clúster. Se mide mediante núcleos de unidades de procesamiento central virtual (vCPU) o instancias para grupos de instancias. Se mide mediante unidades para flotas de instancias.

  • Máximo (MaximumCapacityUnits): el límite superior de la capacidad de EC2 permitida en un clúster. Se mide mediante núcleos de unidades de procesamiento central virtual (vCPU) o instancias para grupos de instancias. Se mide mediante unidades para flotas de instancias.

  • Límite bajo demanda (MaximumOnDemandCapacityUnits) (opcional): límite superior de la capacidad de EC2 permitida para el tipo de mercado bajo demanda de un clúster. Si no se especifica este parámetro, se establece en el valor predeterminado de MaximumCapacityUnits.

    • Este parámetro se utiliza para dividir la asignación de capacidad entre instancias bajo demanda e instancias de spot. Por ejemplo, si establece el parámetro mínimo en 2 instancias, el parámetro máximo en 100 instancias y el límite bajo demanda en 10 instancias, Escalado administrado de Amazon EMR escala hasta 10 instancias bajo demanda y asigna la capacidad restante a instancias de spot. Para obtener más información, consulte Escenarios de asignación de nodos.

  • Máximo de nodos principales (MaximumCoreCapacityUnits) (opcional): límite superior de la capacidad de EC2 permitida para el tipo de nodo principal de un clúster. Si no se especifica este parámetro, se establece en el valor predeterminado de MaximumCapacityUnits.

    • Este parámetro se utiliza para dividir la asignación de capacidad entre los nodos principales y de tarea. Por ejemplo, si establece el parámetro mínimo en 2 instancias, el máximo en 100 instancias y el máximo de nodos principales en 17 instancias, Escalado administrado de Amazon EMR escala hasta 17 nodos principales y asigna las 83 instancias restantes a los nodos de tarea. Para obtener más información, consulte Escenarios de asignación de nodos.

Para obtener más información sobre los parámetros de escalado administrado, consulte ComputeLimits.

Consideraciones sobre el Escalado administrado de Amazon EMR

  • El Escalado administrado se admite en algunas Regiones de AWS y versiones de Amazon EMR. Para obtener más información, consulte Disponibilidad de Escalado administrado.

  • Debe configurar los parámetros obligatorios para Escalado administrado de Amazon EMR. Para obtener más información, consulte Parámetros de escalado administrado.

  • Para utilizar el escalado administrado, el proceso de recopilación de métricas debe poder conectarse al punto de conexión de la API pública para el escalado administrado en API Gateway. Si utiliza un nombre de DNS privado con Amazon Virtual Private Cloud, el escalado administrado no funcionará correctamente. Para garantizar que el escalado administrado funcione, se recomienda que realice una de las siguientes acciones:

  • Si sus trabajos de YARN se ralentizan de forma intermitente durante la reducción vertical, y los registros de YARN Resource Manager indican que la mayoría de sus nodos estaban en la lista de denegación durante ese tiempo, puede ajustar el límite de tiempo de espera para la retirada.

    Reduzca el valor de spark.blacklist.decommissioning.timeout de una hora a un minuto para que el nodo esté disponible para que otros contenedores pendientes puedan continuar con el procesamiento de las tareas.

    También debe establecer YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs en un valor mayor para garantizar que Amazon EMR no fuerce la terminación del nodo mientras la “Tarea de Spark” más larga siga ejecutándose en el nodo. El valor predeterminado actual son 60 minutos, lo que significa que YARN fuerza la terminación del contenedor transcurridos 60 minutos una vez que el nodo entra en el estado de retirada.

    En el siguiente ejemplo de la línea de registro de YARN Resource Manager, se muestran los nodos agregado al estado de retirada:

    2021-10-20 15:55:26,994 INFO org.apache.hadoop.YARN.server.resourcemanager.DefaultAMSProcessor (IPC Server handler 37 on default port 8030): blacklist are updated in Scheduler.blacklistAdditions: [ip-10-10-27-207.us-west-2.compute.internal, ip-10-10-29-216.us-west-2.compute.internal, ip-10-10-31-13.us-west-2.compute.internal, ... , ip-10-10-30-77.us-west-2.compute.internal], blacklistRemovals: []

    Consulte más información sobre cómo Amazon EMR se integra con la lista de denegación de YARN durante la retirada de nodos, los casos en los que los nodos de Amazon EMR se pueden agregar a la lista de denegación y cómo configurar el comportamiento de retirada de nodos de Spark.

  • La sobreutilización de los volúmenes de EBS puede provocar problemas de Escalado administrado. Le recomendamos que mantenga el volumen de EBS por debajo del 90 % de utilización. Para obtener más información, consulte Almacenamiento de la instancia.

  • Las métricas de Amazon CloudWatch son fundamentales para que Escalado administrado de Amazon EMR funcione. Le recomendamos que monitorice de cerca las métricas de Amazon CloudWatch para asegurarse de que no falten datos. Para obtener más información sobre cómo configurar las alarmas de CloudWatch para detectar las métricas que faltan, consulte Uso de las alarmas de Amazon CloudWatch.

  • Las operaciones de escalado administrado en los clústeres 5.30.0 y 5.30.1 sin Presto instalado pueden provocar errores en las aplicaciones o provocar que un grupo de instancias o una flota de instancias uniformes permanezcan en estado ARRESTED, especialmente cuando una operación de reducción vertical va seguida inmediatamente de una operación de escalado vertical.

    Como solución alternativa, elija Presto como aplicación para instalar cuando cree un clúster con las versiones 5.30.0 y 5.30.1 de Amazon EMR, incluso si su trabajo no requiere Presto.

  • Al establecer el nodo principal máximo y el límite bajo demanda de Escalado administrado de Amazon EMR, tenga en cuenta las diferencias entre los grupos de instancias y las flotas de instancias. Cada grupo de instancias se compone del mismo tipo de instancia y las mismas opciones de compra para las instancias: bajo demanda o de spot. Para cada flota de instancias, puede especificar hasta cinco tipos de instancia que se pueden aprovisionar como instancias bajo demanda e instancias de spot. Para obtener más información, consulte Crear un clúster con las flotas de instancias o grupos de instancias uniformes, Opciones de las flotas de instancias y Escenarios de asignación de nodos.

  • Con Amazon EMR 5.30.0 y versiones posteriores, si quita la regla de salida predeterminada Permitir todo a 0.0.0.0/ para el grupo de seguridad principal, debe agregar una regla que permita la conectividad TCP de salida a su grupo de seguridad para el acceso al servicio en el puerto 9443. El grupo de seguridad para el acceso al servicio también debe permitir el tráfico TCP entrante en el puerto 9443 desde el grupo de seguridad principal. Para más información sobre la configuración de grupos de seguridad, consulte Grupo de seguridad administrado por Amazon EMR para la instancia principal (subredes privadas).

  • El escalado administrado no admite la característica de etiquetas de nodos de YARN. Evite usar etiquetas de nodos en clústeres con el escalado administrado. Por ejemplo, no permita que los ejecutores se ejecuten solo en los nodos de tarea. Cuando utiliza etiquetas de nodos en sus clústeres de Amazon EMR, es posible que observe que su clúster no se escala verticalmente, lo que puede provocar una ralentización de su aplicación.

  • Puede utilizar AWS CloudFormation para configurar Escalado administrado de Amazon EMR. Para obtener más información, consulte AWS::EMR::Cluster en la Guía del usuario de AWS CloudFormation.

Historial de características

En esta tabla se enumeran las actualizaciones de la capacidad de Escalado administrado de Amazon EMR.

Fecha de lanzamiento de la nueva versión Capability Versiones de Amazon EMR
10 de octubre de 2023 El Escalado administrado está disponible en la región de Asia-Pacífico (Yakarta) ap-southeast-3. 6.14.0 y versiones posteriores
28 de julio de 2023 Mejora del escalado administrado para cambiar a un grupo de instancias de tareas diferente al escalar verticalmente cuando Amazon EMR experimenta un retraso en el escalado vertical con el grupo de instancias actual. 5.34.0 y versiones posteriores, 6.4.0 y versiones posteriores
16 de junio de 2023 Mejora del escalado administrado para detectar los nodos que ejecutan la aplicación maestra, de modo que esos nodos no se reduzcan verticalmente. Para obtener más información, consulte Comprender la estrategia y los escenarios de asignación de nodos. 5.34.0 y versiones posteriores, 6.4.0 y versiones posteriores
21 de marzo de 2022 Se agregó el reconocimiento de datos de mezclas aleatorias de Spark que se usa al reducir verticalmente los clústeres. En el caso de los clústeres de Amazon EMR con Apache Spark y la característica de escalado administrado habilitada, Amazon EMR supervisa de forma continua los ejecutores de Spark y las ubicaciones de datos de mezclas aleatorias intermedias. Con esta información, Amazon EMR solo reduce verticalmente las instancias infrautilizadas que no contienen datos de mezclas aleatorias utilizados activamente. Esto evita el recálculo de los datos de mezclas aleatorias perdidos, lo que ayuda a reducir los costos y a mejorar el rendimiento laboral. Para más información, consulte Spark Programming Guide. 5.34.0 y versiones posteriores, 6.4.0 y versiones posteriores