

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](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

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.

# Resolución de problemas
<a name="dp-troubleshooting"></a>

Cuando tienes un problema con AWS Data Pipeline, el síntoma más común es que una canalización no funciona. Puede utilizar los datos que proporcionan la consola y la CLI para identificar el problema y encontrar una solución.

**Topics**
+ [

# Localización de errores en canalizaciones
](dp-troubleshoot-locate-errors.md)
+ [

# Identificación del clúster de Amazon EMR que da servicio a su canalización
](dp-troubleshoot-emr.md)
+ [

# Interpretación de los detalles de estado de la canalización
](dp-pipeline-status.md)
+ [

# Localización de los registros de error
](dp-error-logs.md)
+ [

# Resolución de problemas comunes
](dp-check-when-run-fails.md)

# Localización de errores en canalizaciones
<a name="dp-troubleshoot-locate-errors"></a>

La AWS Data Pipeline consola es una práctica herramienta para supervisar visualmente el estado de las canalizaciones y localizar fácilmente cualquier error relacionado con la ejecución fallida o incompleta de las canalizaciones.

**Para localizar los errores debidos a que las ejecuciones de las canalizaciones han fallado o no se han completado con la consola**

1. En la página **List Pipelines**, si en la columna **Status** de cualquiera de las instancias de canalización se indica un estado que no es **FINISHED**, eso significa que la canalización está esperando a que se cumpla alguna condición previa o ha fallado y es necesario solucionar los problemas. 

1. En la página **List Pipelines** (Enumerar canalizaciones), localice la canalización de la instancia y seleccione el triángulo situado a la izquierda de la misma para ampliar los detalles.

1. En la parte inferior de este panel, elija **View execution details** (Ver detalles de la ejecución); se abrirá el panel **Instance summary** (Resumen de la instancia) para mostrar los detalles de la instancia seleccionada.

1. En el panel **Instance summary (Resumen de la instancia)**, seleccione el triángulo situado junto a la instancia para ver detalles adicionales sobre ella y, a continuación, elija **Details (Detalles)**, **More... (Más...)**. Si el estado de la instancia seleccionada es **FAILED (FALLIDO)**, el cuadro de detalles tendrá entradas para el mensaje de error, `errorStackTrace` y otra información. Puede guardar esta información en un archivo. Seleccione **Aceptar**.

1. En el panel **Instance summary** (Resumen de la instancia), elija **Intentos** para ver los detalles de cada fila de intento.

1. Para realizar una acción en una instancia incompleta o con errores, seleccione la casilla de verificación situada junto a la instancia. Esto activa las acciones. A continuación, seleccione una acción (`Rerun|Cancel|Mark Finished`).

# Identificación del clúster de Amazon EMR que da servicio a su canalización
<a name="dp-troubleshoot-emr"></a>

Si una `EMRCluster` o `EMRActivity` falla y la información de error proporcionada por la AWS Data Pipeline consola no está clara, puede identificar el clúster de Amazon EMR que sirve a su canalización mediante la consola Amazon EMR. Esto le ayuda a localizar los registros que Amazon EMR proporciona para obtener más información sobre los errores que se producen.

**Para ver información más detallada sobre los errores de Amazon EMR**

1. En la AWS Data Pipeline consola, seleccione el triángulo situado junto a la instancia de canalización para ampliar los detalles de la instancia. 

   

1. Elija **View execution details** (Ver detalles de la ejecución) y seleccione el triángulo situado junto al componente.

1. En la columna **Detalles**, elija **More...** (Más...). Se abrirá la pantalla de información con los detalles del componente. Localice y copie el valor **instanceParent** en la pantalla, por ejemplo: `@EmrActivityId_xiFDD_2017-09-30T21:40:13` 

1. Vaya a la consola de Amazon EMR, busque un clúster cuyo nombre coincida con el valor **instanceParent** y elija **Depurar**. 
**nota**  
Para que funcione el botón de **depuración**, la definición de tu canalización debe haber establecido la EmrActivity `enableDebugging` opción `true` y la `EmrLogUri` opción en una ruta válida.

1. Ahora que sabe que el clúster de Amazon EMR contiene el error que provoca el error de la canalización, siga los [Consejos para la solución de problemas](https://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/Debugging.html) en la *Guía para desarrolladores de Amazon EMR*.

# Interpretación de los detalles de estado de la canalización
<a name="dp-pipeline-status"></a>

Los distintos niveles de estado que se muestran en la AWS Data Pipeline consola y en la CLI indican el estado de una canalización y sus componentes. El estado de la canalización es simplemente una visión general de una canalización; para ver más información, consulte el estado de los componentes de canalización individuales. Para ello, haga clic en una canalización en la consola o recupere los detalles del componente de la canalización utilizando la CLI. Códigos de estado

`ACTIVATING`  
Se está iniciando el componente o recurso, como una instancia EC2.

`CANCELED`  
Un usuario canceló el componente o lo canceló AWS Data Pipeline antes de que pudiera ejecutarse. Esto puede ocurrir automáticamente cuando se produce un error en un componente o recurso diferente del que depende este componente.

`CASCADE_FAILED`  
El componente o recurso se canceló como resultado de un error en cascada en una de sus dependencias, pero es probable que el componente no fuera la fuente original del error.

`DEACTIVATING`  
Se está desactivando la canalización.

`FAILED`  
El componente o recurso ha detectado un error y ha dejado de funcionar. Cuando se produce un error en un componente o recurso, las cancelaciones y los errores pueden repercutir en cascada en otros componentes que dependen de él.

`FINISHED`  
El componente completó el trabajo que se le había asignado.

`INACTIVE`  
Se desactivó la canalización.

`PAUSED`  
El componente estaba en pausa y no está realizando su trabajo en este momento.

`PENDING`  
La canalización está lista para activarse por primera vez.

`RUNNING`  
El recurso está en ejecución y listo para recibir trabajo.

`SCHEDULED`  
El recurso está programado para ejecutarse.

`SHUTTING_DOWN`  
El recurso se cierra después de completar correctamente su trabajo.

`SKIPPED`  
El componente omitió los intervalos de ejecución tras la activación de la canalización mediante una marca de tiempo posterior a la programación actual.

`TIMEDOUT`  
El recurso superó el `terminateAfter` umbral y fue detenido por AWS Data Pipeline. Cuando el recurso alcanza este estado, AWS Data Pipeline ignora los valores `actionOnResourceFailure`, `retryDelay` y`retryTimeout` de ese recurso. Este estado solo se aplica a los recursos.

`VALIDATING`  
La definición de canalización está siendo validada por AWS Data Pipeline.

`WAITING_FOR_RUNNER`  
El componente está esperando a que su cliente trabajador recupere un elemento de trabajo. La relación entre el componente y el cliente del trabajador se controla mediante los campos `runsOn` o `workerGroup` definidos por ese componente.

`WAITING_ON_DEPENDENCIES`  
El componente comprueba que se cumplen sus condiciones previas predeterminadas y configuradas por el usuario antes de realizar su trabajo.

# Localización de los registros de error
<a name="dp-error-logs"></a>

En esta sección se explica cómo encontrar los distintos registros que se AWS Data Pipeline escriben, que puede utilizar para determinar el origen de determinados errores y errores. 

## Registros de canalización
<a name="dp-pipeline-logs"></a>

Le recomendamos que configure las canalizaciones para crear archivos de registro en una ubicación persistente, como en el siguiente ejemplo, en el que se utiliza el campo `pipelineLogUri` en un objeto de una canalización por `Default` para hacer que todos los componentes de la canalización utilicen de manera predeterminada la ubicación del registro de Amazon S3 (puede cambiarlo configurando una ubicación de registro en un componente específico de la canalización).

**nota**  
Task Runner almacena sus registros en otra ubicación de forma predeterminada, que podría no estar disponible cuando termina la canalización y la instancia que ejecuta Task Runner. Para obtener más información, consulte [Verificación del registro de Task Runner](dp-how-task-runner-user-managed.md#dp-verify-task-runner).

Para configurar la ubicación del registro mediante la AWS Data Pipeline CLI en un archivo JSON de canalización, comience el archivo de canalización con el siguiente texto:

```
{ "objects": [
{
  "id":"Default",
  "pipelineLogUri":"s3://amzn-s3-demo-bucket/error_logs"
},
...
```

Después de configurar un directorio de registro de canalización, Task Runner crea una copia de los registros en el directorio, con el mismo formato y los mismos nombres de archivo que se describen en la sección anterior sobre los registros de Task Runner.

## Registros de trabajos de Hadoop y de pasos de Amazon EMR
<a name="dp-hadoop-logs"></a>

Con cualquier actividad basada en Hadoop, por ejemplo [HadoopActivity](dp-object-hadoopactivity.md)[HiveActivity](dp-object-hiveactivity.md), o [PigActivity](dp-object-pigactivity.md) puede ver los registros de trabajos de Hadoop en la ubicación devuelta en el espacio de ejecución,. hadoopJobLog [EmrActivity](dp-object-emractivity.md)tiene sus propias funciones de registro y esos registros se almacenan en la ubicación elegida por Amazon EMR y devueltos por el espacio de tiempo de ejecución,. emrStepLog Para obtener más información, consulte [Ver archivos de registro](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-manage-view-web-log-files.html) en la Guía para desarrolladores de Amazon EMR. 

# Resolución de problemas comunes
<a name="dp-check-when-run-fails"></a>

En este tema se describen varios síntomas de AWS Data Pipeline problemas y los pasos recomendados para solucionarlos. 

**Topics**
+ [

## Canalización bloqueada en estado pendiente
](#dp-pipeline-doesnt-start)
+ [

## Componente de la canalización bloqueado en el estado Waiting for Runner
](#dp-waiting-for-runner)
+ [

## Componente de la canalización bloqueado en el estado WAITING\$1ON\$1DEPENDENCIES
](#dp-runs-stay-pending)
+ [

## No se ejecuta cuando está programada
](#dp-run-doesnt-start-scheduled)
+ [

## Los componentes de la canalización se ejecutan en el orden incorrecto
](#dp-out-of-order)
+ [

## El clúster de EMR falla con un error: el token de seguridad que se incluye en la solicitud no es válido
](#dp-securitytoken)
+ [

## Permisos insuficientes para obtener acceso a los recursos
](#dp-insufficient-permissions)
+ [

## Código de estado: 400 Código de error: PipelineNotFoundException
](#dp-error-code-400)
+ [

## La creación de una canalización produce un error del token de seguridad
](#dp-bad-token)
+ [

## No se pueden ver los detalles de la canalización en la consola
](#dp-no-details-shown)
+ [

## Error in remote runner Status Code: 404, AWS Service: Amazon S3
](#dp-error-code-s3-404)
+ [

## Acceso denegado: no está autorizado a realizar la función datapipeline:
](#dp-access-denied)
+ [

## Amazon EMR más antiguo AMIs puede crear datos falsos para archivos CSV de gran tamaño
](#AMIs-false-data-large-CSV)
+ [

## AWS Data Pipeline Límites crecientes
](#dp-increase-limits)

## Canalización bloqueada en estado pendiente
<a name="dp-pipeline-doesnt-start"></a>

Si una canalización aparece en el estado PENDING, indica que una canalización aún no se ha activado o la activación ha fallado debido a un error en su definición. Asegúrese de no haber recibido ningún error al enviar la canalización mediante la AWS Data Pipeline CLI o al intentar guardar o activar la canalización mediante la AWS Data Pipeline consola. Además, compruebe que la canalización tiene una definición válida.

Para ver la definición de la canalización en la pantalla mediante la CLI:

```
aws datapipeline --get-pipeline-definition --pipeline-id df-EXAMPLE_PIPELINE_ID
```

Asegúrese de que la definición de la canalización está completa, compruebe las llaves de cierre, verifique las comas necesarias, compruebe si faltan referencias y si hay otros errores de sintaxis. Lo mejor es utilizar un editor de texto que permita validar visualmente la sintaxis de los archivos JSON.

## Componente de la canalización bloqueado en el estado Waiting for Runner
<a name="dp-waiting-for-runner"></a>

Si la canalización se encuentra en el estado SCHEDULED y una o varias tareas aparecen atascadas en el estado WAITING\$1FOR\$1RUNNER, asegúrese de que ha establecido un valor válido en los campos runsOn o workerGroup para esas tareas. Si ambos valores están vacíos o no existen, la tarea no se puede iniciar, ya que no existe una asociación entre la tarea y un trabajador para llevar a cabo las tareas. En esta situación, se ha definido el trabajo, pero no se ha definido qué equipo realiza dicho trabajo. Si procede, compruebe que el valor de workerGroup asignado al componente de la canalización sea exactamente el mismo nombre, con las mismas mayúsculas y minúsculas, que el valor de workerGroup que ha configurado para Task Runner. 

**nota**  
Si proporciona un valor runsOn y workerGroup existe, se hace caso omiso de workerGroup.

Otra posible causa de este problema es que el punto final y la clave de acceso proporcionados a Task Runner no son los mismos que los de la AWS Data Pipeline consola o el equipo en el que están instaladas las herramientas AWS Data Pipeline CLI. Es posible que haya creado nuevas canalizaciones sin errores visibles, pero Task Runner sondea la posición errónea debido a la diferencia de credenciales o sondea la ubicación correcta con permisos insuficientes para identificar y ejecutar el trabajo especificado en la definición de la canalización. 

## Componente de la canalización bloqueado en el estado WAITING\$1ON\$1DEPENDENCIES
<a name="dp-runs-stay-pending"></a>

Si la canalización se encuentra en el estado `SCHEDULED` y una o varias tareas aparecen atascadas en el estado `WAITING_ON_DEPENDENCIES`, asegúrese de que se han cumplido las condiciones previas iniciales de la canalización. Si las condiciones previas del primer objeto de la cadena de lógica no se cumplen, ninguno de los objetos que dependen de ese primer objeto podrá salir del estado `WAITING_ON_DEPENDENCIES`. 

Por ejemplo, tenga en cuenta el siguiente fragmento de una definición de canalización. En este caso, el `InputData` objeto tiene la condición previa «Listo», que especifica que los datos deben existir antes de que el InputData objeto esté completo. Si los datos no existen, el InputData objeto permanece en ese `WAITING_ON_DEPENDENCIES` estado esperando a que estén disponibles los datos especificados en el campo de ruta. Todos los objetos que dependan del InputData mismo modo permanecen en un `WAITING_ON_DEPENDENCIES` estado esperando a que el InputData objeto alcance ese `FINISHED` estado. 

```
{
    "id": "InputData",
    "type": "S3DataNode",
    "filePath": "s3://elasticmapreduce/samples/wordcount/wordSplitter.py",
    "schedule":{"ref":"MySchedule"},
    "precondition": "Ready"      
},
{
    "id": "Ready",
    "type": "Exists"
...
```

 Además, compruebe que los objetos tengan los permisos adecuados para acceder a los datos. En el ejemplo anterior, si la información del campo de credenciales no tuviera permisos para acceder a los datos especificados en el campo de ruta, el InputData objeto se quedaría atascado en un `WAITING_ON_DEPENDENCIES` estado dado que no puede acceder a los datos especificados en el campo de ruta, incluso si esos datos existen. 

También es posible que un recurso que se comunica con Amazon S3 no tenga asociada una dirección IP pública. Por ejemplo, un `Ec2Resource` en una subred pública debe tener asociada una dirección IP pública. 

Por último, en determinadas condiciones, las instancias de recursos pueden alcanzar el estado `WAITING_ON_DEPENDENCIES` mucho antes del inicio programado de sus actividades asociadas, lo que puede dar la impresión de que el recurso o la actividad fallan.

## No se ejecuta cuando está programada
<a name="dp-run-doesnt-start-scheduled"></a>

Compruebe que ha elegido el tipo de programación correcta que determina si su tarea comienza al principio del intervalo de programación (tipo de programación de estilo cron) o al final del intervalo de programación (tipo de programación de serie temporal).

Además, compruebe que ha especificado correctamente las fechas en los objetos de la programación y que los endDateTime valores startDateTime y están en formato UTC, como en el ejemplo siguiente:

```
{
    "id": "MySchedule",
    "startDateTime": "2012-11-12T19:30:00",
    "endDateTime":"2012-11-12T20:30:00",
    "period": "1 Hour",
    "type": "Schedule"
},
```

## Los componentes de la canalización se ejecutan en el orden incorrecto
<a name="dp-out-of-order"></a>

Es posible que se haya dado cuenta de que las horas de inicio y finalización de la ejecución de los componentes de la canalización están en el orden incorrecto o en una secuencia que no es la esperada. Es importante entender que los componentes de la canalización pueden comenzar a ejecutarse simultáneamente si se cumplen las condiciones previas en el momento del arranque. En otras palabras, los componentes de canalización no se ejecutan de forma secuencial de forma predeterminada; si necesita una orden de ejecución específica, debe controlar el orden de ejecución con condiciones previas y campos `dependsOn`. 

Compruebe que está utilizando el campo `dependsOn` que se ha rellenado con una referencia a los componentes de la canalización con los requisitos previos correctos y que todos los indicadores necesarios entre los componentes están presentes para lograr el orden que necesita. 

## El clúster de EMR falla con un error: el token de seguridad que se incluye en la solicitud no es válido
<a name="dp-securitytoken"></a>

Verifique sus roles de IAM, políticas y relaciones de confianza, tal y como se describe en [Funciones de IAM para AWS Data Pipeline](dp-iam-roles.md).

## Permisos insuficientes para obtener acceso a los recursos
<a name="dp-insufficient-permissions"></a>

Los permisos que establezca en las funciones de IAM determinan si AWS Data Pipeline puede acceder a los clústeres de EMR y a las instancias de EC2 para ejecutar sus canalizaciones. Además, IAM proporciona el concepto de las relaciones de confianza que van más allá para permitir la creación de recursos en su nombre. Por ejemplo, cuando crea una canalización que utiliza una instancia de EC2 para ejecutar un comando para mover datos, AWS Data Pipeline puede aprovisionar esta instancia de EC2 automáticamente. Si tiene problemas, especialmente los relacionados con recursos a los que puede acceder manualmente, pero a los que AWS Data Pipeline no puede acceder, compruebe sus funciones, políticas y relaciones de confianza de IAM tal y como se describe en. [Funciones de IAM para AWS Data Pipeline](dp-iam-roles.md)

## Código de estado: 400 Código de error: PipelineNotFoundException
<a name="dp-error-code-400"></a>

Este error significa que es posible que sus funciones predeterminadas de IAM no tengan los permisos necesarios AWS Data Pipeline para funcionar correctamente. Para obtener más información, consulte [Funciones de IAM para AWS Data Pipeline](dp-iam-roles.md). 

## La creación de una canalización produce un error del token de seguridad
<a name="dp-bad-token"></a>

Recibe el siguiente mensaje de error cuando intenta crear una canalización:

Failed to create pipeline with 'pipeline\$1name'. Error: UnrecognizedClientException - El token de seguridad incluido en la solicitud no es válido.

## No se pueden ver los detalles de la canalización en la consola
<a name="dp-no-details-shown"></a>

El filtro de canalización de la AWS Data Pipeline consola se aplica a la fecha de inicio *programada* de una canalización, independientemente de cuándo se envió la canalización. Es posible enviar una nueva canalización utilizando una fecha de inicio programada que está en el pasado, que es posible que no muestre el filtro de fecha predeterminado. Para ver los detalles de la canalización, cambie el filtro de fecha para asegurarse de que la fecha de inicio de la canalización programada se ajusta al filtro de intervalos de fechas. 

## Error in remote runner Status Code: 404, AWS Service: Amazon S3
<a name="dp-error-code-s3-404"></a>

 Este error significa que Task Runner no ha podido tener acceso a los archivos en Amazon S3. Verifique lo siguiente: 
+  Si se han establecido correctamente las credenciales. 
+  Si el bucket de Amazon S3 al que está intentando acceder existe 
+  Si está autorizado a acceder al bucket de Amazon S3 

## Acceso denegado: no está autorizado a realizar la función datapipeline:
<a name="dp-access-denied"></a>

En los registros de Task Runner, es posible que vea un error que es similar a lo siguiente: 
+  ERROR Status Code: 403 
+  Servicio de AWS: DataPipeline 
+  Código de error de AWS: AccessDenied 
+ Mensaje de error de AWS: El usuario: arn:aws:sts: :xxxxxxxxxxxx:federated-user/i-xxxxxxxx no está autorizado a realizar: datapipeline:. PollForTask

**nota**  
En este PollForTask mensaje de error, puede sustituirse por los nombres de otros AWS Data Pipeline permisos.

Este mensaje de error indica que la función de IAM que especificó necesita los permisos adicionales necesarios para interactuar con AWS Data Pipeline ella. Asegúrese de que su política de funciones de IAM contenga las siguientes líneas, sustituyéndolas por el nombre del permiso que desee añadir (utilice \$1 para conceder todos los permisos). PollForTask Para obtener más información acerca de cómo crear un nuevo rol de IAM; y aplicarle una política, consulte la [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html) en la guía de *Uso de IAM*. 

```
{
"Action": [ "datapipeline:PollForTask" ],
"Effect": "Allow",
"Resource": ["*"]
}
```

## Amazon EMR más antiguo AMIs puede crear datos falsos para archivos CSV de gran tamaño
<a name="AMIs-false-data-large-CSV"></a>

En Amazon EMR, versiones AMIs anteriores a la versión 3.9 (3.8 y versiones anteriores) AWS Data Pipeline utilizan una configuración personalizada InputFormat para leer y escribir archivos CSV para usarlos con MapReduce trabajos. Esto se utiliza cuando el servicio utiliza tablas provisionales para enviar y recibir datos de Amazon S3. Se InputFormat descubrió un problema por el cual la lectura de registros de archivos CSV de gran tamaño podía provocar que las tablas no se copiaran correctamente. Este problema se solucionó en las versiones de Amazon EMR posteriores. Utilice la AMI 3.9 de Amazon EMR o la versión 4.0.0 o superior de Amazon EMR.

## AWS Data Pipeline Límites crecientes
<a name="dp-increase-limits"></a>

Ocasionalmente, es posible que supere los límites específicos AWS Data Pipeline del sistema. Por ejemplo, el límite de canalización predeterminado es de 20 canalizaciones con 50 objetos en cada una de ellas. Si descubre que necesita más canalizaciones de las que marca el límite, considere la posibilidad de combinar varias canalizaciones para crear menos con más objetos en cada una de ellas. Para obtener más información sobre los límites de AWS Data Pipeline , consulte [AWS Data Pipeline Límites](dp-limits.md). Sin embargo, si no puede solucionar el problema de los límites utilizando la técnica de la combinación de canalizaciones, aumente su capacidad utilizando el siguiente formulario: [Data Pipeline Limit Increase](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-datapipe).