Ridimensionamento del cluster - 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à.

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 il comando AWS CLI to issue a modify-instance-groups withEC2InstanceIdsToTerminate, queste istanze vengono terminate immediatamente, senza considerare tali 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. Con YARN NodeManager Graceful Decommission, puoi regolare manualmente il tempo di attesa di un nodo per la disattivazione.

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 DataNode daemon YARN NodeManager e HDFS devono essere disattivati per ridurre il gruppo di istanze. 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, abbassate il fattore di replica e riavviate il demone. 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.

Puoi utilizzare l' AWS Management Console, the o l' AWS CLI API Amazon EMR per configurare il comportamento di scalabilità verso il basso durante la creazione di un cluster.

Console
Configurazione del comportamento di riduzione con la nuova console
  1. Accedi a e apri AWS Management Console 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 Opzioni di scalabilità e provisioning del cluster, scegli Usa scalabilità automatica personalizzata. In Politiche di scalabilità automatica personalizzate, scegli il pulsante di azione Plus per aggiungere Scala nelle politiche. Ti consigliamo di aggiungere le politiche Scale in e Scale out. L'aggiunta di un solo set di politiche significa che Amazon EMR eseguirà solo la scalabilità unidirezionale e dovrai eseguire manualmente le altre azioni.

  4. Scegli qualsiasi altra opzione applicabile al cluster.

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

AWS CLI
Per configurare il comportamento di scalabilità verso il basso con AWS CLI
  • Per l'opzione --scale-down-behavior puoi specificare TERMINATE_AT_INSTANCE_HOUR o TERMINATE_AT_TASK_COMPLETION.