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
oCapacityScheduler
. Por ejemplo, puede utilizarFairScheduler
con un conjuntoqueueMaxAppsDefault
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, aunqueStepConcurrencyLevel
se haya establecido en10
. 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 queTERMINATE_CLUSTER ActionOnFailure
se active, peroCANCEL_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.