Ridimensionamento del cluster - Amazon EMR

Ridimensionamento del cluster

Nota

A partire da Amazon EMR rilascio 5.10.0, le opzioni relative al comportamento di riduzione non sono più supportate. A causa dell'introduzione della fatturazione al secondo in Amazon EC2, adesso il comportamento di ridimensionamento predefinito per i cluster Amazon EMR è terminare al completamento dell'attività.

Con i rilasci da 5.1.0 a 5.9.1 di Amazon EMR sono disponibili due opzioni per il comportamento di riduzione: terminazione allo scadere del limite di ore-istanze per la fatturazione Amazon EC2 o terminazione al completamento dell'attività. A partire da Amazon EMR rilascio 5.10.0, l'impostazione per la terminazione allo scadere del limite di ore-istanze è obsoleta a causa dell'introduzione della fatturazione al secondo in Amazon EC2. Si sconsiglia di specificare la terminazione allo scadere dell'ora dell'istanza nelle versioni in cui l'opzione è disponibile.

avvertimento

Se si utilizza AWS CLI per emettere un modify-instance-groups con EC2InstanceIdsToTerminate, queste istanze vengono terminate immediatamente, senza considerare queste impostazioni e indipendentemente dallo stato delle applicazioni in esecuzione su di esse. La cessazione di un'istanza in questo modo comporta il rischio di perdita di dati e di un comportamento imprevedibile del cluster.

Quando la terminazione al completamento dell'attività è specificata, Amazon EMR elenca come negati e scarica i processi dai nodi prima di terminare le istanze Amazon EC2. Con entrambi i comportamenti specificati, Amazon EMR non termina le istanze Amazon EC2 nei gruppi di istanze principali se questo potrebbe portare alla corruzione di HDFS.

Terminazione al completamento dell'attività

Amazon EMR consente di ridimensionare il cluster senza influenzare il carico di lavoro. Amazon EMR normalmente disattiva YARN, HDFS e altri daemon sui nodi principali e attività durante un'operazione di ridimensionamento senza perdere dati o interrompere i processi. Amazon EMR riduce le dimensioni dei gruppi di istanze solo se il lavoro assegnato ai gruppi è stato completato e questi sono inattivi. Per la disattivazione con tolleranza di YARN NodeManager, è possibile regolare manualmente il tempo di attesa per la disattivazione di un nodo.

In questo momento è impostato utilizzando una proprietà nella classificazione di configurazione YARN-site. Se utilizzi il rilascio 5.12.0 e successivi di Amazon EMR, specifica la proprietà YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs. Se utilizzi rilasci precedenti di Amazon EMR, specifica la proprietà YARN.resourcemanager.decommissioning.timeout.

Se ci sono ancora contenitori o applicazioni YARN in esecuzione al superamento del tempo di disattivazione, il nodo è costretto a essere disattivato e YARN ricondiziona i contenitori interessati su altri nodi. Il valore predefinito è 3600 secondi (1 ora). Puoi impostare questo timeout con un valore arbitrariamente alto per forzare la riduzione graduale ad attendere più a lungo. Per ulteriori informazioni, consulta la sezione Graceful Decommission of YARN nodes (Disattivazione normale dei nodi YARN) nella documentazione di Apache Hadoop.

Gruppi di nodi attività

Amazon EMR seleziona in modo intelligente le istanze che non presentano attività in esecuzione su qualsiasi fase o applicazione e rimuove prima tali istanze da un cluster. Se tutte le istanze del cluster sono in uso, Amazon EMR attende il completamento delle attività su un'istanza prima di rimuoverla dal cluster. Il tempo di attesa predefinito è 1 ora. Questo valore può essere modificato con l'impostazione YARN.resourcemanager.decommissioning.timeout. Amazon EMR utilizza dinamicamente la nuova impostazione. Puoi impostarlo su un numero arbitrariamente elevato per assicurarti che Amazon EMR non termini alcuna attività riducendo al contempo le dimensioni del cluster.

Gruppi di nodi principali

Sui nodi principali, i daemons YARN NodeManager e HDFS DataNode devono essere rimossi affinché il gruppo di istanze possa essere ridotto. Per quanto riguarda YARN, la riduzione graduale garantisce che un nodo contrassegnato per la disattivazione passi allo stato DECOMMISSIONED solo se non vi sono contenitori o applicazioni in attesa o incompleti. La disattivazione termina immediatamente se non vi sono contenitori in funzione sul nodo all'inizio della disattivazione.

Per gli HDFS, le riduzioni graduali assicurano che la capacità nominale degli HDFS sia sufficientemente grande da adattarsi a tutti i blocchi esistenti. Se la capacità target non è sufficientemente grande, solo un numero parziale di istanze principali viene disattivato in modo che i nodi rimanenti possano gestire i dati correnti che risiedono negli HDFS. È necessario garantire una capacità HDFS aggiuntiva per consentire un'ulteriore disattivazione. Dovresti anche cercare di ridurre al minimo le operazioni I/O di scrittura prima di tentare di ridurre i gruppi di istanze. Un numero eccessivo di I/O di scrittura potrebbe ritardare il completamento dell'operazione di ridimensionamento.

Un altro limite è il fattore di replica predefinito, dfs.replication all'interno di /etc/hadoop/conf/hdfs-site. Durante la creazione di un cluster, Amazon EMR configura il valore in base al numero di istanze del cluster: 1 con 1-3 istanze, 2 per i cluster con 4-9 istanze e 3 per i cluster con oltre 10 istanze.

avvertimento
  1. L'impostazione di dfs.replication su 1 per i cluster con meno di quattro nodi può causare la perdita di dati HDFS in caso di disattivazione anche di un singolo nodo. Ti consigliamo di utilizzare un cluster con almeno quattro nodi principali per i carichi di lavoro di produzione.

  2. Amazon EMR non consente ai cluster di dimensionare i nodi principali al di sotto di dfs.replication. Ad esempio, se dfs.replication = 2, il numero minimo di nodi principali è 2.

  3. Quando utilizzi il dimensionamento gestito, il dimensionamento automatico o scegli di dimensionare manualmente il cluster, ti consigliamo di impostare dfs.replication su 2 o su un valore superiore.

Una riduzione graduale non consente di ridurre i nodi principali al di sotto del fattore di replica HDFS. Questo per consentire a HDFS di chiudere i file a causa di repliche insufficienti. Per aggirare questo limite, riduci il fattore di replica e riavvia il daemon NameNode.

Configura il comportamento di dimensionamento verso il basso per Amazon EMR.

Nota

L'opzione di comportamento di riduzione con terminazione allo scadere del limite di ore-istanze non è più supportata per Amazon EMR rilascio 5.10.0 e successivi. Le seguenti opzioni relative alla riduzione vengono visualizzate nella console Amazon EMR solo per i rilasci da 5.1.0 a 5.9.1.

È possibile utilizzare la AWS Management Console, la AWS CLI o l'API Amazon EMR per configurare il comportamento di dimensionamento verso il basso al momento della creazione di un cluster.

Nota

Abbiamo riprogettato la console Amazon EMR per facilitarne l'utilizzo. Per scoprire le differenze tra la vecchia e la nuova esperienza sulla console, consulta la sezione Novità della console.

New console
Configurazione del comportamento di riduzione con la nuova console
  1. Accedi alla AWS Management Console e apri la console Amazon EMR all'indirizzo https://console.aws.amazon.com/emr.

  2. In EMR su EC2, nel riquadro di navigazione a sinistra, scegli Cluster e quindi seleziona Crea cluster.

  3. Nella sezione Cluster scaling and provisioning option (Opzione di dimensionamento e provisioning del cluster), cerca Cluster termination (Terminazione del cluster) e scegli di terminare manualmente il cluster o chiedi ad Amazon EMR di terminare il cluster dopo un determinato periodo di inattività. Facoltativamente, attiva la protezione da terminazione da bug o errori.

  4. Scegli qualsiasi altra opzione applicabile al cluster.

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

Old console
Configurazione del comportamento di riduzione con la vecchia console
  1. Apri la console di Amazon EMR all'indirizzo https://console.aws.amazon.com/elasticmapreduce.

  2. Scegli Crea cluster. Vai a Advanced options (Opzioni avanzate) e scegli le impostazioni di configurazione in Step 1: Software and Steps (Passaggio 1: Software e fasi) e Step 2: Hardware (Passaggio 2: Hardware).

  3. Nel Step 3: General Cluster Settings (Passaggio 3: Impostazioni generali del cluster), seleziona il comportamento di riduzione preferito. Completa le configurazioni rimanenti e crea il cluster.

AWS CLI
Configurazione del comportamento di riduzione con la AWS CLI
  • Per l'opzione --scale-down-behavior puoi specificare TERMINATE_AT_INSTANCE_HOUR o TERMINATE_AT_TASK_COMPLETION.