Utilizza le prenotazioni di capacità con flotte di istanze 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à.

Utilizza le prenotazioni di capacità con flotte di istanze in Amazon EMR

Per avviare parchi istanze on demand con opzioni di prenotazione della capacità, allega autorizzazioni aggiuntive per il ruolo di servizio necessarie per utilizzare le opzioni di prenotazione della capacità. Poiché le opzioni di prenotazione della capacità devono essere utilizzate insieme alla strategia di allocazione on demand, è necessario includere anche le autorizzazioni necessarie per la strategia di allocazione nel ruolo di servizio e nella policy gestita. Per ulteriori informazioni, consulta Autorizzazioni della strategia di allocazione.

Amazon EMR supporta prenotazioni di capacità aperte e mirate. Negli argomenti seguenti vengono illustrate le configurazioni dei gruppi di istanze che è possibile utilizzare con l'operazione RunJobFlow o il comando create-cluster per avviare parchi istanze mediante prenotazioni della capacità on demand.

Utilizzo delle prenotazioni della capacità aperte in base al miglior tentativo

Se le istanze on demand del cluster corrispondono agli attributi delle prenotazioni di capacità aperta (tipo di istanza, piattaforma, tenancy e zona di disponibilità) disponibili nell'account, le prenotazioni di capacità vengono applicate automaticamente. Tuttavia, non è garantito che le prenotazioni di capacità verranno utilizzate. Per il provisioning del cluster, Amazon EMR valuta tutti i pool di istanze specificati nella richiesta di avvio e utilizza quello con il prezzo più basso che ha una capacità sufficiente per avviare tutti i nodi principali richiesti. Le prenotazioni della capacità aperte disponibili che corrispondono al pool di istanze vengono applicate automaticamente. Se le prenotazioni della capacità aperte disponibili non corrispondono al pool di istanze, rimangono inutilizzate.

Una volta eseguito il provisioning dei nodi principali, la zona di disponibilità viene selezionata e risolta. Amazon effettua il EMR provisioning dei task node nei pool di istanze, a partire da quelli con il prezzo più basso, nella zona di disponibilità selezionata fino al provisioning di tutti i task node. Le prenotazioni della capacità aperte disponibili che corrispondono al pool di istanze vengono applicate automaticamente.

Di seguito sono riportati i casi d'uso della logica di allocazione della EMR capacità di Amazon per l'utilizzo ottimale delle prenotazioni di capacità aperta.

Esempio 1: il pool di istanze a prezzo più basso nella richiesta di avvio dispone di prenotazioni della capacità aperte disponibili

In questo caso, Amazon EMR lancia la capacità nel pool di istanze con il prezzo più basso con le istanze On-Demand. Le prenotazioni della capacità aperte disponibili in quel pool di istanze vengono utilizzate automaticamente.

Strategia on-demand lowest-price
Capacità richiesta 100
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità aperte disponibili 150 100 100
Prezzo su richiesta $ $$ $$$
Istanze con provisioning 100 - -
Prenotazione della capacità aperta utilizzata 100 - -
Prenotazioni della capacità aperte disponibili 50 100 100

Dopo l'avvio del parco istanze, puoi eseguire describe-capacity-reservations per vedere quante prenotazioni di capacità sono rimaste inutilizzate.

Esempio 2: il pool di istanze a prezzo più basso nella richiesta di avvio non dispone di prenotazioni della capacità aperte disponibili

In questo caso, Amazon EMR lancia la capacità nel pool di istanze con il prezzo più basso con le istanze On-Demand. Tuttavia, le prenotazioni della capacità aperte rimangono inutilizzate.

Strategia on-demand lowest-price
Capacità richiesta 100
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge

Prenotazioni della capacità aperte disponibili

- - 100
Prezzo su richiesta $ $$ $$$
Istanze con provisioning 100 - -
Prenotazione della capacità aperta utilizzata - - -
Prenotazioni della capacità aperte disponibili - - 100

Configurazione dei parchi istanze per utilizzare le prenotazioni della capacità aperte in base al miglior tentativo

Quando utilizzi l'operazione RunJobFlow per creare un cluster basato sul parco istanze, imposta la strategia di allocazione on demand lowest-price e CapacityReservationPreference per le opzioni di prenotazione di capacità su open. In alternativa, se lasci vuoto questo campo, Amazon imposta per EMR impostazione predefinita la preferenza di prenotazione della capacità dell'istanza On-Demand su. open

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "open" } } }

Puoi anche utilizzare Amazon EMR CLI per creare un cluster basato su una flotta di istanze utilizzando prenotazioni a capacità aperta.

aws emr create-cluster \ --name 'open-ODCR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={CapacityReservationPreference=open}}'}

Dove,

  • open-ODCR-cluster viene sostituito con il nome del cluster che utilizza le prenotazioni della capacità aperte.

  • subnet-22XXXX01 viene sostituito con l'ID della sottorete.

Usa prima le prenotazioni della capacità aperte

Puoi scegliere di sostituire la strategia di allocazione del prezzo più basso e dare priorità utilizzando le prenotazioni di capacità aperta disponibili prima durante il provisioning di un cluster Amazon. EMR In questo caso, Amazon EMR valuta tutti i pool di istanze con prenotazioni di capacità specificate nella richiesta di avvio e utilizza quello con il prezzo più basso che ha una capacità sufficiente per avviare tutti i core node richiesti. Se nessuno dei pool di istanze con prenotazioni di capacità dispone di una capacità sufficiente per i nodi principali richiesti, Amazon EMR ricorre al caso best-effort descritto nell'argomento precedente. In altre parole, Amazon EMR rivaluta tutti i pool di istanze specificati nella richiesta di avvio e utilizza quello con il prezzo più basso che ha una capacità sufficiente per avviare tutti i core node richiesti. Le prenotazioni della capacità aperte disponibili che corrispondono al pool di istanze vengono applicate automaticamente. Se le prenotazioni della capacità aperte disponibili non corrispondono al pool di istanze, rimangono inutilizzate.

Una volta eseguito il provisioning dei nodi principali, la zona di disponibilità viene selezionata e risolta. Amazon effettua il EMR provisioning dei task node in pool di istanze con prenotazioni di capacità, a partire da quelli con il prezzo più basso, nella zona di disponibilità selezionata fino al provisioning di tutti i task node. Amazon EMR utilizza innanzitutto le prenotazioni di capacità aperta disponibili in ogni pool di istanze nella zona di disponibilità selezionata e, solo se necessario, utilizza la strategia del prezzo più basso per fornire i nodi di attività rimanenti.

Di seguito sono riportati i casi d'uso della logica di allocazione della EMR capacità di Amazon per utilizzare prima le prenotazioni di capacità aperta.

Esempio 1: il pool di istanze con prenotazioni della capacità aperte disponibili nella richiesta di avvio ha una capacità sufficiente per i nodi principali

In questo caso, Amazon EMR avvia la capacità nel pool di istanze con prenotazioni di capacità aperta disponibili indipendentemente dal prezzo del pool di istanze. Di conseguenza, le prenotazioni della capacità aperte vengono utilizzate quando possibile, fino a quando non viene eseguito il provisioning di tutti i nodi principali.

Strategia on-demand lowest-price
Capacità richiesta 100
Strategia di utilizzo use-capacity-reservations-first
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità aperte disponibili - - 150
Prezzo su richiesta $ $$ $$$
Istanze con provisioning - - 100
Prenotazione della capacità aperta utilizzata - - 100
Prenotazioni della capacità aperte disponibili - - 50

Esempio 2: il pool di istanze con prenotazioni della capacità aperte disponibili nella richiesta di avvio non dispone di capacità sufficiente per i nodi principali

In questo caso, Amazon EMR torna a lanciare nodi principali utilizzando una strategia al prezzo più basso con il massimo impegno per utilizzare le prenotazioni di capacità.

Strategia on-demand lowest-price
Capacità richiesta 100
Strategia di utilizzo use-capacity-reservations-first
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità aperte disponibili 10 50 50
Prezzo su richiesta $ $$ $$$
Istanze con provisioning 100 - -
Prenotazione della capacità aperta utilizzata 10 - -
Prenotazioni della capacità aperte disponibili - 50 50

Dopo l'avvio del parco istanze, puoi eseguire describe-capacity-reservations per vedere quante prenotazioni di capacità sono rimaste inutilizzate.

Configurazione dei parchi istanze per utilizzare prima le prenotazioni della capacità aperte

Quando utilizzi l'operazione RunJobFlow per creare un cluster basato sul parco istanze, imposta la strategia di allocazione on-demand su lowest-price e UsageStrategy per CapacityReservationOptions su use-capacity-reservations-first.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } } }

Puoi anche utilizzare Amazon EMR CLI per creare un cluster basato sul parco istanze utilizzando prima le prenotazioni di capacità.

aws emr create-cluster \ --name 'use-CR-first-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={UsageStrategy=use-capacity-reservations-first}}'}

Dove,

  • use-CR-first-cluster viene sostituito con il nome del cluster che utilizza le prenotazioni della capacità aperte.

  • subnet-22XXXX01 viene sostituito con l'ID della sottorete.

Usa prima le prenotazioni della capacità mirate

Quando effettui il provisioning di un EMR cluster Amazon, puoi scegliere di ignorare la strategia di allocazione al prezzo più basso e dare priorità utilizzando prima le prenotazioni di capacità mirate disponibili. In questo caso, Amazon EMR valuta tutti i pool di istanze con prenotazioni di capacità mirate specificate nella richiesta di avvio e sceglie quello con il prezzo più basso che ha una capacità sufficiente per avviare tutti i core node richiesti. Se nessuno dei pool di istanze con prenotazioni di capacità mirate dispone di una capacità sufficiente per i nodi principali, Amazon EMR ricorre al modello best-effort descritto in precedenza. In altre parole, Amazon EMR rivaluta tutti i pool di istanze specificati nella richiesta di avvio e seleziona quello con il prezzo più basso che ha una capacità sufficiente per avviare tutti i core node richiesti. Le prenotazioni della capacità aperte disponibili che corrispondono al pool di istanze vengono applicate automaticamente. Tuttavia, le prenotazioni della capacità mirate rimangono inutilizzate.

Una volta eseguito il provisioning dei nodi principali, la zona di disponibilità viene selezionata e risolta. Amazon effettua il EMR provisioning dei task node in pool di istanze con prenotazioni di capacità mirate, a partire da quelli con il prezzo più basso, nella zona di disponibilità selezionata fino al provisioning di tutti i task node. Amazon EMR cerca innanzitutto di utilizzare le prenotazioni di capacità mirate disponibili in ogni pool di istanze nella zona di disponibilità selezionata. Quindi, solo se necessario, Amazon EMR utilizza la strategia del prezzo più basso per fornire i nodi di attività rimanenti.

Di seguito sono riportati i casi d'uso della logica di allocazione della EMR capacità di Amazon per utilizzare prima le prenotazioni di capacità mirate.

Esempio 1: il pool di istanze con prenotazioni della capacità mirate disponibili nella richiesta di avvio ha una capacità sufficiente per i nodi principali

In questo caso, Amazon EMR avvia la capacità nel pool di istanze con prenotazioni di capacità mirate disponibili indipendentemente dal prezzo del pool di istanze. Di conseguenza, le prenotazioni della capacità mirate vengono utilizzate quando possibile, fino a quando non viene eseguito il provisioning di tutti i nodi principali.

Strategia on-demand lowest-price
Strategia di utilizzo use-capacity-reservations-first
Capacità richiesta 100
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità mirate disponibili - - 150
Prezzo su richiesta $ $$ $$$
Istanze con provisioning - - 100
Prenotazione della capacità mirata utilizzata - - 100
Prenotazioni della capacità mirate disponibili - - 50
Esempio 2: il pool di istanze con prenotazioni della capacità mirate disponibili nella richiesta di avvio non dispone di capacità sufficiente per i nodi principali
Strategia su richiesta lowest-price
Capacità richiesta 100
Strategia di utilizzo use-capacity-reservations-first
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità mirate disponibili 10 50 50
Prezzo su richiesta $ $$ $$$
Istanze con provisioning 100 - -
Prenotazioni della capacità mirate utilizzate 10 - -
Prenotazioni della capacità mirate disponibili - 50 50

Dopo l'avvio del parco istanze, puoi eseguire describe-capacity-reservations per vedere quante prenotazioni di capacità sono rimaste inutilizzate.

Configurazione dei parchi istanze per utilizzare prima le prenotazioni della capacità mirate

Quando utilizzi l'operazione RunJobFlow per creare un cluster basato sul parco istanze, imposta la strategia di allocazione on demand su lowest-price, UsageStrategy per CapacityReservationOptions su use-capacity-reservations-first e CapacityReservationResourceGroupArn per CapacityReservationOptions su <your resource group ARN>. Per ulteriori informazioni, consulta Lavora con le prenotazioni di capacità nella Amazon EC2 User Guide.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup" } } }

Dove arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup viene sostituito dal tuo gruppo di risorseARN.

Puoi anche utilizzare Amazon EMR CLI per creare un cluster basato su una flotta di istanze utilizzando prenotazioni di capacità mirate.

aws emr create-cluster \ --name 'targeted-CR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,\ InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={UsageStrategy=use-capacity-reservations-first,CapacityReservationResourceGroupArn=arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup}}'}

Dove,

  • targeted-CR-cluster viene sostituito con il nome del cluster che utilizza le prenotazioni della capacità mirate.

  • subnet-22XXXX01 viene sostituito con l'ID della sottorete.

  • arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroupviene sostituito dal tuo gruppo di risorse. ARN

Come evitare l'utilizzo delle prenotazioni della capacità aperte disponibili

Se vuoi evitare di utilizzare inaspettatamente le tue prenotazioni di capacità aperta quando avvii un EMR cluster Amazon, imposta la strategia di allocazione On-Demand su e per. lowest-price CapacityReservationPreference CapacityReservationOptions none Altrimenti, Amazon imposta per EMR impostazione predefinita la preferenza di prenotazione della capacità dell'istanza On-Demand open e prova a utilizzare le prenotazioni di capacità aperta disponibili con la massima diligenza possibile.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } } }

Puoi anche utilizzare Amazon EMR CLI per creare un cluster basato su una flotta di istanze senza utilizzare alcuna prenotazione di capacità aperta.

aws emr create-cluster \ --name 'none-CR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={CapacityReservationPreference=none}}'}

Dove,

  • none-CR-cluster viene sostituito con il nome del cluster che non utilizza le prenotazioni della capacità aperte.

  • subnet-22XXXX01 viene sostituito con l'ID della sottorete.

Scenari per l'utilizzo delle prenotazioni della capacità

È possibile utilizzare le prenotazioni della capacità nei seguenti scenari.

Scenario 1: Rotazione di un cluster a esecuzione prolungata utilizzando le prenotazioni della capacità

Quando si ruota un cluster a esecuzione prolungata, è possibile che siano richiesti requisiti rigorosi per i tipi di istanza e le zone di disponibilità per le nuove istanze di cui si esegue il provisioning. Con le prenotazioni della capacità, è possibile utilizzare la garanzia della capacità per completare la rotazione del cluster senza interruzioni.

Rotazione del cluster utilizzando prenotazioni della capacità disponibili
Scenario 2: Provisioning di cluster di breve durata successivi utilizzando le prenotazioni della capacità

È possibile utilizzare le prenotazioni della capacità anche per eseguire il provisioning di un gruppo di cluster successivi e di breve durata per singoli carichi di lavoro in modo che quando si chiude un cluster, il cluster successivo possa utilizzare le prenotazioni della capacità. È possibile utilizzare le prenotazioni della capacità mirate per assicurarsi che solo i cluster previsti utilizzino le prenotazioni della capacità.

Provisioning di un cluster di breve durata che utilizza prenotazioni della capacità disponibili