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à.
Pianificazione e configurazione delle flotte di istanze per il tuo cluster Amazon EMR
Nota
La configurazione dei parchi istanze è disponibile solo in Amazon EMR rilasci 4.8.0 e successivi, esclusi i rilasci 5.0.0 e 5.0.3.
La configurazione del parco istanze per i cluster Amazon EMR ti consente di selezionare un'ampia gamma di opzioni di provisioning per le istanze Amazon EC2 e ti aiuta a sviluppare una strategia di risorse flessibile ed elastica per ogni tipo di nodo nel cluster.
In una configurazione del parco istanze, si specifica una capacità target per On-Demand le istanze e le istanze Spot all'interno di ogni parco istanze. All’avvio del cluster, Amazon EMR effettua il provisioning di istanze fino al raggiungimento delle capacità target. Mentre un cluster è in esecuzione, se Amazon EC2 recupera un'istanza Spot a causa di un aumento del prezzo o dell'esito negativo di un'istanza, Amazon EMR prova a sostituire l'istanza con uno qualsiasi dei tipi di istanze specificati. In questo modo è più semplice riguadagnare la capacità durante un picco dei prezzi Spot.
Puoi specificare un massimo di cinque tipi di istanze Amazon EC2 per flotta per Amazon EMR da utilizzare per soddisfare gli obiettivi o un massimo di 30 tipi di istanze Amazon EC2 per flotta quando crei un cluster utilizzando l' AWS CLI API Amazon EMR e una strategia di allocazione per e istanze Spot. Strategia di allocazione per parchi istanze On-Demand
Puoi anche selezionare più sottoreti per zone di disponibilità differenti. Quando Amazon EMR avvia il cluster, viene eseguita una ricerca in tali sottoreti per individuare le istanze e le opzioni di acquisto specificate. Se Amazon EMR rileva un evento AWS su larga scala in una o più zone di disponibilità, Amazon EMR tenta automaticamente di indirizzare il traffico lontano dalle zone di disponibilità interessate e prova a lanciare nuovi cluster che crei in zone di disponibilità alternative in base alle tue selezioni. La selezione della zona di disponibilità del cluster avviene solo alla creazione del cluster. I nodi del cluster esistenti non vengono riavviati automaticamente in una nuova zona di disponibilità in caso di interruzione della zona di disponibilità.
Considerazioni per lavorare con flotte di istanze
Considera gli elementi seguenti quando utilizzi il parco istanze con Amazon EMR.
-
Puoi avere uno e un solo parco istanze per tipo di nodo (primario, principale, attività). Puoi specificare fino a cinque tipi di istanze Amazon EC2 per ogni parco istanze del parco istanze Console di gestione AWS (o un massimo di 30 tipi per flotta quando crei un cluster utilizzando l'API AWS CLI o Amazon EMR e un). Strategia di allocazione per parchi istanze
-
Amazon EMR sceglie uno o tutti i tipi di istanze Amazon EC2 specificati per il provisioning sia con le opzioni Spot che con le opzioni di acquisto. On-Demand
-
Puoi stabilire le capacità target per Spot e le On-Demand istanze per il parco macchine e il parco attività principali. Utilizza vCPU o un'unità generica assegnata a ogni istanza Amazon EC2 che esegue il conteggio per il raggiungimento del target. Amazon EMR effettua il provisioning di istanze finché ogni capacità target non viene completamente raggiunta. Per il parco istanze primarie, il target è sempre uno.
-
Puoi scegliere una sottorete (zona di disponibilità) o un intervallo. Se selezioni un intervallo, Amazon EMR effettua il provisioning della capacità nella zona di disponibilità più adatta.
-
Quando si specifica una capacità target per istanze Spot:
-
Per ogni tipo di istanza, specifica un prezzo Spot massimo. Amazon EMR effettua il provisioning delle istanze Spot se il prezzo Spot è inferiore al prezzo Spot massimo. L'utente paga il prezzo Spot, non necessariamente il prezzo Spot massimo.
-
Per ogni parco istanze, definire un periodo di timeout per il provisioning delle istanze Spot. Se Amazon EMR non è in grado di fornire capacità Spot, puoi terminare il cluster o passare invece alla capacità di provisioning. On-Demand Ciò vale solo per il provisioning dei cluster, non per il loro ridimensionamento. Se il periodo di timeout termina durante il processo di ridimensionamento del cluster, le richieste Spot non assegnate al provisioning verranno annullate senza trasferimento di capacità. On-Demand
-
-
Per ogni parco istanze, puoi specificare una delle seguenti strategie di allocazione per le tue istanze Spot: ottimizzata in termini di prezzo/capacità, ottimizzata per la capacità, con priorità ottimizzata per la capacità, con il prezzo più basso o diversificata per tutti i pool.
-
Per ogni parco istanze, puoi applicare le seguenti strategie di allocazione: la strategia con il prezzo più basso o la strategia con priorità. On-Demand
-
Per ogni flotta dotata di On-Demand Istanze, puoi scegliere di applicare le opzioni di prenotazione della capacità.
-
Se utilizzi una strategia di allocazione per esempio per le flotte, quando scegli le sottoreti per il tuo cluster EMR valgono le seguenti considerazioni:
Quando Amazon EMR esegue il provisioning di un cluster con un parco di attività, filtra le sottoreti prive di indirizzi IP disponibili sufficienti per il provisioning di tutte le istanze del cluster EMR richiesto. Ciò include gli indirizzi IP richiesti per le flotte di istanze primarie, principali e di attività durante il lancio del cluster. Amazon EMR sfrutta quindi la propria strategia di allocazione per determinare il pool di istanze, in base al tipo di istanza e alle sottoreti rimanenti con indirizzi IP sufficienti, per avviare il cluster.
Se Amazon EMR non è in grado di avviare l'intero cluster a causa dell'insufficienza di indirizzi IP disponibili, tenterà di identificare le sottoreti con un numero sufficiente di indirizzi IP gratuiti per avviare le flotte di istanze essenziali (principali e primarie). In tali scenari, il parco istanze di attività entrerà in uno stato sospeso anziché terminare il cluster con un errore.
Se nessuna delle sottoreti specificate contiene un numero sufficiente di indirizzi IP per il provisioning delle flotte di istanze principali e primarie essenziali, l'avvio del cluster avrà esito negativo e verrà generato un VALIDATION_ERROR. Ciò attiva un evento di terminazione del cluster di gravità CRITICA, che informa l'utente che il cluster non può essere avviato. Per evitare questo problema, consigliamo di aumentare il numero di indirizzi IP nelle sottoreti.
Se utilizzi Amazon EMR versione emr-7.7.0 e successive e utilizzi una strategia di allocazione per le flotte di istanze, puoi scalare il cluster fino a 4000 istanze EC2 e 14000 volumi EBS per parco di istanze. Per le versioni di release inferiori a emr-7.7.0, il cluster può essere scalato solo fino a 2000 istanze EC2 e 7000 volumi EBS per parco istanze.
-
Quando avvii On-Demand Instances, puoi utilizzare prenotazioni di capacità aperte o mirate per i nodi primari, principali e di attività dei tuoi account. Potresti riscontrare una capacità insufficiente On-Demand nelle istanze con strategia di allocazione, ad esempio nelle flotte. Ti consigliamo di specificare più tipi di istanze per diversificare e ridurre la possibilità che la capacità sia insufficiente. Per ulteriori informazioni, consulta Utilizza le prenotazioni di capacità con le flotte di istanze in Amazon EMR.
Opzioni del parco istanze
Utilizza le seguenti linee guida per comprendere le opzioni del parco istanze.
Argomenti
Impostazione delle capacità target
Specifica le capacità target desiderate per il parco istanze core e il parco istanze di attività. In tal caso, ciò determina il numero di On-Demand istanze e istanze Spot di cui Amazon EMR fornisce. Durante la specifica di un'istanza è l'utente che decide la misura di conteggio di ogni istanza per il raggiungimento del target. Quando viene effettuato il provisioning di un'On-Demand istanza, viene conteggiata ai fini della destinazione. On-Demand Lo stesso vale per istanze Spot. A differenza dei parchi istanze core e attività, il parco istanze primarie è sempre un'unica istanza. Pertanto, la capacità target di questo parco istanze è sempre uno.
Quando utilizzi la console, il vCPU del tipo di istanza Amazon EC2 viene utilizzato come il conteggio per le capacità target per impostazione predefinita. È possibile modificare questo conteggio in unità generiche, quindi specificare il conteggio per ogni tipo di istanza EC2. Quando si utilizza il AWS CLI, si assegnano manualmente unità generiche per ogni tipo di istanza.
Importante
Quando si sceglie un tipo di istanza utilizzando il Console di gestione AWS, il numero di vCPU mostrato per ogni tipo di istanza è il numero di vcore YARN per quel tipo di istanza, non il numero di vCPU EC2 per quel tipo di istanza. Per ulteriori informazioni sul numero di vCPU per ogni tipo di istanza, consulta Tipi di istanza di Amazon EC2
Per ogni parco istanze, specifica fino a cinque tipi di istanza Amazon EC2. Se utilizzi un cluster Strategia di allocazione per parchi istanze e crei un cluster utilizzando l' AWS CLI API Amazon EMR, puoi specificare fino a 30 tipi di istanze EC2 per flotta di istanze. Amazon EMR sceglie qualsiasi combinazione di questi tipi di istanza EC2 per raggiungere le capacità target. Poiché l'obiettivo di Amazon EMR è raggiungere la capacità target completa, si possono verificare costi aggiuntivi. Ad esempio, se la capacità di due unità non viene raggiunta e Amazon EMR è in grado di effettuare il provisioning di un'istanza con un conteggio di cinque unità, il provisioning dell'istanza viene ancora effettuato, ossia la capacità target viene superata di tre unità.
Se riduci la capacità target per ridimensionare un cluster in esecuzione, Amazon EMR tenta di completare le attività dell'applicazione e termina le istanze per soddisfare il nuovo target. Per ulteriori informazioni, consulta Terminazione al completamento dell'attività.
Opzioni di avvio
Per le istanze Spot, puoi specificare un Maximum Spot price (Prezzo Spot massimo) per ogni tipo di istanza in un parco istanze. Puoi impostare questo prezzo come percentuale del On-Demand prezzo o come importo specifico in dollari. Amazon EMR effettua il provisioning di istanze Spot se il prezzo Spot corrente in una zona di disponibilità è inferiore al prezzo Spot massimo. L'utente paga il prezzo Spot, non necessariamente il prezzo Spot massimo.
Nota
Le istanze spot con una durata definita (note anche come blocchi Spot) non sono più disponibili per i nuovi clienti a partire dal 1° luglio 2021. Per i clienti che hanno già utilizzato la funzione, continueremo a supportare le istanze spot con una durata definita fino al 31 dicembre 2022.
Disponibile in Amazon EMR 5.12.1 e versioni successive, hai la possibilità di lanciare flotte Spot e On-Demand Instance con allocazione della capacità ottimizzata. Questa opzione di strategia di allocazione può essere impostata nella versione precedente o utilizzando l'API. Console di gestione AWS RunJobFlow Tieni presente che non è possibile personalizzare la strategia di allocazione nella nuova console. L'utilizzo della strategia di allocazione richiede autorizzazioni aggiuntive per il ruolo di servizio. Se utilizzi il ruolo di servizio Amazon EMR predefinito e la policy gestita (EMR_DefaultRole e AmazonEMRServicePolicy_v2) per il cluster, le autorizzazioni per l'opzione della strategia di allocazione sono già incluse. Se non si utilizza il ruolo di servizio Amazon EMR e la policy gestita predefiniti, è necessario aggiungerli per utilizzare questa opzione. Per informazioni, consulta Ruolo di servizio per Amazon EMR (ruolo EMR).
Per ulteriori informazioni sulle istanze Spot, consulta le istanze Spot nella Amazon EC2 User Guide. Per ulteriori informazioni sulle On-Demand istanze, consulta On-Demand Instances nella Amazon EC2 User Guide.
Se scegli di lanciare flotte di On-Demand istanze con la strategia di allocazione del prezzo più basso, hai la possibilità di utilizzare le prenotazioni di capacità. Le opzioni di prenotazione della capacità possono essere impostate utilizzando l'API RunJobFlow di Amazon EMR. Le prenotazioni della capacità richiedono autorizzazioni aggiuntive per il ruolo di servizio che è necessario aggiungere per utilizzare queste opzioni. Per informazioni, consulta Autorizzazioni della strategia di allocazione. Tieni presente che non è possibile personalizzare le prenotazioni di capacità nella nuova console.
Opzioni di sottorete (zone di disponibilità) multiple
Quando utilizzi parchi istanze, puoi specificare più sottoreti Amazon EC2 all'interno di un VPC ciascuna corrispondente a una zona di disponibilità diversa. Se si utilizzaEC2-Classic, si specificano esplicitamente le zone di disponibilità. Amazon EMR identifica la migliore zona di disponibilità per avviare istanze in base alle specifiche del parco istanze. Il provisioning delle istanze viene sempre effettuato in una sola zona di disponibilità. Puoi selezionare sottoreti private o pubbliche, ma non puoi combinare i due tipi. Inoltre, le sottoreti che specifichi devono trovarsi all'interno dello stesso VPC.
Configurazione del nodo master
Poiché il parco istanze primarie è solo un'istanza singola, la sua configurazione è leggermente diversa dai parchi istanze core e attività. Seleziona solo una delle due istanze On-Demand o Spot per il parco istanze principale perché è costituito da una sola istanza. Se utilizzi la console per creare il parco istanze, la capacità target per l'opzione di acquisto selezionata è impostata su 1. Se usi il AWS CLI, imposta sempre uno TargetSpotCapacity o su 1 TargetOnDemandCapacity a seconda dei casi. Puoi comunque scegliere fino a cinque tipi di istanze per il parco istanze principale (o un massimo di 30 quando utilizzi l'opzione della strategia di allocazione per On-Demand le istanze Spot). Tuttavia, a differenza del parco istanze core e attività, in cui Amazon EMR può effettuare il provisioning di più istanze di diversi tipi, Amazon EMR seleziona un singolo tipo di istanza per effettuare il provisioning per il parco istanze primarie.
Strategia di allocazione per parchi istanze
Con le versioni 5.12.1 e successive di Amazon EMR, puoi utilizzare l'opzione della strategia di allocazione con On-Demand e istanze Spot per ogni nodo del cluster. Quando crei un cluster utilizzando la AWS CLI, l'API Amazon EMR o la console Amazon EMR con una strategia di allocazione, puoi specificare fino a 30 tipi di istanze Amazon EC2 per parco istanze. Con la configurazione predefinita del parco istanze del cluster Amazon EMR, puoi avere fino a 5 tipi di istanze per parco istanze. Si consiglia di utilizzare la strategia di allocazione per un provisioning dei cluster più rapido, un'allocazione più accurata delle istanze Spot e un minor numero di interruzioni delle istanze Spot.
Argomenti
Strategia di allocazione con istanze On-Demand
Le seguenti strategie di allocazione sono disponibili per le tue istanze: On-Demand
lowest-price(impostazione predefinita)La strategia di allocazione del prezzo più basso avvia On-Demand le istanze dal pool con il prezzo più basso che dispone di capacità disponibile. Se il pool con il prezzo più basso non dispone di capacità disponibile, le On-Demand istanze provengono dal successivo pool con capacità disponibile con il prezzo più basso.
prioritizedLa strategia di allocazione con priorità consente di specificare un valore di priorità per ogni tipo di istanza del parco istanze. Amazon EMR lancia le On-Demand istanze con la massima priorità. Se utilizzi questa strategia, devi configurare la priorità per almeno un tipo di istanza. Se non configuri il valore di priorità per un tipo di istanza, Amazon EMR assegna la priorità più bassa a quel tipo di istanza. Ogni parco di istanze (primario, principale o task) in un cluster può avere un valore di priorità diverso per un determinato tipo di istanza.
Nota
Se utilizzi la strategia di allocazione Spot con priorità ottimizzata per la capacità, Amazon EMR applica le stesse priorità sia alle istanze che alle istanze Spot quando stabilisci le priorità. On-Demand
Strategia di allocazione con istanze Spot
Per Istanze Spot puoi scegliere una delle seguenti strategie di allocazione:
price-capacity-optimized(consigliato)-
La strategia di allocazione ottimizzata per prezzo e capacità avvia le istanze Spot dai pool di istanze Spot che hanno la capacità più elevata disponibile e il prezzo più basso per il numero di istanze in fase di avvio. Di conseguenza, la strategia ottimizzata in termini di prezzo/capacità ha in genere maggiori possibilità di ottenere capacità Spot e offre tassi di interruzione inferiori. Questa è la strategia predefinita per le versioni 6.10.0 e successive di Amazon EMR.
capacity-optimized-
La strategia di allocazione ottimizzata per capacità avvia le istanze Spot nei pool più disponibili con le minori possibilità di interruzione nel breve termine. Questa è una buona opzione per i carichi di lavoro che potrebbero avere un costo di interruzione più elevato associato al riavvio del lavoro. Questa è la strategia predefinita per Amazon EMR rilasci 6.9.0 e precedenti.
capacity-optimized-prioritized-
La strategia di allocazione con priorità e ottimizzazione della capacità consente di specificare un valore di priorità per ogni tipo di istanza del tuo parco istanze. Amazon EMR ottimizza innanzitutto la capacità, ma rispetta le priorità dei tipi di istanza nel migliore dei modi, ad esempio se la priorità non influisce in modo significativo sulla capacità del parco di fornire una capacità ottimale. Consigliamo questa opzione se hai carichi di lavoro che devono subire una quantità minima di interruzioni e che richiedono comunque determinati tipi di istanze. Se si utilizza questa strategia, è necessario configurare la priorità per almeno un tipo di istanza. Se non configuri una priorità per nessun tipo di istanza, Amazon EMR assegna il valore di priorità più basso a quel tipo di istanza. Ogni parco di istanze (primario, principale o task) in un cluster può avere un valore di priorità diverso per un determinato tipo di istanza.
Nota
Se utilizzi la strategia di On-Demand allocazione con priorità, Amazon EMR applica lo stesso valore di priorità sia alle tue istanze che a quelle Spot quando stabilisci On-Demand le priorità.
diversified-
Con la strategia di allocazione diversificata, Amazon EC2 distribuisce le istanze Spot in tutti i pool di capacità Spot.
lowest-price-
La strategia di allocazione del prezzo più basso avvia le istanze Spot dal pool con il prezzo più basso con capacità disponibile. Se il pool con il prezzo più basso non ha capacità disponibile, le istanze Spot provengono dal successivo pool con il prezzo più basso che ha capacità disponibile. Se un pool esaurisce la capacità prima di soddisfare la capacità desiderata, Amazon EC2 Fleet continua a soddisfare la richiesta attingendo dal successivo pool con il prezzo più basso. Per accertarti che la capacità desiderata sia soddisfatta, potresti ricevere istanze spot da vari pool. Poiché questa strategia considera solo il prezzo dell'istanza e non la capacità disponibile, potrebbe comportare tassi di interruzione elevati.
Autorizzazioni della strategia di allocazione
L'opzione della strategia di allocazione richiede diverse autorizzazioni IAM incluse automaticamente nel ruolo di servizio Amazon EMR predefinito e nella policy gestita da Amazon EMR (EMR_DefaultRole e AmazonEMRServicePolicy_v2). Se si utilizza un ruolo di servizio o una policy gestita personalizzati per il cluster, è necessario aggiungere queste autorizzazioni prima di creare il cluster. Per ulteriori informazioni, consulta Autorizzazioni della strategia di allocazione.
Le prenotazioni On-Demand di capacità opzionali (ODCR) sono disponibili quando si utilizza l'opzione della strategia di allocazione. On-Demand Le opzioni di prenotazione della capacità ti consentono di specificare una preferenza per utilizzare prima la capacità riservata per i cluster Amazon EMR. È possibile utilizzarla per garantire che i carichi di lavoro critici utilizzino la capacità già riservata utilizzando ODCR aperti o mirati. Per i carichi di lavoro non critici, le preferenze di prenotazione della capacità consentono di specificare se utilizzare la capacità riservata.
Le prenotazioni della capacità possono essere utilizzate solo da istanze che dispongono di attributi corrispondenti (tipo di istanza, piattaforma e zona di disponibilità). Per impostazione predefinita, le prenotazioni di capacità aperta vengono utilizzate automaticamente da Amazon EMR per il provisioning delle On-Demand istanze che corrispondono agli attributi dell'istanza. Se non disponi di istanze in esecuzione che corrispondono agli attributi delle prenotazioni di capacità, queste rimangono inutilizzate finché non avvii un'istanza con attributi corrispondenti. Se non si desidera utilizzare alcuna prenotazione di capacità durante l'avvio del cluster, è necessario impostare la preferenza di prenotazione di capacità su none (nessuna) nelle opzioni di avvio.
Tuttavia, puoi anche utilizzare una prenotazione di capacità per carichi di lavoro specifici. In questo modo puoi controllare in modo esplicito quali istanze possono essere eseguite in quella capacità riservata. Per ulteriori informazioni sulle prenotazioni di On-Demand capacità, consulta. Utilizza le prenotazioni di capacità con le flotte di istanze in Amazon EMR
Autorizzazioni IAM necessarie per una strategia di allocazione
Sono Ruolo di servizio per Amazon EMR (ruolo EMR) necessarie autorizzazioni aggiuntive per creare un cluster che utilizza l'opzione della strategia di allocazione per On-Demand le nostre flotte di istanze Spot.
Queste autorizzazioni sono incluse automaticamente nel ruolo di servizio Amazon EMR EMR_DefaultRole e nella policy gestita da Amazon EMR AmazonEMRServicePolicy_v2.
Se utilizzi un ruolo di servizio o una policy gestita personalizzati per il cluster, devi aggiungere le autorizzazioni seguenti:
Di seguito sono riportate le autorizzazioni del ruolo di servizio necessarie per creare un cluster che utilizza prenotazioni di capacità aperte o mirate. È necessario includere queste autorizzazioni oltre alle autorizzazioni necessarie per l'utilizzo della strategia di allocazione.
Esempio Documento della policy per le prenotazioni di capacità del ruolo di servizio
Per utilizzare le prenotazioni di capacità aperte, è necessario includere le seguenti autorizzazioni aggiuntive.
Esempio
Per utilizzare le prenotazioni di capacità mirate, è necessario includere le seguenti autorizzazioni aggiuntive.
Configurazione di parchi istanze per il cluster
Esempi: creazione di un cluster con la configurazione di parchi istanze
Negli esempi seguenti vengono illustrati i comandi create-cluster con opzioni diverse che è possibile combinare.
Nota
Se in precedenza non sono stati creati il ruolo del servizio Amazon EMR predefinito e il profilo dell'istanza EC2, digitare aws emr create-default-roles per crearli prima di utilizzare il comando create-cluster.
Esempio Esempio: On-Demand primario, On-Demand core con tipo di istanza singolo, VPC predefinito
aws emr create-cluster --release-labelemr-5.3.1--service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}']
Esempio Esempio: primaria spot, core spot con tipo di istanza singola, VPC predefinito
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}'] \ InstanceFleetType=CORE,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
Esempio Esempio: core On-Demand primario misto con tipo di istanza singola, sottorete EC2 singola
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=2,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=2}']
Esempio Esempio: core On-Demand principale, spot con più tipi di istanze ponderati, Timeout per Spot, intervallo di sottoreti EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetSpotCapacity=11,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}
Esempio Esempio: core On-Demand primario, misto e attività con più tipi di istanze ponderati, timeout per le istanze Spot principali, intervallo di sottoreti EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=8,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} \ InstanceFleetType=TASK,TargetOnDemandCapacity=3,TargetSpotCapacity=3,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']
Esempio Esempio: primaria spot, nessuna core o attività, configurazione Amazon EBS, VPC predefinito
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=60,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,\ EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,\ SizeIn GB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iop s=100},VolumesPerInstance=4}]}}']
Esempio Esempio: AMI personalizzate multiple, tipi di istanza multipli, primario on-demand, principale on-demand
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}']
Esempio Esempio: aggiunta di un nodo attività a un cluster in esecuzione con più tipi di istanza e più AMI personalizzate
aws emr add-instance-fleet --cluster-id j-123456 --release-label Amazon EMR 5.3.1 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleet \ InstanceFleetType=Task,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456}',\ '{InstanceType=m6g.xlarge,CustomAmiId=ami-234567}']
Esempio Esempio: utilizzo di un file di configurazione JSON
Puoi configurare i parametri del parco istanze in un file JSON, quindi fare riferimento al file JSON come l'unico parametro per i parchi istanze. Ad esempio, il comando seguente fa riferimento a un file di configurazione JSON, :my-fleet-config.json
aws emr create-cluster --release-label emr-5.30.0 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets file://my-fleet-config.json
Il my-fleet-config.json file specifica i flotte di istanze primarie, principali e di attività, come mostrato nell'esempio seguente. Il parco istanze principali utilizza un prezzo Spot massimo (BidPrice) come percentuale di On-Demand, mentre il parco istanze di attività e primarie utilizza un prezzo Spot massimo (BidPriceAsPercentageofOnDemandPrice) come stringa in USD.
[ { "Name": "Masterfleet", "InstanceFleetType": "MASTER", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "SWITCH_TO_ON_DEMAND" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }, { "Name": "Corefleet", "InstanceFleetType": "CORE", "TargetSpotCapacity": 1, "TargetOnDemandCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "String" } }, "SpotSpecification": { "AllocationStrategy": "capacity-optimized", "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK", "TargetSpotCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } }, "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] } ]
Modifica delle capacità target per un parco istanze
Per specificare nuove capacità target per un parco istanze, utilizza il comando modify-instance-fleet. Devi specificare l'ID cluster e l'ID del parco istanze. Utilizza il comando list-instance-fleets per recuperare ID del parco istanze.
aws emr modify-instance-fleet --cluster-id<cluster-id>\ --instance-fleet \ InstanceFleetId='<instance-fleet-id>',TargetOnDemandCapacity=1,TargetSpotCapacity=1
Aggiunta di un parco istanze attività a un cluster
Se un cluster contiene solo parchi istanze primarie e core, puoi utilizzare il comando add-instance-fleet per aggiungere un parco istanze attività. Puoi utilizzare questo comando solo per aggiungere parchi istanze dell'attività.
aws emr add-instance-fleet --cluster-id<cluster-id>--instance-fleet \ InstanceFleetType=TASK,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
Ottenimento dei dettagli di configurazione per parchi istanze in un cluster
Per ottenere i dettagli di configurazione dei parchi istanze in un cluster, utilizza il comando list-instance-fleets. Il comando richiede un ID cluster come input. Nell'esempio seguente viene illustrato il comando e il relativo output per un cluster che contiene un gruppo di istanze attività primarie e un gruppo di istanze attività core. Per la sintassi completa della risposta, consulta ListInstanceFleets Amazon EMR API Reference.
list-instance-fleets --cluster-id<cluster-id>
{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 6, "Name": "CORE", "InstanceFleetType": "CORE", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "ProvisionedOnDemandCapacity": 2, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m5.xlarge", "WeightedCapacity": 2 } ], "Id": "if-1ABC2DEFGHIJ3" }, { "Status": { "Timeline": { "ReadyDateTime": 1488759058.598, "CreationDateTime": 1488758719.811 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 0, "Name": "MASTER", "InstanceFleetType": "MASTER", "ProvisionedOnDemandCapacity": 1, "InstanceTypeSpecifications": [ { "BidPriceAsPercentageOfOnDemandPrice": 100.0, "InstanceType": "m5.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ] }