Quando configurare gli eventi in EMR CloudWatch - Amazon EMR

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à.

Quando configurare gli eventi in EMR CloudWatch

Per alcuni sondaggiAPIs, ad esempio DescribeCluster, e DescribeStep ListClusters, l'impostazione di un CloudWatch evento può ridurre i tempi di risposta alle modifiche e liberare le quote di servizio. Se hai impostato una funzione Lambda che si attiva al variare dello stato di un cluster, ad esempio quando una fase viene completata o il cluster viene terminato, puoi utilizzare tale attivazione per avviare l'operazione successiva nel flusso di lavoro anziché attendere il polling successivo. Altrimenti, se disponi di EC2 istanze Amazon dedicate o funzioni Lambda che richiedono costantemente modifiche, non solo sprechi risorse di elaborazione, ma potresti anche raggiungere la tua quota di servizio. EMR API

Di seguito sono riportati alcuni casi che mostrano come trarre vantaggio dal passaggio a un'architettura basata su eventi.

Caso 1: sondaggio utilizzando le chiamate per il completamento delle fasi EMR DescribeCluster API

Esempio Sondaggi che EMR utilizzano DescribeCluster API inviti al completamento delle fasi

Uno schema comune consiste nell'inviare una fase a un cluster in esecuzione e interrogare Amazon EMR per conoscere lo stato della fase, in genere utilizzando DescribeCluster o DescribeStep APIs. Questa attività può essere eseguita anche con un ritardo minimo collegandosi all'evento Amazon EMR Step Status Change in.

Questo evento include le seguenti informazioni nel relativo payload.

{ "version": "0", "id": "999cccaa-eaaa-0000-1111-123456789012", "detail-type": "EMR Step Status Change", "source": "aws.emr", "account": "123456789012", "time": "2016-12-16T20:53:09Z", "region": "us-east-1", "resources": [], "detail": { "severity": "ERROR", "actionOnFailure": "CONTINUE", "stepId": "s-ZYXWVUTSRQPON", "name": "CustomJAR", "clusterId": "j-123456789ABCD", "state": "FAILED", "message": "Step s-ZYXWVUTSRQPON (CustomJAR) in Amazon EMR cluster j-123456789ABCD (Development Cluster) failed at 2016-12-16 20:53 UTC." } }

Nella mappa dettagliata, una funzione Lambda potrebbe analizzare «state», "» o stepId "" per trovare clusterId informazioni pertinenti.

Caso 2: ricerca dei cluster disponibili EMR per l'esecuzione dei flussi di lavoro

Esempio Sondaggio dei cluster disponibili EMR per l'esecuzione dei flussi di lavoro

Un modello utile per i clienti che eseguono più cluster consiste nell'eseguire flussi di lavoro su cluster non appena sono disponibili. Se ci sono molti cluster in esecuzione ed è necessario eseguire un flusso di lavoro su un cluster in attesa, uno schema potrebbe essere quello di eseguire il polling EMR utilizzando DescribeCluster o ListClusters API richiamando i cluster disponibili. Un altro modo per ridurre il ritardo nel sapere quando un cluster è pronto per una fase consiste nell'elaborare l'evento Amazon EMR Cluster State Change in.

Questo evento include le seguenti informazioni nel relativo payload.

{ "version": "0", "id": "999cccaa-eaaa-0000-1111-123456789012", "detail-type": "EMR Cluster State Change", "source": "aws.emr", "account": "123456789012", "time": "2016-12-16T20:43:05Z", "region": "us-east-1", "resources": [], "detail": { "severity": "INFO", "stateChangeReason": "{\"code\":\"\"}", "name": "Development Cluster", "clusterId": "j-123456789ABCD", "state": "WAITING", "message": "Amazon EMR cluster j-123456789ABCD ..." } }

Per questo evento, è possibile configurare una funzione Lambda per inviare immediatamente un flusso di lavoro in attesa a un cluster non appena il suo stato cambia. WAITING

Caso 3: sondaggio EMR per la chiusura del cluster

Esempio Sondaggio EMR per la chiusura del cluster

Uno schema comune di clienti che gestiscono più EMR cluster consiste nel EMR chiedere ad Amazon di verificare se i cluster sono terminati, in modo che non venga più inviato alcun lavoro ad Amazon. Puoi implementare questo modello con le ListClusters API chiamate DescribeCluster and o utilizzando l'evento Amazon EMR Cluster State Change in.

In seguito alla terminazione del cluster, l'evento emesso ha un aspetto simile all'esempio seguente.

{ "version": "0", "id": "1234abb0-f87e-1234-b7b6-000000123456", "detail-type": "EMR Cluster State Change", "source": "aws.emr", "account": "123456789012", "time": "2016-12-16T21:00:23Z", "region": "us-east-1", "resources": [], "detail": { "severity": "INFO", "stateChangeReason": "{\"code\":\"USER_REQUEST\",\"message\":\"Terminated by user request\"}", "name": "Development Cluster", "clusterId": "j-123456789ABCD", "state": "TERMINATED", "message": "Amazon EMR Cluster jj-123456789ABCD (Development Cluster) has terminated at 2016-12-16 21:00 UTC with a reason of USER_REQUEST." } }

La sezione «dettagli» del payload include lo stato clusterId and su cui è possibile agire.