AWS Data Pipeline ya no está disponible para nuevos clientes. Los clientes actuales de AWS Data Pipeline pueden seguir utilizando el servicio con normalidad. Más información
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.
Errores en cascada y repeticiones de ejecuciones
AWS Data Pipeline le permite configurar el comportamiento de los objetos de canalización cuando se produce un error en una dependencia o cuando un usuario la cancela. Puede asegurarse de que los errores se propaguen en cascada a otros objetos de canalización (consumidores), para evitar esperas indefinidas. Todas las actividades, nodos de datos y condiciones previas tiene un campo llamado failureAndRerunMode
con un valor predeterminado de none
. Para habilitar los errores en cascada, establezca el campo failureAndRerunMode
en cascade
.
Cuando este campo está habilitado, se producen errores en cascada si un objeto de canalización está bloqueado en el estado WAITING_ON_DEPENDENCIES
y las dependencias han producido un error sin ningún comando pendiente. Durante un error en cascada, se producen los eventos siguientes:
-
Cuando un objeto produce un error, sus consumidores se establecen en
CASCADE_FAILED
y las condiciones previas del objeto original y de sus consumidores se establecen enCANCELED
. -
Los objetos cuyo estado sea ya
FINISHED
,FAILED
oCANCELED
no se tienen en cuenta.
El error en cascada no funciona en dependencias de objetos con errores (ascendentes) excepto para condiciones previas asociadas con el objeto con errores original. Los objetos de canalización afectados por un error en cascada pueden disparar reintentos o acciones posteriores tales como onFail
.
Los efectos detallados de un error en cascada dependen del tipo de objeto.
Actividades
Una actividad cambia a CASCADE_FAILED
si cualquiera de sus dependencias produce un error y, posteriormente, desencadena un error en cascada en los consumidores de la actividad. Si se produce un error en un recurso del que depende una actividad, la actividad adopta el estado CANCELED
y todos sus consumidores cambian a CASCADE_FAILED
.
Nodos de datos y condiciones previas
Si se configura un nodo de datos como salida de una actividad que produce un error, el nodo de datos cambia al estado CASCADE_FAILED
. El error de un nodo de datos se propaga a las condiciones previas asociadas, que cambian al estado CANCELED
.
Recursos
Si los objetos que dependen de un recurso se encuentran en el estado FAILED
y el propio recurso está en el estado WAITING_ON_DEPENDENCIES
, el recurso cambia al estado FINISHED
.
Volver a ejecutar objetos con errores en cascada
De forma predeterminada, volver a ejecutar cualquier actividad o nodo de datos solo vuelve a ejecutar el recurso asociado. Sin embargo, ajustar el campo failureAndRerunMode
en cascade
en un objeto de canalización permite volver a ejecutar un comando en un objeto de destino para propagarlo a todos los consumidores, en las siguientes condiciones:
-
Los consumidores del objeto de destino están en el estado
CASCADE_FAILED
. -
Las dependencias del objeto de destino no tienen comandos pendientes de volver a ejecutarse.
-
Las dependencias del objeto de destino no están en el estado
FAILED
,CASCADE_FAILED
niCANCELED
.
Si trata de volver a ejecutar un objeto CASCADE_FAILED
y cualquiera de sus dependencias está en estado FAILED
, CASCADE_FAILED
o CANCELED
, la nueva ejecución producirá un error y devolverá el objeto al estado CASCADE_FAILED
. Para volver a ejecutar correctamente el objeto que ha producido un error, debe seguir el error en sentido ascendente a lo largo de la cadena de dependencia para encontrar el origen del error y volver a ejecutar ese objeto en su lugar. Cuando se emite un comando de nueva ejecución en un recurso, también se intenta volver a ejecutar los objetos que dependen de él.
Error en cascada y reposiciones
Si habilitas los errores en cascada y tienes una canalización que genera muchos rellenados, los errores de tiempo de ejecución de la canalización pueden provocar que los recursos se creen y eliminen en rápida sucesión sin realizar un trabajo útil. AWS Data Pipeline intenta avisarle sobre esta situación con el siguiente mensaje de advertencia al guardar una canalización:
Esto se debe a que un error en cascada puede establecer rápidamente actividades posteriores Pipeline_object_name
has 'failureAndRerunMode' field
set to 'cascade' and you are about to create a backfill with scheduleStartTime
start_time
. This can result in rapid creation of
pipeline objects in case of failures. CASCADE_FAILED
y cerrar los clústeres y EC2 recursos de EMR que ya no son necesarios. Le recomendamos que pruebe las canalizaciones con intervalos de tiempo cortos para limitar los efectos de esta situación.