Perché il mio cluster Amazon EMR non si avvia e restituisce l'errore “L’azione bootstrap ha restituito un codice diverso da zero”?

2 minuti di lettura
0

Ho creato un'azione bootstrap personalizzata per il mio cluster Amazon EMR. Il cluster non si avvia e l'azione bootstrap restituisce un errore simile al seguente: “L'azione bootstrap 1 ha restituito un codice diverso da zero”.

Breve descrizione

Le azioni di avvio vengono eseguite dopo il provisioning delle istanze Amazon Elastic Compute Cloud (Amazon EC2) di Amazon EMR nel cluster. Quando un'azione di bootstrap ha esito negativo, Amazon EMR interrompe l'istanza. Per ulteriori informazioni, consulta Comprendere il ciclo di vita del cluster.

Se un'azione di bootstrap ha esito negativo a causa di un errore nello script di bootstrap, il cluster non può essere avviato. Per ulteriori informazioni, consulta Nozioni di base sulle azioni bootstrap.

Soluzione

Per determinare il motivo per cui un'azione bootstrap ha avuto esito negativo, esamina i log stderr relativi alla tua azione di bootstrap. Questi log si trovano nel percorso Amazon Simple Storage Service (Amazon S3) o nel LogURI configurato in precedenza durante la creazione del cluster Amazon EMR.

Esempio: s3://example-log-location/example-cluster-id/node/example-instance-id/bootstrap-actions/

Se non riesci a determinare il motivo per cui lo script ha avuto esito negativo dopo aver esaminato i log di stderr, modifica lo script per fornire ulteriori informazioni di debug. Ad esempio, impostare i parametri -ex nello script bash. Ciò consente di visualizzare il flusso dello script bash nei file di registro delle azioni bootstrap.

#!/bin/bash
set -x -e

Nota: se l'azione bootstrap non riuscita non è un'azione bootstrap che hai creato (ad esempio, se hai creato sei azioni di bootstrap e verifica il messaggio di errore “bootstrap action 7 non riuscito con codice di uscita diverso da zero”), tale messaggio di errore indica che Amazon EMR non è riuscito a installare applicazioni o avviare servizi.

Per risolvere questo problema, controlla i registri di provisioning di Amazon EMR. Amazon EMR utilizza Puppet per installare e configurare applicazioni su un cluster. I log possono fornire informazioni sugli errori causati durante il provisioning del cluster.

È possibile accedere a questi registri sul cluster o su S3 se hai configurato i log da inviare a S3. I log sono archiviati in /var/log/provision-node/apps-phase/0/example-UUID} /puppet.log sul disco e s3://example-log-location/example-cluster-id/node/example-instance-id/provision-node/apps-phase/0/{UUID}/puppet.log.gz.


Informazioni correlate

Usare azioni bootstrap personalizzate

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa