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à.
Integrazione di Amazon EMR con gruppi di collocamento EC2
Quando avvii un cluster con più nodi primari Amazon EMR su Amazon EC2, hai la possibilità di utilizzare le strategie dei gruppi di collocamento per specificare come vuoi che le istanze del nodo primario vengano distribuite per assicurare la protezione dai guasti hardware.
Le strategie dei gruppi di collocamento sono supportate a partire da Amazon EMR versione 5.23.0 come opzione per i cluster con più nodi primari. Attualmente, solo i tipi di nodi primari sono supportati dalla strategia del gruppo di collocamento e la strategia SPREAD viene applicata a tali nodi primari. La strategia SPREAD colloca un piccolo gruppo di istanze su hardware sottostante separato per evitare la perdita di più nodi primari in caso di guasto hardware. Una richiesta di avvio di un'istanza potrebbe non riuscire se l'hardware univoco è insufficiente per l'esecuzione della richiesta. Per ulteriori informazioni sulle strategie di collocamento EC2 e sulle limitazioni, consulta Gruppi di collocamento nella Guida per l'utente di Amazon EC2 per le istanze Linux.
Amazon EC2 prevede un limite iniziale di 500 cluster abilitati alla strategia dei gruppi di collocamento che possono essere lanciati per regione. AWS Contatta l' AWS assistenza per richiedere un aumento del numero di gruppi di collocamento consentiti. Puoi identificare i gruppi di collocamento EC2 creati da Amazon EMR monitorando la coppia chiave-valore che Amazon EMR associa alla strategia del gruppo di collocamento Amazon EMR. Per ulteriori informazioni sui tag delle istanze per i cluster EC2, consulta Visualizzazione di istanze cluster in Amazon EC2.
Allega la politica gestita dal gruppo di collocamento ad Amazon EMRrole
La strategia del gruppo di collocamento richiede una policy gestita denominata AmazonElasticMapReducePlacementGroupPolicy per consentire ad Amazon EMR di creare, eliminare e descrivere gruppi di collocamento su Amazon EC2. È necessario collegare AmazonElasticMapReducePlacementGroupPolicy al ruolo di servizio per Amazon EMR prima di avviare un cluster Amazon EMR con più nodi primari.
La policy gestita da Amazon EMR, AmazonEMRServicePolicy_v2, può essere associata al ruolo di Amazon EMR anziché alla policy gestita dal gruppo di collocamento. AmazonEMRServicePolicy_v2 consente lo stesso accesso ai gruppi di collocamento su Amazon EC2 di AmazonElasticMapReducePlacementGroupPolicy. Per ulteriori informazioni, consulta Ruolo di servizio per Amazon EMR (ruolo EMR).
La policy gestita da AmazonElasticMapReducePlacementGroupPolicy è il seguente testo JSON che viene creato e gestito da Amazon EMR.
Poiché la politica AmazonElasticMapReducePlacementGroupPolicy gestita viene aggiornata automaticamente, la politica mostrata qui potrebbe essere out-of-date. Utilizza la console di AWS gestione per visualizzare la politica corrente.
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Resource": [
"*"
],
"Effect": "Allow",
"Action": [
"ec2:DeletePlacementGroup",
"ec2:DescribePlacementGroups"
],
"Sid": "AllowEC2Deleteplacementgroup"
},
{
"Resource": [
"arn:aws:ec2:*:*:placement-group/pg-*"
],
"Effect": "Allow",
"Action": [
"ec2:CreatePlacementGroup"
],
"Sid": "AllowEC2Createplacementgroup"
}
]
}
Avvio di un cluster Amazon EMR con più nodi primari utilizzando una strategia per gruppi di posizionamento
Per avviare un cluster Amazon EMR con più nodi primari con una strategia per gruppi di posizionamento, collega la policy gestita dal gruppo di posizionamento AmazonElasticMapReducePlacementGroupPolicy al ruolo Amazon EMR. Per ulteriori informazioni, consulta Allega la politica gestita dal gruppo di collocamento ad Amazon EMRrole.
Ogni volta che utilizzi questo ruolo per avviare un cluster Amazon EMR con più nodi primari, Amazon EMR tenta di avviare un cluster con la strategia SPREAD applicata ai suoi nodi primari. Se utilizzi un ruolo che non dispone della policy gestita dal gruppo di posizionamento AmazonElasticMapReducePlacementGroupPolicy ad esso collegato, Amazon EMR tenta di avviare un cluster Amazon EMR con più nodi primari senza una strategia per gruppi di posizionamento.
Se avvii un cluster Amazon EMR con più nodi primari con il placement-group-configs parametro utilizzando Amazon EMRAPI o CLI, Amazon EMR avvia il cluster solo se EMRrole Amazon ha la policy gestita del gruppo di collocamento allegata. AmazonElasticMapReducePlacementGroupPolicy Se Amazon EMRrole non ha la policy allegata, l'avvio del cluster Amazon EMR con più nodi primari non funziona.
- Amazon EMR API
-
Esempio Esempio: utilizza una strategia del gruppo di posizionamento per avviare un cluster del gruppo di istanze con più nodi primari dall'API Amazon EMR
Quando utilizzi l' RunJobFlow azione per creare un cluster Amazon EMR con più nodi primari, imposta la PlacementGroupConfigs proprietà su quanto segue. Attualmente, il ruolo dell'istanza MASTER utilizza automaticamente SPREAD come strategia del gruppo di collocamento.
{
"Name":"ha-cluster",
"PlacementGroupConfigs":[
{
"InstanceRole":"MASTER"
}
],
"ReleaseLabel": emr-6.15.0,
"Instances":{
"ec2SubnetId":"subnet-22XXXX01",
"ec2KeyName":"ec2_key_pair_name",
"InstanceGroups":[
{
"InstanceCount":3,
"InstanceRole":"MASTER",
"InstanceType":"m5.xlarge"
},
{
"InstanceCount":4,
"InstanceRole":"CORE",
"InstanceType":"m5.xlarge"
}
]
},
"JobFlowRole":"EMR_EC2_DefaultRole",
"ServiceRole":"EMR_DefaultRole"
}
-
ha-clusterSostituiscilo con il nome del tuo cluster ad alta disponibilità.
-
subnet-22XXXX01Sostituiscilo con il tuo ID di sottorete.
-
Sostituisci ec2_key_pair_name con il nome della tua coppia di chiavi EC2 per questo cluster. La coppia di chiavi EC2 è facoltativa e obbligatoria solo se si desidera utilizzare SSH per accedere al cluster.
- AWS CLI
-
Esempio Esempio: utilizza una strategia di gruppo di collocamento per avviare un cluster di istanze con più nodi primari dal AWS Command Line Interface
Quando utilizzi l' RunJobFlow azione per creare un cluster Amazon EMR con più nodi primari, imposta la PlacementGroupConfigs proprietà su quanto segue. Attualmente, il ruolo dell'istanza MASTER utilizza automaticamente SPREAD come strategia del gruppo di collocamento.
aws emr create-cluster \
--name "ha-cluster" \
--placement-group-configs InstanceRole=MASTER \
--release-label emr-6.15.0 \
--instance-fleets '[
{
"InstanceFleetType": "MASTER",
"TargetOnDemandCapacity": 3,
"TargetSpotCapacity": 0,
"LaunchSpecifications": {
"OnDemandSpecification": {
"AllocationStrategy": "lowest-price"
}
},
"InstanceTypeConfigs": [
{
"WeightedCapacity": 1,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.xlarge"
},
{
"WeightedCapacity": 1,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.2xlarge"
},
{
"WeightedCapacity": 1,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.4xlarge"
}
],
"Name": "Master - 1"
},
{
"InstanceFleetType": "CORE",
"TargetOnDemandCapacity": 5,
"TargetSpotCapacity": 0,
"LaunchSpecifications": {
"OnDemandSpecification": {
"AllocationStrategy": "lowest-price"
}
},
"InstanceTypeConfigs": [
{
"WeightedCapacity": 1,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.xlarge"
},
{
"WeightedCapacity": 2,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.2xlarge"
},
{
"WeightedCapacity": 4,
"BidPriceAsPercentageOfOnDemandPrice": 100,
"InstanceType": "m5.4xlarge"
}
],
"Name": "Core - 2"
}
]' \
--ec2-attributes '{
"KeyName": "ec2_key_pair_name",
"InstanceProfile": "EMR_EC2_DefaultRole",
"SubnetIds": [
"subnet-22XXXX01",
"subnet-22XXXX02"
]
}' \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
-
ha-clusterSostituiscilo con il nome del tuo cluster ad alta disponibilità.
-
Sostituisci ec2_key_pair_name con il nome della tua coppia di chiavi EC2 per questo cluster. La coppia di chiavi EC2 è facoltativa e obbligatoria solo se si desidera utilizzare SSH per accedere al cluster.
-
Sostituisci subnet-22XXXX01 e subnet-22XXXX02 con la tua IDs sottorete.
Avvio di un cluster con più nodi primari Amazon EMR senza strategia del gruppo di collocamento
Affinché un cluster con più nodi primari possa avviare nodi primari senza la strategia del gruppo di collocamento, dovrai effettuare una delle seguenti operazioni:
-
Rimuovi la politica gestita dal gruppo di collocamento AmazonElasticMapReducePlacementGroupPolicy da Amazon EMRrole, oppure
-
Avvia un cluster con più nodi primari Amazon EMR con il parametro placement-group-configs utilizzando l'API o la CLI di Amazon EMR oppure scegliendo NONE come strategia del gruppo di collocamento.
- Amazon EMR API
-
Esempio- Avvio di un cluster con più nodi primari senza strategia del gruppo di collocamento utilizzando l'API di Amazon EMR.
Quando utilizzi l' RunJobFlow azione per creare un cluster con più nodi primari, imposta la PlacementGroupConfigs proprietà su quanto segue.
{
"Name":"ha-cluster",
"PlacementGroupConfigs":[
{
"InstanceRole":"MASTER",
"PlacementStrategy":"NONE"
}
],
"ReleaseLabel":"emr-5.30.1",
"Instances":{
"ec2SubnetId":"subnet-22XXXX01",
"ec2KeyName":"ec2_key_pair_name",
"InstanceGroups":[
{
"InstanceCount":3,
"InstanceRole":"MASTER",
"InstanceType":"m5.xlarge"
},
{
"InstanceCount":4,
"InstanceRole":"CORE",
"InstanceType":"m5.xlarge"
}
]
},
"JobFlowRole":"EMR_EC2_DefaultRole",
"ServiceRole":"EMR_DefaultRole"
}
-
Sostituiscilo ha-cluster con il nome del cluster ad alta disponibilità.
-
subnet-22XXXX01Sostituiscilo con il tuo ID di sottorete.
-
Sostituisci ec2_key_pair_name con il nome della tua coppia di chiavi EC2 per questo cluster. La coppia di chiavi EC2 è facoltativa e obbligatoria solo se si desidera utilizzare SSH per accedere al cluster.
- Amazon EMR CLI
-
Esempio- Avvio di un cluster con più nodi primari senza strategia del gruppo di collocamento utilizzando la CLI Amazon EMR.
Quando utilizzi l' RunJobFlow azione per creare un cluster con più nodi primari, imposta la PlacementGroupConfigs proprietà su quanto segue.
aws emr create-cluster \
--name "ha-cluster" \
--placement-group-configs InstanceRole=MASTER,PlacementStrategy=NONE \
--release-label emr-5.30.1 \
--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \
--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
-
Sostituiscilo ha-cluster con il nome del cluster ad alta disponibilità.
-
subnet-22XXXX01Sostituiscilo con il tuo ID di sottorete.
-
Sostituisci ec2_key_pair_name con il nome della tua coppia di chiavi EC2 per questo cluster. La coppia di chiavi EC2 è facoltativa e obbligatoria solo se si desidera utilizzare SSH per accedere al cluster.
Controllo della configurazione della strategia del gruppo di collocamento associata al cluster con più nodi primari di Amazon EMR
Puoi utilizzare l'API describe cluster di Amazon EMR per visualizzare la configurazione della strategia del gruppo di collocamento associata al cluster con più nodi primari di Amazon EMR.
Esempio
aws emr describe-cluster --cluster-id "j-xxxxx"
{
"Cluster":{
"Id":"j-xxxxx",
...
...
"PlacementGroups":[
{
"InstanceRole":"MASTER",
"PlacementStrategy":"SPREAD"
}
]
}
}