Risoluzione dei problemi più comuni - AWS Data Pipeline

AWS Data Pipeline non è più disponibile per i nuovi clienti. I clienti esistenti di AWS Data Pipeline possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi più comuni

Questo argomento offre vari sintomi dei problemi di AWS Data Pipeline e i passaggi consigliati per risolverli.

Pipeline bloccata in stato Pending

Una pipeline che sembra bloccata in stato PENDING indica che una pipeline non è stata ancora attivata o l'attivazione non è riuscita a causa di un errore nella definizione della pipeline. Verificare di non aver ricevuto eventuali errori quando è stata inviata la pipeline utilizzando l'interfaccia a riga di comando AWS Data Pipeline o durante il tentativo di salvare o attivare la pipeline tramite la console AWS Data Pipeline. Inoltre, controllare che la pipeline abbia una definizione valida.

Per visualizzare la definizione della pipeline sullo schermo utilizzando l'interfaccia a riga di comando:

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

Verificare che la definizione della pipeline sia completa, controllare le parentesi di chiusura e le virgole obbligatorie, verificare eventuali riferimenti mancanti e altri errori di sintassi. È consigliabile utilizzare un editor di testo in grado di convalidare visivamente la sintassi dei file JSON.

Componente della pipeline bloccato nello stato Waiting for Runner

Se la pipeline è nello stato SCHEDULED e una o più operazioni appaiono bloccate nello stato WAITING_FOR_RUNNER, verificare di aver impostato un valore valido per i campi runsOn o workerGroup per tali attività. Se entrambi i valori sono vuoti o mancanti, l'attività non può iniziare perché non vi è alcuna associazione tra l'attività e il lavoratore per eseguire l'attività. In questo caso, hai definito il lavoro ma non il computer che deve eseguire il lavoro. Se applicabile, verifica che il valore WorkerGroup assegnato al componente pipeline sia esattamente lo stesso nome e maiuscolo del valore WorkerGroup configurato per Task Runner.

Nota

Se si fornisce un valore runsOn e workerGroup esiste, workerGroup verrà ignorato.

Un'altra potenziale causa di questo problema è che l'endpoint e la chiave di accesso forniti a Task Runner non sono gli stessi della AWS Data Pipeline console o del computer in cui sono installati gli strumenti AWS Data Pipeline CLI. È possibile che tu abbia creato nuove pipeline senza errori visibili, ma Task Runner esegue il sondaggio nella posizione sbagliata a causa della differenza nelle credenziali o esegue il sondaggio sulla posizione corretta con autorizzazioni insufficienti per identificare ed eseguire il lavoro specificato dalla definizione della pipeline.

Componente della pipeline bloccato nello stato WAITING_ON_DEPENDENCIES

Se la pipeline è nello stato SCHEDULED e una o più attività appaiono bloccate nello stato WAITING_ON_DEPENDENCIES, verificare che le precondizioni iniziali della pipeline siano state soddisfatte. Se le precondizioni del primo oggetto nella catena logica non sono state soddisfatte, nessuno degli oggetti che dipendono da quel primo oggetto possono essere spostati dallo stato WAITING_ON_DEPENDENCIES.

Ad esempio, considerare il seguente estratto da una definizione di pipeline. In questo caso, l'InputDataoggetto ha una precondizione «Pronto» che specifica che i dati devono esistere prima che l'InputDataoggetto sia completo. Se i dati non esistono, l'InputDataoggetto rimane nello WAITING_ON_DEPENDENCIES stato, in attesa che i dati specificati dal campo del percorso diventino disponibili. Tutti gli oggetti che dipendono InputData allo stesso modo da rimangono in uno WAITING_ON_DEPENDENCIES stato in attesa che l'InputDataoggetto raggiunga lo FINISHED stato.

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

Inoltre, controllare che gli oggetti abbiano le autorizzazioni richieste per accedere ai dati. Nell'esempio precedente, se le informazioni nel campo delle credenziali non disponessero delle autorizzazioni per accedere ai dati specificati nel campo del percorso, l'InputDataoggetto si bloccherebbe in uno WAITING_ON_DEPENDENCIES stato perché non può accedere ai dati specificati dal campo percorso, anche se tali dati esistono.

È anche possibile che a una risorsa che comunica con Amazon S3 non sia associato un indirizzo IP pubblico. Ad esempio, un Ec2Resource in una sottorete pubblica deve disporre di un indirizzo IP pubblico associato.

Infine, in determinate condizioni, le istanze relative a risorse possono raggiungere lo stato WAITING_ON_DEPENDENCIES molto prima rispetto a quando è programmato l'avvio delle attività associate, dando l'impressione che la risorsa o l'attività stia fallendo.

L'esecuzione non inizia quando è stata programmata

Controllare di aver scelto il tipo di pianificazione corretta che stabilisce se l'attività viene avviata all'inizio dell'intervallo di pianificazione (Tipo di pianificazione stile Cron) o al termine dell'intervallo di pianificazione (Tipo di pianificazione serie temporali).

Inoltre, verifica di aver specificato correttamente le date negli oggetti della pianificazione e che i endDateTime valori startDateTime and siano in formato UTC, come nell'esempio seguente:

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

Componenti della pipeline eseguiti in ordine errato

È possibile notare che gli orari di inizio e di fine dei componenti della pipeline vengano eseguiti nell'ordine errato o in un'altra sequenza rispetto a quella prevista. È importante capire che l'esecuzione dei componenti della pipeline può iniziare contemporaneamente se le loro precondizioni sono soddisfatte al momento dell'avvio. In altre parole, i componenti della pipeline non vengono eseguiti in sequenza per impostazione predefinita; se è necessario un determinato ordine di esecuzione, è necessario controllare l'ordine di esecuzione con le precondizioni e i campi dependsOn.

Verificare che si sta utilizzando il campo dependsOn popolato con un riferimento ai componenti della pipeline dei prerequisiti corretti e che tutti i puntatori necessari tra componenti siano presenti per ottenere l'ordine richiesto.

Il cluster EMR ha esito negativo con l'errore: "The security token included in the request is invalid" ("Il token di sicurezza incluso nella richiesta non è valido")

Verifica i tuoi ruoli, le politiche e le relazioni di fiducia IAM come descritto inRuoli IAM per AWS Data Pipeline.

Autorizzazioni insufficienti per accedere alle risorse

Le autorizzazioni impostate sui ruoli IAM determinano se è AWS Data Pipeline possibile accedere ai cluster EMR e alle istanze EC2 per eseguire le pipeline. Inoltre, IAM fornisce il concetto di relazioni di fiducia che vanno oltre per consentire la creazione di risorse per tuo conto. Ad esempio, quando si crea una pipeline che utilizza un'istanza EC2 per eseguire un comando e spostare i dati,AWS Data Pipeline può effettuare il provisioning di questa istanza EC2 per conto dell'utente. Se riscontri problemi, in particolare quelli che riguardano risorse a cui puoi accedere manualmente ma AWS Data Pipeline non puoi, verifica i ruoli, le politiche e le relazioni di fiducia IAM come descritto inRuoli IAM per AWS Data Pipeline.

Codice di stato: 400 Codice di errore: PipelineNotFoundException

Questo errore indica che i tuoi ruoli IAM predefiniti potrebbero non disporre delle autorizzazioni necessarie AWS Data Pipeline per funzionare correttamente. Per ulteriori informazioni, consulta Ruoli IAM per AWS Data Pipeline.

La creazione di una pipeline provoca un errore relativo al Security Token

Il seguente messaggio di errore viene ricevuto quando si tenta di creare una pipeline:

Creazione della pipeline con 'pipeline_name' non riuscita. Errore: UnrecognizedClientException - Il token di sicurezza incluso nella richiesta non è valido.

Impossibile visualizzare i dettagli della pipeline nella console

Il filtro della pipeline nella console AWS Data Pipeline viene applicato alla data di inizio scheduled (programmata) per una pipeline, senza considerare quando la pipeline è stata inviata. È possibile inviare una nuova pipeline utilizzando una data di inizio programmata che si verifica nel passato, che il filtro di data predefinito potrebbe non mostrare. Per vedere i dettagli della pipeline, modificare il filtro della data per avere la garanzia che la data di inizio programmata della pipeline cada all'interno del filtro dell'intervallo di date.

Errore in remote runner Codice stato: 404, AWS Service: Amazon S3

Questo errore indica che Task Runner non è riuscito ad accedere ai tuoi file in Amazon S3. Verificare che:

  • Le credenziali siano state impostate correttamente

  • Il bucket Amazon S3 a cui stai tentando di accedere esiste

  • Sei autorizzato ad accedere al bucket Amazon S3

Accesso negato - Non autorizzato per eseguire la funzione datapipeline:

Nei log di Task Runner, potresti visualizzare un errore simile al seguente:

  • Codice stato ERRORE: 403

  • Servizio AWS: DataPipeline

  • Codice di errore AWS: AccessDenied

  • Messaggio di errore AWS: User: arn:aws:sts: :xxxxxxxxxxxx:Federated-User/I-XXXXXXXX non è autorizzato a eseguire: datapipeline:. PollForTask

Nota

In questo messaggio di errore, PollForTask può essere sostituito con nomi di altre AWS Data Pipeline autorizzazioni.

Questo messaggio di errore indica che il ruolo IAM specificato richiede le autorizzazioni aggiuntive necessarie per interagireAWS Data Pipeline. Assicurati che la tua policy sui ruoli IAM contenga le seguenti righe, dove PollForTask sia sostituita dal nome dell'autorizzazione che desideri aggiungere (usa * per concedere tutte le autorizzazioni). Per ulteriori informazioni su come creare un nuovo ruolo IAM e applicare una policy ad esso, consulta Managing IAM Policies nella guida all'uso di IAM.

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

Le AMI Amazon EMR meno recenti possono creare dati falsi per file CSV di grandi dimensioni

Sulle AMI di Amazon EMR precedenti alla 3.9 (3.8 e precedenti) AWS Data Pipeline utilizza una funzionalità personalizzata InputFormat per leggere e scrivere file CSV da utilizzare con i job. MapReduce Viene utilizzato quando il servizio organizza tavoli da e verso Amazon S3. InputFormatÈ stato rilevato un problema a causa del quale la lettura di record da file CSV di grandi dimensioni può comportare la produzione di tabelle che non vengono copiate correttamente. Questo problema è stato risolto nelle versioni successive di Amazon EMR. Utilizza Amazon EMR AMI 3.9 o Amazon EMR versione 4.0.0 o successiva.

Aumento dei limiti AWS Data Pipeline

Occasionalmente, è possibile superare i limiti di sistema specifici di AWS Data Pipeline. Ad esempio, il limite predefinito della pipeline è di 20 pipeline con 50 oggetti in ognuna. Se si scopre che si ha bisogno di più pipeline rispetto al limite, considerare l'unione di più pipeline per creare un numero minore di pipeline con più oggetti in ognuna. Per ulteriori informazioni sui limiti di AWS Data Pipeline, consulta Limiti per AWS Data Pipeline. Tuttavia, se non è possibile risolvere il problema dei limiti tramite tecnica di unione delle pipeline, è opportuno richiedere un aumento della capacità utilizzando questo modulo: Aumento limiti della pipeline dei dati.