Consideraciones para ejecutar varios pasos en paralelo al enviar un trabajo a Amazon EMR - Amazon EMR

Consideraciones para ejecutar varios pasos en paralelo al enviar un trabajo a Amazon EMR

La ejecución de varios pasos en paralelo al enviar un trabajo a Amazon EMR requiere decisiones preliminares sobre la planificación de los recursos y las expectativas en relación con el comportamiento del clúster. A continuación, se analizan en detalle.

  • Los pasos que se ejecutan en paralelo pueden completarse en cualquier orden, pero los pasos pendientes de la cola pasan al estado de ejecución en el orden en que se enviaron.

  • Al seleccionar un nivel de simultaneidad de pasos para el clúster, debe considerar si el tipo de instancia del nodo principal cumple o no los requisitos de memoria de las cargas de trabajo de usuario. El proceso de ejecución del paso principal se ejecuta en el nodo principal para cada paso. Para ejecutar varios pasos en paralelo, se requiere más memoria y utilización de CPU en el nodo principal que si los pasos se ejecutan de uno en uno.

  • Para gestionar los recursos y realizar las programaciones complejas de los pasos simultáneos, puede utilizar las funciones de programación de YARN como FairScheduler o CapacityScheduler. Por ejemplo, puede utilizar FairScheduler con un conjunto queueMaxAppsDefault para evitar que se ejecuten más de un determinado número de trabajos a la vez.

  • El nivel de simultaneidad de pasos está sujeto a las configuraciones de los administradores de recursos. Por ejemplo, si YARN está configurado con un paralelismo de solo 5, entonces únicamente podrá tener cinco aplicaciones YARN ejecutándose en paralelo, aunque StepConcurrencyLevel se haya establecido en 10. Para obtener más información sobre la configuración de los administradores de recursos, consulte Configurar aplicaciones en la Guía de publicación de Amazon EMR.

  • No puede agregar un paso con un valor de ActionOnFailure que no sea CONTINUE mientras el nivel de simultaneidad de pasos del clúster sea superior a 1.

  • Si el nivel de simultaneidad de pasos de un clúster es superior a uno, la característica ActionOnFailure del paso no se activará.

  • Si un clúster tiene un nivel de simultaneidad de pasos de 1, pero tiene varios pasos en ejecución, es posible que TERMINATE_CLUSTER ActionOnFailure se active, pero CANCEL_AND_WAIT ActionOnFailure no se activará. Este caso de periferia se presenta cuando el nivel de simultaneidad de los pasos del clúster era superior a uno, pero se reducía cuando se ejecutaban varios pasos.

  • Puede usar el escalado automático de EMR para escalar en sentido ascendente o descendente en función de los recursos de YARN y así evitar la contención de recursos. Para obtener información, consulte Uso del escalado automático con una política personalizada para grupos de instancias en la Guía de administración de Amazon EMR.

  • Cuando se disminuye el nivel de simultaneidad de pasos, EMR permite que se completen todos los pasos en ejecución antes de reducir el número de pasos. Si los recursos se agotan porque el clúster está ejecutando demasiados pasos simultáneos, recomendamos cancelar manualmente los pasos en ejecución para liberar recursos.