Uso del escalado administrado en Amazon EMR - 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.

Uso del escalado administrado en Amazon EMR

importante

Le recomendamos encarecidamente que utilice la versión más reciente de Amazon EMR (Amazon EMR 7.7.0) para gestionar el escalado. 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.

Descripció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

  • A continuación Regiones de AWS, el escalado gestionado de Amazon EMR está disponible con Amazon EMR 6.14.0 y versiones posteriores:

    • Europa (España) (eu-south-2)

  • A continuación Regiones de AWS, el escalado gestionado de Amazon EMR está disponible con Amazon EMR 5.30.0 y 6.1.0 y versiones posteriores:

    • Este de EE. UU. (Norte de Virginia) (us-east-1)

    • Este de EE. UU. (Ohio) (us-east-2)

    • Oeste de EE. UU. (Oregón) (us-west-2)

    • EE. UU. Oeste (Norte de California) (us-west-1)

    • África (Ciudad del Cabo) (af-south-1)

    • Asia-Pacífico (Hong Kong) (ap-east-1)

    • Asia Pacífico (Bombay) (ap-south-1)

    • Asia Pacífico (Hyderabad) (ap-south-2)

    • Asia-Pacífico (Seúl) (ap-northeast-2)

    • Asia-Pacífico (Singapur) (ap-southeast-1)

    • Asia-Pacífico (Sídney) (ap-southeast-2)

    • Asia-Pacífico (Yakarta) (ap-southeast-3)

    • Asia-Pacífico (Tokio) (ap-northeast-1)

    • Asia Pacific (Osaka) (ap-northeast-3)

    • Canadá (centro) (ca-central-1)

    • América del Sur (São Paulo) (sa-east-1)

    • Europa (Fráncfort) (eu-central-1)

    • Europa (Zúrich) (eu-central-2)

    • Europa (Irlanda) (eu-west-1)

    • Europa (Londres) (eu-west-2)

    • UE (Milán) (eu-south-1)

    • UE (París) (eu-west-3)

    • Europa (Estocolmo) (eu-north-1)

    • Israel (Tel Aviv) (il-central-1)

    • Medio Oriente (EAU) (me-central-1)

    • China (Pekín) (cn-north-1)

    • China (Ningxia) (cn-northwest-1)

    • AWS GovCloud (EE. UU.-Este) (-1) us-gov-east

    • AWS GovCloud (EEUU-Oeste) (us-gov-west-1)

  • Escalado administrado de Amazon EMR solo funciona con aplicaciones YARN, como Spark, Hadoop, Hive y Flink. No admite aplicaciones que no estén basadas 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 puede escalar el nodo principal después de la configuración inicial.

  • Mínimo (MinimumCapacityUnits): el límite inferior de la EC2 capacidad 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 EC2 capacidad 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 EC2 capacidad permitida para el tipo de mercado bajo demanda en 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.

  • Número máximo de nodos principales (MaximumCoreCapacityUnits) (opcional): límite superior de la EC2 capacidad 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 gestionado se admite en las versiones limitadas Regiones de AWS y 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 Comportamiento y opciones de almacenamiento de instancias en Amazon EMR.

  • CloudWatch Las métricas de Amazon son fundamentales para que funcione el escalado gestionado de Amazon EMR. Te recomendamos que supervises de cerca CloudWatch las estadísticas de Amazon para asegurarte de que no falten datos. Para obtener más información sobre cómo configurar CloudWatch las alarmas para detectar las métricas faltantes, consulta Uso de CloudWatch las alarmas de Amazon.

  • 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).

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

  • Si utiliza nodos Spot, considere la posibilidad de utilizar etiquetas de nodo para evitar que Amazon EMR elimine los procesos de aplicación cuando Amazon EMR elimine los nodos Spot. Para obtener más información sobre las etiquetas de nodos, consulte Nodos de tareas.

  • No se admite el etiquetado de nodos de forma predeterminada en Amazon EMR, versión 6.15 o versiones anteriores. Para más información, consulte Descripción de los nodos principales, básicos y de tareas.

  • Si utiliza Amazon EMR, versión 6.15 o versiones anteriores, solo puede asignar etiquetas de nodo por tipo de nodo, como nodos básicos y nodos de tareas. Sin embargo, si utiliza Amazon EMR versión 7.0 o posteriores, puede configurar etiquetas de nodos por tipo de nodo y tipo de mercado, como “bajo demanda” y “Spot”.

  • Si la demanda de procesos de aplicación aumenta y la demanda de ejecutores disminuye al restringir el proceso de aplicación a los nodos básicos, puede volver a añadir los nodos básicos y eliminar los nodos de tareas en la misma operación de cambio de tamaño. Para obtener más información, consulte Descripción de la estrategia y los escenarios de asignación de nodos.

  • Amazon EMR no etiqueta los nodos de tareas, por lo que no puede configurar las propiedades de YARN para restringir los procesos de la aplicación únicamente a los nodos de tareas. Sin embargo, si desea utilizar los tipos de mercado como etiquetas de nodos, puede utilizar las etiquetas SPOT o ON_DEMAND para ubicar los procesos de la aplicación. No recomendamos utilizar nodos de Spot para los procesos principales de la aplicación.

  • Al utilizar etiquetas de nodo, el total de unidades en ejecución del clúster puede superar temporalmente el máximo del conjunto del cómputo establecido en su política de escalado administrado, mientras que Amazon EMR retira algunas de sus instancias. El total de unidades solicitadas siempre se mantendrá igual o inferior al cómputo máximo de su política.

  • El escalado administrado solo admite las etiquetas de nodo ON_DEMAND y SPOT o CORE y TASK. No se admiten las etiquetas de nodo personalizadas.

  • Amazon EMR crea etiquetas de nodo al crear el clúster y aprovisionar los recursos. Amazon EMR no admite la adición de etiquetas de nodo al volver a configurar el clúster. Tampoco puede modificar las etiquetas de los nodos al configurar el escalado administrado después de lanzar el clúster.

  • El escalado administrado escala los nodos básicos y de tareas de forma independiente en función del proceso de aplicación y de la demanda del ejecutor. Para evitar problemas de pérdida de datos en el HDFS durante la reducción vertical básica, siga la práctica estándar para los nodos básicos. Para obtener más información sobre las prácticas recomendadas sobre los nodos básicos y la replicación de HDFS, consulte Consideraciones y prácticas recomendadas.

  • No puede colocar tanto el proceso de la aplicación como los ejecutores únicamente en el nodo core o ON_DEMAND. Si quiere añadir tanto el proceso de la aplicación como los ejecutores en uno de los nodos, no utilice la configuración yarn.node-labels.am.default-node-label-expression.

    Por ejemplo, para colocar el proceso de la aplicación y los ejecutores en nodos ON_DEMAND, defina el cómputo máximo en el mismo valor que el máximo del nodo ON_DEMAND. Elimine también la configuración yarn.node-labels.am.default-node-label-expression.

    Para añadir tanto el proceso de la aplicación como los ejecutores en los nodos core, elimine la configuración yarn.node-labels.am.default-node-label-expression.

  • Cuando utilice el escalado administrado con etiquetas de nodo, establezca la propiedad yarn.scheduler.capacity.maximum-am-resource-percent: 1 si planea ejecutar varias aplicaciones en paralelo. De este modo, se asegura de que los procesos de su aplicación utilicen al máximo los nodos ON_DEMAND o CORE disponibles.

  • Si utiliza el escalado administrado con etiquetas de nodos, establezca la propiedad yarn.resourcemanager.decommissioning.timeout en un valor que sea más largo que el de la aplicación que se ejecute durante más tiempo en el clúster. De este modo, se reduce la posibilidad de que el escalado administrado por Amazon EMR necesite reprogramar las aplicaciones para que vuelvan a ponerse en marcha los nodos CORE o ON_DEMAND.

Historial de características

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

Fecha de publicación Funcionalidad Versiones de Amazon EMR
20 de noviembre de 2024 El escalado gestionado está disponible en las regiones de il-central-1 Israel (Tel Aviv), me-central-1 Oriente Medio (Emiratos Árabes Unidos) y ap-northeast-3 Asia Pacífico (Osaka). 5.30.0 y 6.1.0 y versiones posteriores
15 de noviembre de 2024 El escalado gestionado está disponible en la región de eu-central-2 Europa (Zúrich). 5.30.0 y 6.1.0 y versiones posteriores
20 de agosto de 2024 Las etiquetas de nodos ahora están disponibles en el escalado administrado, por lo que puede etiquetar las instancias según el tipo de mercado o el tipo de nodo para mejorar el escalado automático. 7.2.0 y versiones posteriores
31 de marzo de 2024 El escalado administrado está disponible en la región ap-south-2: Asia-Pacífico (Hyderabad). 6.14.0 y versiones posteriores
13 de febrero de 2024 El escalado administrado está disponible en la región eu-south-2: Europa (España). 6.14.0 y versiones posteriores
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 Descripción de la estrategia y los escenarios de asignación de nodos de Amazon EMR. 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