Utilizzo della scalabilità gestita in Amazon EMR - 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 scalabilità gestita in Amazon EMR

Importante

Ti consigliamo vivamente di utilizzare l'ultima EMR versione di Amazon (Amazon EMR 7.3.0) per la scalabilità gestita. In alcune versioni preliminari di Amazon EMR, potresti riscontrare esiti negativi intermittenti delle applicazioni o ritardi nel dimensionamento. Amazon EMR ha risolto questo problema con le versioni 5.x 5.30.2, 5.31.1, 5.32.1, 5.33.1 e successive e con le versioni 6.x 6.1.1, 6.2.1, 6.3.1 e successive. Per ulteriori informazioni sulla regione e sulla disponibilità del rilascio, consulta Disponibilità di dimensionamento gestito.

Panoramica

Con EMR le versioni di Amazon 5.30.0 e successive (ad eccezione di Amazon EMR 6.0.0), puoi abilitare la scalabilità gestita di Amazon. EMR Il dimensionamento gestito ti permette di aumentare o diminuire automaticamente il numero di istanze o unità nel cluster in base al carico di lavoro. Amazon valuta EMR continuamente i parametri dei cluster per prendere decisioni di scalabilità che ottimizzino i cluster in termini di costi e velocità. Il dimensionamento gestito è disponibile per i cluster composti da gruppi di istanze o parchi istanze.

Disponibilità di dimensionamento gestito

  • Di seguito Regioni AWS, Amazon EMR managed scaling è disponibile con Amazon EMR 6.14.0 e versioni successive:

    • Asia Pacifico (Hyderabad) (ap-south-2)

    • Asia Pacific (Giacarta) (ap-southeast-3)

    • Europa (Spagna) (eu-south-2)

  • Di seguito Regioni AWS, Amazon EMR managed scaling è disponibile con Amazon EMR 5.30.0 e 6.1.0 e versioni successive:

    • Stati Uniti orientali (Virginia settentrionale) (us-east-1)

    • Stati Uniti orientali (Ohio) (us-east-2)

    • Stati Uniti occidentali (Oregon) (us-west-2)

    • Stati Uniti occidentali (California settentrionale) (us-west-1)

    • Africa (Città del Capo) (af-south-1)

    • Asia Pacifico (Hong Kong) (ap-east-1)

    • Asia Pacifico (Mumbai) (ap-south-1)

    • Asia Pacifico (Seoul) (ap-northeast-2)

    • Asia Pacifico (Singapore) (ap-southeast-1)

    • Asia Pacifico (Sydney) (ap-southeast-2)

    • Asia Pacifico (Tokyo) (ap-northeast-1)

    • Canada (Centrale) (ca-central-1)

    • Sud America (San Paolo) (sa-east-1)

    • Europa (Francoforte) (eu-central-1)

    • Europa (Irlanda) (eu-west-1)

    • Europa (Londra) (eu-west-2)

    • Europa (Milano) (eu-south-1)

    • Europe (Parigi) (eu-west-3)

    • Europa (Stoccolma) (eu-north-1)

    • Cina (Pechino) cn-north-1

    • Cina (Ningxia) cn-nordovest-1

    • AWS GovCloud (Stati Uniti orientali) (-1) us-gov-east

    • AWS GovCloud (Stati Uniti occidentali) (us-gov-west-1)

  • La scalabilità EMR gestita di Amazon funziona solo con YARN applicazioni come Spark, Hadoop, Hive e Flink. Non supporta applicazioni non basate suYARN, come Presto e. HBase

Parametri del dimensionamento gestito

È necessario configurare i seguenti parametri per il dimensionamento gestito. Il limite si applica solo ai nodi core e task. Il nodo primario non può essere dimensionato dopo la configurazione iniziale.

  • Minimo (MinimumCapacityUnits): il limite inferiore della EC2 capacità consentita in un cluster. Viene misurato tramite core o istanze dell'unità di elaborazione centrale virtuale (vCPU) o istanze per gruppi di istanze. Si misura in unità per parchi istanze.

  • Maximum (MaximumCapacityUnits): il limite superiore della EC2 capacità consentita in un cluster. Viene misurato tramite core o istanze dell'unità di elaborazione centrale virtuale (vCPU), ad esempio gruppi di istanze. Si misura in unità per parchi istanze.

  • Limite On-Demand (MaximumOnDemandCapacityUnits) (Facoltativo): il limite superiore della EC2 capacità consentita per il tipo di mercato On-Demand in un cluster. Se questo parametro non è specificato, il valore predefinito viene impostato su MaximumCapacityUnits.

    • Questo parametro viene utilizzato per dividere l'allocazione della capacità tra istanze on demand e Spot. Ad esempio, se imposti il parametro minimo su 2 istanze, il parametro massimo su 100 istanze, il limite On-Demand su 10 istanze, Amazon EMR managed scaling scala fino a 10 istanze On-Demand e alloca la capacità rimanente alle istanze Spot. Per ulteriori informazioni, consulta Scenari di assegnazione dei nodi.

  • Numero massimo di nodi principali (MaximumCoreCapacityUnits) (facoltativo): il limite superiore della capacità consentita per il tipo di nodo principale in un cluster. EC2 Se questo parametro non è specificato, il valore predefinito viene impostato su MaximumCapacityUnits.

    • Questo parametro viene utilizzato per dividere l'allocazione della capacità tra nodi principali e attività. Ad esempio, se imposti il parametro minimo su 2 istanze, il massimo su 100 istanze, il nodo core massimo su 17 istanze, Amazon EMR managed scaling scala fino a 17 nodi core e alloca le restanti 83 istanze ai nodi di attività. Per ulteriori informazioni, consulta Scenari di assegnazione dei nodi.

Per ulteriori informazioni sui parametri del dimensionamento gestito, consulta ComputeLimits.

Considerazioni sulla scalabilità EMR gestita da Amazon

  • La scalabilità gestita è supportata in EMR versioni limitate Regioni AWS e Amazon. Per ulteriori informazioni, consulta Disponibilità di dimensionamento gestito.

  • È necessario configurare i parametri richiesti per Amazon EMR managed scaling. Per ulteriori informazioni, consulta Parametri del dimensionamento gestito.

  • Per utilizzare la scalabilità gestita, il processo Metrics-Collector deve essere in grado di connettersi all'APIendpoint pubblico per la scalabilità gestita in Gateway. API Se utilizzi un DNS nome privato con Amazon Virtual Private Cloud, la scalabilità gestita non funzionerà correttamente. Per garantire che il dimensionamento gestito funzioni, consigliamo di eseguire una delle seguenti operazioni:

  • Se i YARN lavori sono rallentati a intermittenza durante la riduzione e i registri di YARN Resource Manager mostrano che la maggior parte dei nodi era stata negata in quel periodo, puoi modificare la soglia di timeout per la disattivazione.

    Riduci il spark.blacklist.decommissioning.timeout da un'ora a un minuto per rendere disponibile il nodo per altri container in sospeso per continuare l'elaborazione del processo.

    Dovresti anche impostare un valore maggiore YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs per assicurarti che Amazon EMR non imponga la chiusura forzata del nodo mentre lo «Spark Task» più lungo è ancora in esecuzione sul nodo. L'impostazione predefinita attuale è 60 minuti, il che significa che il contenitore viene YARN chiuso forzatamente dopo 60 minuti dal momento in cui il nodo entra nello stato di disattivazione.

    La riga di registro di YARN Resource Manager di esempio seguente mostra i nodi aggiunti allo stato di decomissione:

    2021-10-20 15:55:26,994 INFO org.apache.hadoop.YARN.server.resourcemanager.DefaultAMSProcessor (IPC Server handler 37 on default port 8030): blacklist are updated in Scheduler.blacklistAdditions: [ip-10-10-27-207.us-west-2.compute.internal, ip-10-10-29-216.us-west-2.compute.internal, ip-10-10-31-13.us-west-2.compute.internal, ... , ip-10-10-30-77.us-west-2.compute.internal], blacklistRemovals: []

    Scopri maggiori dettagli su come Amazon EMR si integra con la YARN deny listing durante la disattivazione dei nodi, sui casi in cui è EMR possibile negare l'accesso ai nodi diAmazon e sulla configurazione del comportamento di smantellamento dei nodi Spark.

  • L'utilizzo eccessivo dei volumi può causare problemi di Managed Scaling. EBS Si consiglia di mantenere il EBS volume al di sotto del 90% di utilizzo. Per ulteriori informazioni, consulta Opzioni e comportamento di storage delle istanze in Amazon EMR.

  • Le CloudWatch metriche di Amazon sono fondamentali per il funzionamento di Amazon EMR Managed Scaling. Ti consigliamo di monitorare attentamente i CloudWatch parametri di Amazon per assicurarti che non manchino dati. Per ulteriori informazioni su come configurare gli CloudWatch allarmi per rilevare le metriche mancanti, consulta Using Amazon CloudWatch alarms.

  • Le operazioni di dimensionamento gestito su cluster 5.30.0 e 5.30.1 senza Presto installato possono causare errori delle applicazioni o far sì che un gruppo di istanze o un parco istanze uniforme mantenga lo stato ARRESTED, in particolare quando un'operazione di riduzione è seguita rapidamente da un'operazione di aumento.

    Come soluzione alternativa, scegli Presto come applicazione da installare quando crei un cluster con le EMR versioni di Amazon 5.30.0 e 5.30.1, anche se il tuo lavoro non richiede Presto.

  • Quando imposti il nodo principale massimo e il limite On-Demand per la scalabilità EMR gestita da Amazon, considera le differenze tra gruppi di istanze e flotte di istanze. Ogni gruppo di istanze è costituito dallo stesso tipo di istanza e dalla stessa opzione di acquisto per istanze: on demand o Spot. Per ogni parco istanze, puoi specificare fino a cinque tipi di istanze, che possono essere assegnate come istanze on demand e Spot. Per ulteriori informazioni, consulta Creazione di un cluster con parchi istanze o gruppi di istanze uniformi, Opzioni dei parchi istanze e Scenari di assegnazione dei nodi.

  • Con Amazon EMR 5.30.0 e versioni successive, se rimuovi la regola Consenti tutto in uscita predefinita su 0.0.0.0/ per il gruppo di sicurezza principale, devi aggiungere una regola che consenta la TCP connettività in uscita al tuo gruppo di sicurezza per l'accesso al servizio sulla porta 9443. Il tuo gruppo di sicurezza per l'accesso al servizio deve inoltre consentire il traffico in entrata TCP sulla porta 9443 dal gruppo di sicurezza principale. Per ulteriori informazioni sulla configurazione dei gruppi di sicurezza, consulta Amazon EMR -managed security group per l'istanza primaria (sottoreti private).

  • Puoi usarlo AWS CloudFormation per configurare Amazon EMR Managed Scaling. Per ulteriori informazioni, consulta AWS::EMR: :Cluster nella Guida per l'AWS CloudFormation utente.

  • Se utilizzi nodi Spot, valuta la possibilità di utilizzare le etichette dei nodi per impedire ad Amazon EMR di rimuovere i processi applicativi quando Amazon EMR rimuove i nodi Spot. Per ulteriori informazioni sulle etichette dei nodi, consulta Task nodes.

  • L'etichettatura dei nodi non è supportata per impostazione predefinita nelle EMR versioni 6.15 o precedenti di Amazon. Per ulteriori informazioni, consulta Comprendere i tipi di nodi: nodi primari, principali e nodi di attività.

  • Se utilizzi le EMR versioni 6.15 o precedenti di Amazon, puoi assegnare etichette ai nodi solo per tipo di nodo, ad esempio nodi core e task. Tuttavia, se utilizzi la EMR versione 7.0 o successiva di Amazon, puoi configurare le etichette dei nodi per tipo di nodo e tipo di mercato, ad esempio On-Demand e Spot.

  • Se la richiesta dei processi applicativi aumenta e la domanda degli esecutori diminuisce quando si limita il processo di applicazione ai nodi principali, è possibile aggiungere nuovamente i nodi core e rimuovere i nodi task nella stessa operazione di ridimensionamento. Per ulteriori informazioni, vedere Comprensione della strategia e degli scenari di allocazione dei nodi.

  • Amazon EMR non etichetta i task node, quindi non puoi impostare le YARN proprietà per limitare i processi applicativi solo per i task node. Tuttavia, se desideri utilizzare i tipi di mercato come etichette dei nodi, puoi utilizzare le SPOT etichette ON_DEMAND o per il posizionamento dei processi applicativi. Non è consigliabile utilizzare i nodi Spot per i processi primari delle applicazioni.

  • Quando utilizzi le etichette dei nodi, il totale delle unità in esecuzione nel cluster può temporaneamente superare la capacità di calcolo massima impostata nella tua politica di scalabilità gestita, mentre Amazon EMR disattiva alcune delle tue istanze. Le unità totali richieste rimarranno sempre pari o inferiori alla capacità di calcolo massima prevista dalla tua politica.

  • La scalabilità gestita supporta solo le etichette dei nodi SPOT e/o ON_DEMAND CORE e. TASK Le etichette personalizzate dei nodi non sono supportate.

  • Amazon EMR crea etichette per i nodi durante la creazione del cluster e il provisioning delle risorse. Amazon EMR non supporta l'aggiunta di etichette dei nodi durante la riconfigurazione del cluster. Inoltre, non puoi modificare le etichette dei nodi durante la configurazione della scalabilità gestita dopo l'avvio del cluster.

  • La scalabilità gestita ridimensiona i nodi principali e i nodi di attività in modo indipendente in base al processo applicativo e alla richiesta dell'esecutore. Per prevenire problemi di perdita di HDFS dati durante la riduzione del core scaling, segui la procedura standard per i nodi principali. Per ulteriori informazioni sulle best practice relative ai nodi principali e alla HDFS replica, consulta Considerazioni e best practice.

  • Non è possibile posizionare sia il processo applicativo che gli esecutori solo sul nodo core o. ON_DEMAND Se desideri aggiungere sia il processo di applicazione che gli esecutori su uno dei nodi, non utilizzare la yarn.node-labels.am.default-node-label-expression configurazione.

    Ad esempio, per posizionare sia il processo dell'applicazione che gli esecutori nei ON_DEMAND nodi, impostate max computute sullo stesso valore del valore massimo nel nodo. ON_DEMAND Rimuovi anche la configurazione. yarn.node-labels.am.default-node-label-expression

    Per aggiungere sia il processo di applicazione che gli esecutori sui core nodi, rimuovi la yarn.node-labels.am.default-node-label-expression configurazione.

  • Quando utilizzi la scalabilità gestita con le etichette dei nodi, imposta la proprietà yarn.scheduler.capacity.maximum-am-resource-percent: 1 se prevedi di eseguire più applicazioni in parallelo. In questo modo si garantisce che i processi applicativi utilizzino appieno i nodi CORE o ON_DEMAND disponibili.

  • Se utilizzi la scalabilità gestita con etichette dei nodi, imposta la proprietà yarn.resourcemanager.decommissioning.timeout su un valore più lungo dell'applicazione in esecuzione più a lungo del cluster. In questo modo si riduce la possibilità che Amazon EMR managed scalling debba riprogrammare le applicazioni per la rimessa in servizio o i nodi. CORE ON_DEMAND

Cronologia delle funzionalità

Questa tabella elenca gli aggiornamenti alla funzionalità di scalabilità EMR gestita di Amazon.

Data di rilascio Funzionalità EMRVersioni Amazon
20 agosto 2024 Le etichette dei nodi sono ora disponibili nella versione Managed Scaling, quindi puoi etichettare le istanze in base al tipo di mercato o al tipo di nodo per migliorare la scalabilità automatica. 7.2.0 e versioni successive
31 marzo 2024 La scalabilità gestita è disponibile nella regione ap-south-2 Asia Pacifico (Hyderabad). 6.14.0 e versioni successive
13 febbraio 2024 La scalabilità gestita è disponibile nella regione eu-south-2 Europa (Spagna). 6.14.0 e versioni successive
10 ottobre 2023 Il dimensionamento gestito è disponibile nella regione Asia Pacific (Giacarta) ap-southeast-3. 6.14.0 e versioni successive
28 luglio 2023 Scalabilità gestita migliorata per passare a un gruppo di istanze di attività diverso su scala verticale quando Amazon riscontra un EMR ritardo nella scalabilità rispetto al gruppo di istanze corrente. 5.34.0 e versioni successive, 6.4.0 e versioni successive
16 giugno 2023 Dimensionamento gestito migliorato per rilevare i nodi che eseguono il master dell'applicazione in modo che tali nodi non vengano dimensionati ridotti. Per ulteriori informazioni, consulta Comprensione della strategia e degli scenari di allocazione dei EMR nodi di Amazon. 5.34.0 e versioni successive, 6.4.0 e versioni successive
21 marzo 2022 Aggiunta la consapevolezza dei dati di shuffle di Spark utilizzata durante la riduzione verticale dei cluster. Per EMR i cluster Amazon con Apache Spark e la funzionalità di scalabilità gestita abilitata, Amazon monitora EMR continuamente gli esecutori Spark e le posizioni intermedie dei dati shuffle. Utilizzando queste informazioni, Amazon EMR ridimensiona solo le istanze sottoutilizzate che non contengono dati shuffle utilizzati attivamente. Ciò impedisce il ricalcolo dei dati di shuffle persi, contribuendo a ridurre i costi e migliorare le prestazioni dei processi. Per ulteriori informazioni, consulta la Guida di programmazione Spark. 5.34.0 e versioni successive, 6.4.0 e versioni successive