View a markdown version of this page

Utilizzo della protezione dalle terminazioni per proteggere i cluster Amazon EMR da chiusure accidentali - 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à.

Utilizzo della protezione dalle terminazioni per proteggere i cluster Amazon EMR da chiusure accidentali

La protezione dalle terminazioni protegge i cluster dalla terminazione accidentale, il che può essere particolarmente utile per i cluster a lunga durata che elaborano carichi di lavoro critici. Quando la protezione da cessazione è abilitata su un cluster di lunga durata, è necessario rimuovere esplicitamente la protezione da cessazione dal cluster prima di poterlo terminare. Ciò aiuta a garantire che le istanze EC2 non verranno arrestate in modo accidentale o per errore. È possibile abilitare la protezione da cessazione al momento della creazione di un cluster ed è possibile modificare l'impostazione su un cluster in esecuzione.

Se la protezione da cessazione è abilitata, l'operazione TerminateJobFlows nell'API di Amazon EMR non funziona. Gli utenti non sono in grado di terminare il cluster utilizzando questa API né il comando terminate-clusters di AWS CLI. L'API restituisce un errore e l'interfaccia a riga di comando (CLI) si chiude con un codice restituito diverso da zero. Se utilizzi la console Amazon EMR per terminare un cluster, ti viene richiesto di eseguire una fase supplementare per disattivare la protezione da terminazione.

avvertimento

La protezione da cessazione non garantisce che i dati vengano conservati in caso di errore umano o di soluzione alternativa, ad esempio se un comando di riavvio viene emesso dalla riga di comando mentre è connesso all'istanza tramite SSH, se un'applicazione o uno script in esecuzione sull'istanza emette un comando di riavvio o se l'API Amazon EC2 o Amazon EMR viene utilizzata per disattivare la protezione da cessazione. Ciò vale anche se utilizzi le versioni 7.1 e successive di Amazon EMR e un'istanza diventa malsana e irrecuperabile. Anche se la protezione da cessazione è abilitata, i dati salvati nell'archiviazione dell'istanza, inclusi i dati HDFS, possono andare persi. Scrivi l'output dei dati nei percorsi Amazon S3 e crea strategie di backup appropriate per i tuoi requisiti di business continuity.

Questo tipo di protezione non pregiudica la possibilità di dimensionare le risorse del cluster mediante una delle seguenti operazioni:

Protezione da cessazione e Amazon EC2

L'impostazione di protezione dalla terminazione in un cluster Amazon EMR corrisponde all'DisableApiTerminationattributo per tutte le istanze Amazon EC2 nel cluster. Ad esempio, se abiliti la protezione da terminazione in un cluster EMR, Amazon EMR viene impostato automaticamente su true per tutte le istanze EC2 DisableApiTermination all'interno del cluster EMR. Lo stesso vale se disabiliti la protezione da terminazione. Amazon EMR viene impostato automaticamente su false DisableApiTermination per tutte le istanze EC2 all'interno del cluster EMR. Se si termina o si ridimensiona un cluster di Amazon EMR e le impostazioni di Amazon EC2 sono in conflitto per un'istanza EC2, Amazon EMR dà la priorità all'impostazione Amazon EMR rispetto alle impostazioni e in Amazon EC2 DisableApiStop e DisableApiTermination continua a terminare l'istanza EC2.

Ad esempio, puoi utilizzare la console Amazon EC2 per abilitare la protezione dalla terminazione su un'istanza Amazon EC2 in un cluster EMR con la protezione dalla terminazione disattivata. Se termini o riduci il cluster con la console Amazon EMR, l'API Amazon EMR o Amazon EMR AWS CLI, Amazon EMR sovrascrive l'DisableApiTerminationimpostazione, la imposta su false e termina l'istanza insieme ad altre istanze.

Puoi anche utilizzare la console Amazon EC2 per abilitare la protezione da arresto su un'istanza Amazon EC2 in un cluster EMR con la protezione da terminazione disattivata. Se si termina o si ridimensiona il cluster, Amazon EMR imposta su false in Amazon EC2 e termina l'istanza insieme DisableApiStop ad altre istanze.

Amazon EMR sovrascrive l'DisableApiStopimpostazione solo quando si termina o si ridimensiona un cluster. Quando abiliti o disabiliti la protezione dalla terminazione in un cluster EMR, Amazon EMR non modifica l'disableApiStopimpostazione per nessuna delle istanze EC2 nel rispettivo cluster EMR.

Importante

Se crei un'istanza come parte di un cluster Amazon EMR con protezione dalle terminazioni e utilizzi l'API o i comandi di Amazon EC2 per modificare l'istanza in modo definitivofalse, e quindi l'API o AWS CLI i comandi di Amazon EC2 AWS CLI eseguono l'operazione, l'istanza Amazon EC2 termina. DisableApiTermination TerminateInstances

Protezione da cessazione e nodi YARN con stato Unhealthy (Non integro)

Amazon EMR controlla periodicamente lo stato dei nodi Apache Hadoop YARN in esecuzione sulle istanze Amazon EC2 principali o attività in un cluster. Lo stato di salute viene segnalato dal servizio Health Checker. NodeManager Se un nodo segnalaUNHEALTHY, il controller di istanza Amazon EMR aggiunge il nodo a una denylist e non vi alloca contenitori YARN finché non torna a funzionare. A seconda degli stati di protezione da terminazione, sostituzione del nodo non integro e versione di rilascio di Amazon EMR, Amazon EMR sostituirà l'istanza non integra o interromperà l'allocazione dei controller all'istanza.

Protezione dalla terminazione e terminazione dopo l'esecuzione della fase

Quando abiliti la terminazione dopo l'esecuzione di una fase e abiliti anche la protezione dalla terminazione, Amazon EMR ignora la protezione dalla terminazione.

Quando si inviano fasi a un cluster, è possibile impostare la proprietà ActionOnFailure per stabilire cosa accede se la fase non può completare l'esecuzione a causa di un errore. I valori possibile per questa impostazione sono TERMINATE_CLUSTER (TERMINATE_JOB_FLOW con le versioni precedenti), CANCEL_AND_WAIT e CONTINUE. Per ulteriori informazioni, consulta Invia il lavoro a un cluster Amazon EMR.

Se un passaggio ha esito negativo configurato con ActionOnFailure set toCANCEL_AND_WAIT, se è abilitata la terminazione dopo l'esecuzione del passaggio, il cluster termina senza eseguire i passaggi successivi.

Se una fase, configurata con ActionOnFailure impostato su TERMINATE_CLUSTER, non riesce, è possibile utilizzare la tabella delle impostazioni riportata di seguito per determinare il risultato.

ActionOnFailure Terminazione dopo l'esecuzione della fase Termination protection (Protezione da cessazione) Risultato

TERMINATE_CLUSTER

Abilitato

Disabilitato

Il cluster viene terminato

Abilitato

Abilitato

Il cluster viene terminato

Disabilitato

Abilitato

Il cluster non viene terminato

Disabilitato

Disabilitato

Il cluster viene terminato

Protezione da cessazione e istanze Spot

L'opzione di protezione da cessazione di Amazon EMR non impedisce l'arresto di un'istanza Spot di Amazon EC2 quando il prezzo Spot supera il prezzo Spot massimo.

Configurazione della protezione da cessazione all'avvio di un cluster

È possibile abilitare o disabilitare la protezione dalla terminazione quando si avvia un cluster utilizzando la console AWS CLI, l'API o l'API.

Per i cluster a nodo singolo, le impostazioni predefinite di protezione dalle terminazioni sono le seguenti:

  • Avvio di un cluster tramite Amazon EMR Console: Termination Protection è disabilitato per impostazione predefinita.

  • Avvio di un cluster tramite AWS CLI aws emr create-cluster —Termination Protection è disabilitato a meno che non sia specificato. --termination-protected

  • Avvio di un cluster tramite il RunJobFlow comando API Amazon EMR: Termination Protection è disabilitato a meno che il valore booleano non sia impostato su. TerminationProtected true

Per i cluster ad alta disponibilità, le impostazioni predefinite di protezione dalla terminazione sono le seguenti:

  • Avvio di un cluster tramite Amazon EMR Console: Termination Protection è abilitato per impostazione predefinita.

  • Avvio di un cluster tramite AWS CLI aws emr create-cluster —Termination Protection è disabilitato a meno che non sia specificato. --termination-protected

  • Avvio di un cluster tramite il RunJobFlow comando API Amazon EMR: Termination Protection è disabilitato a meno che il valore booleano non sia impostato su. TerminationProtected true

Console
Per attivare o disattivare la protezione da terminazione quando si crea un cluster con la console
  1. Accedi a e apri Console di gestione AWS la console Amazon EMR all'indirizzo. https://console.aws.amazon.com/emr

  2. In EMR on EC2 (EMR su EC2), nel riquadro di navigazione a sinistra, scegli Clusters (Cluster) e seleziona Create cluster (Crea cluster).

  3. Per EMR release version (Versione del rilascio EMR), scegli emr-6.6.0 o un rilascio successivo.

  4. In Terminazione del cluster e sostituzione del nodo, assicurati che Usa protezione da terminazione sia preselezionata o deseleziona la selezione per disattivarla.

  5. Scegli qualsiasi altra opzione applicabile al cluster.

  6. Per avviare il cluster, scegli Create cluster (Crea cluster).

AWS CLI
Per attivare o disattivare la protezione dalle terminazioni quando crei un cluster utilizzando AWS CLI
  • Con AWS CLI, è possibile avviare un cluster con la protezione da terminazione abilitata con il create-cluster comando con il --termination-protected parametro. Per impostazione predefinita, la protezione da cessazione è disabilitata.

    Nell'esempio seguente viene creato un cluster con protezione da cessazione abilitata:

    Nota

    I caratteri di continuazione della riga Linux (\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuovili o sostituiscili con un accento circonflesso (^).

    aws emr create-cluster --name "TerminationProtectedCluster" --release-label emr-7.13.0 \ --applications Name=Hadoop Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --termination-protected

    Per ulteriori informazioni sull'utilizzo dei comandi Amazon EMR in AWS CLI, consulta. https://docs.aws.amazon.com/cli/latest/reference/emr

Configurazione della protezione da cessazione per i cluster in esecuzione

È possibile configurare la protezione da terminazione per un cluster in esecuzione con la console o la AWS CLI.

Console
Per attivare o disattivare la protezione dalle terminazioni per un cluster in esecuzione con la console
  1. Accedi a e apri Console di gestione AWS la console Amazon EMR all'indirizzo. https://console.aws.amazon.com/emr

  2. In EMR on EC2 (EMR su EC2), nel riquadro di navigazione a sinistra, scegli Clusters (Cluster) e seleziona il cluster da aggiornare.

  3. Nella scheda Properties (Proprietà) della pagina dei dettagli del cluster, cerca Cluster termination (Terminazione del cluster) e seleziona Edit (Modifica).

  4. Seleziona o deseleziona la casella di controllo Use termination protection (Utilizza la protezione da terminazione) per attivare o disattivare la caratteristica. Quindi seleziona Save changes (Salva modifiche) per confermare.

AWS CLI
Per attivare o disattivare la protezione dalle terminazioni per un cluster in esecuzione utilizzando AWS CLI
  • Per abilitare la protezione da terminazione su un cluster in esecuzione con la AWS CLI, utilizza il comando modify-cluster-attributes con il parametro --termination-protected. Per disabilitarla, utilizza il parametro --no-termination-protected.

    L'esempio seguente abilita la protezione dalle terminazioni sul cluster con ID: j-3KVTXXXXXX7UG

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --termination-protected

    Nell'esempio seguente viene disabilitata la protezione da cessazione sullo stesso cluster:

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected