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 di flotte di istanze per il tuo cluster Amazon EMR
Nota
La configurazione delle flotte di istanze è disponibile solo nelle EMR versioni di Amazon 4.8.0 e successive, escluse le versioni 5.0.0 e 5.0.3.
La configurazione della flotta di istanze per EMR i cluster Amazon ti consente di selezionare un'ampia varietà di opzioni di provisioning per le EC2 istanze Amazon e ti aiuta a sviluppare una strategia di risorse flessibile ed elastica per ogni tipo di nodo del cluster.
Nella configurazione di un parco istanze, specifica una target capacity (capacità target) per le On-Demand Instances (istanze on demand) e le Spot Instances (istanze Spot) all'interno di ogni parco istanze. All'avvio del cluster, Amazon effettua il EMR provisioning delle istanze fino al raggiungimento degli obiettivi. Quando Amazon EC2 recupera un'istanza Spot in un cluster in esecuzione a causa di un aumento di prezzo o di un errore dell'istanza, Amazon EMR cerca di sostituire l'istanza con uno dei tipi di istanza specificati. In questo modo è più semplice riguadagnare la capacità durante un picco dei prezzi Spot.
Puoi specificare un massimo di cinque tipi di EC2 istanze Amazon per flotta EMR da utilizzare per il raggiungimento degli obiettivi o un massimo di 30 tipi di EC2 istanze Amazon per flotta quando crei un cluster utilizzando AWS CLI o Amazon EMR API e una strategia di allocazione per istanze On-Demand e Spot.
Puoi anche selezionare più sottoreti per zone di disponibilità differenti. Quando Amazon EMR avvia il cluster, esamina le sottoreti per trovare 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 tenta EMR 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 sull'utilizzo di flotte di istanze
Prendi in considerazione i seguenti elementi quando utilizzi flotte di istanze con AmazonEMR.
-
Puoi avere uno e un solo parco istanze per tipo di nodo (primario, principale, attività). Puoi specificare fino a cinque tipi di EC2 istanze Amazon per ogni flotta del parco istanze AWS Management Console (o un massimo di 30 tipi per flotta di istanze quando crei AWS CLI un cluster utilizzando Amazon EMR API e unStrategia di allocazione per parchi istanze).
-
Amazon EMR sceglie uno o tutti i tipi di EC2 istanze Amazon specificati per fornire opzioni di acquisto Spot e On-Demand.
-
Puoi definire capacità target per istanze Spot e on demand per il parco istanze principale e il parco istanze attività. Usa v CPU o un'unità generica assegnata a ciascuna EC2 istanza Amazon che conta ai fini degli obiettivi. Amazon effettua il EMR provisioning delle istanze fino al completo raggiungimento della capacità prevista. Per il parco istanze primarie, il target è sempre uno.
-
Puoi scegliere una sottorete (zona di disponibilità) o un intervallo. Se scegli un intervallo, Amazon EMR fornisce la capacità più adatta nella zona di disponibilità.
-
Quando si specifica una capacità target per istanze Spot:
-
Per ogni tipo di istanza, specifica un prezzo Spot massimo. Amazon EMR fornisce 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 non è in EMR grado di fornire la capacità Spot, puoi chiudere il cluster o passare al provisioning di capacità 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 sottoposte a provisioning verranno annullate senza il trasferimento alla capacità on demand.
-
-
Per ogni flotta, puoi specificare una delle seguenti strategie di allocazione per le tue istanze Spot: ottimizzata in rapporto alla capacità di prezzo, ottimizzata in base alla capacità o al prezzo più basso o diversificata tra tutti i pool. capacity-optimized-prioritized
-
Per ogni flotta, puoi applicare le seguenti strategie di allocazione per le tue istanze on demand: la strategia con il prezzo più basso o la strategia prioritaria.
-
Per ogni flotta con istanze On-Demand, puoi scegliere di applicare le opzioni di prenotazione della capacità.
-
Se utilizzi una strategia di allocazione per esempio le flotte, quando scegli le sottoreti per il tuo cluster valgono le seguenti considerazioni: EMR
Quando Amazon effettua il EMR provisioning di un cluster con una flotta di attività, filtra le sottoreti prive di indirizzi IP disponibili sufficienti per effettuare il provisioning di tutte le istanze del cluster richiesto. EMR Ciò include gli indirizzi IP necessari per le flotte di istanze primarie, principali e task durante l'avvio del cluster. Amazon sfrutta EMR quindi la sua 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 di indirizzi IP disponibili insufficienti, tenterà di identificare le sottoreti con un numero sufficiente di indirizzi IP liberi per avviare le flotte di istanze essenziali (principali e primarie). In tali scenari, il tuo parco istanze di task passerà a uno stato sospeso, anziché chiudere il cluster con un errore.
Se nessuna delle sottoreti specificate contiene indirizzi IP sufficienti per effettuare il provisioning delle flotte di istanze principali e primarie essenziali, l'avvio del cluster avrà esito negativo con un _. VALIDATION ERROR Ciò attiva un evento di terminazione del cluster di CRITICALgravità, che notifica all'utente che il cluster non può essere avviato. Per evitare questo problema, si consiglia di aumentare il numero di indirizzi IP nelle sottoreti.
-
Quando avvii le istanze On-Demand, puoi utilizzare prenotazioni di capacità aperte o mirate per i nodi principali, principali e di attività dei tuoi account. Potresti riscontrare una capacità insufficiente con le istanze on demand con strategia di allocazione, ad esempio le flotte. Ti consigliamo di specificare più tipi di istanze per diversificare e ridurre la possibilità che si verifichi una capacità insufficiente. Per ulteriori informazioni, consulta Utilizza le prenotazioni di capacità con 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 istanze on demand e di istanze Spot fornite da Amazon. EMR Durante la specifica di un'istanza è l'utente che decide la misura di conteggio di ogni istanza per il raggiungimento del target. Quando si effettua il provisioning di un'istanza on demand, esegue il conteggio fino al raggiungimento della capacità target 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 usi la console, il tipo vCPUs di EC2 istanza Amazon viene utilizzato come conteggio per le capacità target per impostazione predefinita. Puoi cambiarlo in Unità generiche e quindi specificare il conteggio per ogni tipo di EC2 istanza. 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 AWS Management Console, il numero di v CPU mostrato per ogni tipo di istanza è il numero di YARN vcore per quel tipo di istanza, non il numero di EC2 vCPUs per quel tipo di istanza. Per ulteriori informazioni sul numero di istanze vCPUs per ogni tipo di istanza, consulta Amazon EC2 Instance Types
Per ogni flotta, specifichi fino a cinque tipi di EC2 istanze Amazon. Se utilizzi Strategia di allocazione per parchi istanze e crei un cluster utilizzando Amazon EMRAPI, puoi specificare fino a 30 tipi di EC2 istanze per flotta di istanze. AWS CLI Amazon EMR sceglie qualsiasi combinazione di questi tipi di EC2 istanze per soddisfare le capacità prefissate. Poiché Amazon EMR desidera sfruttare completamente la capacità prevista, potrebbe verificarsi un eccesso. Ad esempio, se ci sono due unità non gestite e Amazon EMR può fornire solo un'istanza con un numero di cinque unità, l'istanza viene comunque fornita, il che significa che la capacità target viene superata di tre unità.
Se riduci la capacità prevista per ridimensionare un cluster in esecuzione, Amazon EMR tenta di completare le attività applicative e interrompe le istanze per soddisfare il nuovo obiettivo. 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 una percentuale del prezzo on demand o come un importo in dollari specifico. Amazon EMR fornisce 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 avviare flotte di istanze Spot e On-Demand con allocazione della capacità ottimizzata. Questa opzione di strategia di allocazione può essere impostata nella versione precedente o utilizzando. AWS Management Console API 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 EMR servizio Amazon e la policy gestita (EMR_DefaultRoleeAmazonEMRServicePolicy_v2
) predefiniti per il cluster, le autorizzazioni per l'opzione di strategia di allocazione sono già incluse. Se non utilizzi il ruolo di EMR servizio e la policy gestita di Amazon predefiniti, devi aggiungerli per utilizzare questa opzione. Per informazioni, consulta Ruolo di servizio per Amazon EMR (EMRruolo).
Per ulteriori informazioni sulle istanze Spot, consulta le istanze Spot nella Amazon EC2 User Guide. Per ulteriori informazioni sulle istanze On-Demand, consulta On-Demand Instances nella Amazon User Guide. EC2
Se si sceglie di avviare parchi istanze on demand con la strategia di allocazione del prezzo più basso, è possibile utilizzare le prenotazioni di capacità. Le opzioni di prenotazione della capacità possono essere impostate utilizzando Amazon EMR APIRunJobFlow
. 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 flotte di istanze, puoi specificare più EC2 sottoreti Amazon all'interno di unaVPC, ognuna corrispondente a una zona di disponibilità diversa. Se utilizzi EC2 -Classic, specifichi le zone di disponibilità in modo esplicito. Amazon EMR identifica la zona di disponibilità migliore per avviare le istanze in base alle specifiche del tuo parco macchine. Il provisioning delle istanze viene sempre effettuato in una sola zona di disponibilità. Puoi selezionare sottoreti private o sottoreti pubbliche, ma non puoi combinare le due e le sottoreti specificate devono trovarsi all'interno della stessa. 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à. Per il parco istanze primarie, puoi selezionare solo on demand o spot 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 o TargetSpotCapacity
su 1 a seconda dei casi. TargetOnDemandCapacity
È comunque possibile scegliere fino a 5 tipi di istanza per il parco istanze primarie (o un massimo di 30 quando si utilizza l'opzione di allocazione delle istanze on demand o spot). Tuttavia, a differenza delle flotte di istanze core e task, in cui Amazon EMR può fornire più istanze di tipi diversi, Amazon EMR seleziona un singolo tipo di istanza da fornire per la flotta di istanze primarie.
Strategia di allocazione per parchi istanze
Con EMR le versioni di Amazon 5.12.1 e successive, puoi utilizzare l'opzione della strategia di allocazione con istanze On-Demand e Spot per ogni nodo del cluster. Quando crei un cluster utilizzando la AWS CLI EMR console Amazon EMR API o Amazon con una strategia di allocazione, puoi specificare fino a 30 tipi di EC2 istanze Amazon per flotta. Con la configurazione predefinita della flotta di istanze del EMR cluster Amazon, puoi avere fino a 5 tipi di istanze per flotta. 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 lancia istanze On-Demand dal pool con il prezzo più basso con capacità disponibile. Se il pool con il prezzo più basso non dispone di capacità disponibile, le istanze on demand provengono dal successivo pool con il prezzo più basso con capacità disponibile.
prioritized
La strategia di allocazione prioritaria consente di specificare un valore di priorità per ogni tipo di istanza del parco istanze. Amazon EMR lancia le tue istanze on demand 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 flotta di istanze (principale, 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 capacity-optimized-prioritizedSpot, Amazon EMR applica le stesse priorità sia alle istanze On-Demand che alle istanze Spot quando stabilisci le priorità.
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 rapporto al rapporto prezzo/capacità ha in genere maggiori possibilità di ottenere capacità Spot e offre tassi di interruzione inferiori. Questa è la strategia predefinita per le versioni di Amazon EMR 6.10.0 e successive.
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 le EMR versioni di Amazon 6.9.0 e precedenti.
capacity-optimized-prioritized
-
La strategia di capacity-optimized-prioritized allocazione ti consente di specificare un valore di priorità per ogni tipo di istanza nel tuo parco istanze. Amazon EMR ottimizza innanzitutto la capacità, ma rispetta le priorità del tipo di istanza al massimo, ad esempio se la priorità non influisce in modo significativo sulla capacità della flotta di fornire una capacità ottimale. Ti consigliamo questa opzione se hai carichi di lavoro che devono subire interruzioni minime e che richiedono comunque determinati tipi di istanze. Se utilizzi questa strategia, devi 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 flotta di istanze (principale, 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 On-Demand con priorità, Amazon EMR applica lo stesso valore di priorità sia alle istanze On-Demand che alle istanze Spot quando stabilisci 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 che soddisfi la capacità richiesta, la EC2 flotta Amazon attinge dal pool successivo con il prezzo più basso per continuare a soddisfare la tua richiesta. 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 IAM autorizzazioni che vengono automaticamente incluse nel ruolo di EMR servizio Amazon predefinito e nella policy EMR gestita di Amazon (EMR_DefaultRole
eAmazonEMRServicePolicy_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 opzionali di capacità On-Demand (ODCRs) sono disponibili quando si utilizza l'opzione della strategia di allocazione On-Demand. Le opzioni di prenotazione della capacità consentono di specificare una preferenza per utilizzare prima la capacità riservata per EMR i cluster Amazon. Puoi utilizzarle per assicurarti che i tuoi carichi di lavoro critici utilizzino la capacità che hai già riservato utilizzando open o targeted. ODCRs 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 di istanze On-Demand 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 capacità On-Demand, consulta Utilizza le prenotazioni di capacità con flotte di istanze in Amazon EMR.
IAMAutorizzazioni richieste per una strategia di allocazione
Il Ruolo di servizio per Amazon EMR (EMRruolo) richiede autorizzazioni aggiuntive per creare un cluster che utilizzi la strategia di allocazione per parchi istanze on demand o Spot.
Includiamo automaticamente queste autorizzazioni nel ruolo di EMR servizio Amazon predefinito EMR_DefaultRolee nella policy EMR AmazonEMRServicePolicy_v2gestita da Amazon.
Se utilizzi un ruolo di servizio o una policy gestita personalizzati per il cluster, devi aggiungere le autorizzazioni seguenti:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DeleteLaunchTemplate", "ec2:CreateLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:CreateLaunchTemplateVersion", "ec2:CreateFleet" ], "Resource": "*" } }
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.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions" ], "Resource": "*" } ] }
Per utilizzare le prenotazioni di capacità mirate, è necessario includere le seguenti autorizzazioni aggiuntive.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions", "resource-groups:ListGroupResources" ], "Resource": "*" } ] }
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 non hai creato in precedenza il ruolo di EMR servizio e il profilo di EC2 istanza di Amazon predefiniti, usali aws emr create-default-roles
per crearli prima di utilizzare il create-cluster
comando.
Esempio: primario On-Demand, core On-Demand con tipo di istanza singola, predefinito VPC
aws emr create-cluster --release-label
emr-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: Spot primary, Spot core con tipo di istanza singola, impostazione predefinita VPC
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: primario su richiesta, core misto con tipo a istanza singola, sottorete singola EC2
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: sistema primario On-Demand, core spot con più tipi di istanza ponderati, Timeout for Spot, Range of Subnet 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: istanze primarie on demand, core miste e task con più tipi di istanze ponderate, 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: Spot primario, nessun core o task, EBS configurazione Amazon, impostazione predefinita VPC
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: più tipi di istanze personalizzateAMIs, più tipi di istanze, primarie on-demand, core 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: aggiungere un nodo di attività a un cluster in esecuzione con più tipi di istanze e più istanze personalizzate AMIs
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: utilizzare un file JSON di configurazione
È possibile configurare i parametri del parco istanze in un JSON file e quindi fare riferimento al JSON file come unico parametro per le flotte di istanze. Ad esempio, il comando seguente fa riferimento a un file JSON di configurazione: 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 le flotte di istanze primarie, principali e task, come illustrato nell'esempio seguente. La flotta di istanze principali utilizza un prezzo Spot massimo (BidPrice
) come percentuale di On-Demand, mentre le flotte di task e istanze primarie utilizzano un prezzo Spot massimo (BidPriceAsPercentageofOnDemandPrice) come stringa. 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. Utilizzate il list-instance-fleets
comando per recuperare la flotta di istanze. IDs
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, ListInstanceFleetsconsulta 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" } ] }