Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Intégration d'Amazon EMR aux groupes de placement EC2
Lorsque vous lancez un cluster à nœuds principaux Amazon EMR sur Amazon EC2, vous avez la possibilité d'utiliser des stratégies de groupes de placement pour spécifier la manière dont vous souhaitez déployer les instances de nœuds principaux afin de les protéger contre les pannes matérielles.
Les stratégies de groupes de placement sont prises en charge à partir de la version 5.23.0 d'Amazon EMR en tant qu'option pour plusieurs clusters de nœuds primaires. Actuellement, seuls les types de nœuds primaires sont pris en charge par la stratégie de groupe de placement, et la stratégie SPREAD
est appliquée à ces nœuds primaires. La stratégie SPREAD
place un petit groupe d'instances sur un matériel sous-jacent distinct afin de se prémunir contre la perte de plusieurs nœuds primaires en cas de panne matérielle. Notez qu'une demande de lancement d'instance peut échouer si le matériel unique est insuffisant pour répondre à la demande. Pour plus d'informations sur les stratégies et les limites de EC2 placement, consultez la section Groupes de placement dans le Guide de EC2 l'utilisateur pour les instances Linux.
Amazon impose une limite initiale EC2 de 500 clusters basés sur la stratégie des groupes de placement qui peuvent être lancés par région. AWS Contactez l' AWS assistance pour demander une augmentation du nombre de groupes de placement autorisés. Vous pouvez identifier les groupes de EC2 placement créés par Amazon EMR en suivant la paire clé-valeur qu'Amazon EMR associe à la stratégie des groupes de placement Amazon EMR. Pour plus d'informations sur les balises des instances de EC2 cluster, consultezAfficher les instances de cluster sur Amazon EC2.
Joindre la politique de gestion du groupe de placement à Amazon EMRrole
La stratégie des groupes de placement nécessite une politique gérée appeléeAmazonElasticMapReducePlacementGroupPolicy
, qui permet à Amazon EMR de créer, de supprimer et de décrire des groupes de placement sur Amazon. EC2 Vous devez associer AmazonElasticMapReducePlacementGroupPolicy
à la fonction du service pour Amazon EMR avant de lancer un cluster Amazon EMR. doté de plusieurs nœuds primaires.
Vous pouvez également associer la politique AmazonEMRServicePolicy_v2
gérée au rôle de service Amazon EMR au lieu de la stratégie gérée par le groupe de placement. AmazonEMRServicePolicy_v2
permet le même accès aux groupes de placement sur Amazon EC2 que leAmazonElasticMapReducePlacementGroupPolicy
. Pour de plus amples informations, veuillez consulter Rôle de service pour Amazon EMR (rôle EMR).
La politique gérée AmazonElasticMapReducePlacementGroupPolicy
est le texte JSON suivant créé et administré par Amazon EMR.
Étant donné que la stratégie AmazonElasticMapReducePlacementGroupPolicy
gérée est mise à jour automatiquement, il se peut que la politique affichée ici l'est out-of-date. Utilisez la console AWS de gestion pour consulter la politique actuelle.
- 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"
}
]
}
Lancement d’un cluster Amazon EMR doté de plusieurs nœuds primaires à l’aide d’une stratégie de groupe de placement
Pour lancer un cluster Amazon EMR doté de plusieurs nœuds primaires à l’aide d’une stratégie de groupe de placement, associez la politique gérée du groupe de placement AmazonElasticMapReducePlacementGroupPolicy
au rôle Amazon EMR. Pour de plus amples informations, veuillez consulter Joindre la politique de gestion du groupe de placement à Amazon EMRrole.
Chaque fois que vous utilisez ce rôle pour démarrer un cluster Amazon EMR doré de plusieurs nœuds primaires, Amazon EMR tente de lancer un cluster avec une stratégie SPREAD
appliquée à ses nœuds primaires. Si vous utilisez un rôle auquel la politique gérée du groupe de placement AmazonElasticMapReducePlacementGroupPolicy
n’est pas associée, Amazon EMR tente de lancer un cluster Amazon EMR doté de plusieurs nœuds primaires sans stratégie de groupe de placement.
Si vous lancez un cluster Amazon EMR comportant plusieurs nœuds principaux avec le placement-group-configs
paramètre via Amazon EMRAPI ou CLI, Amazon EMR ne lance le cluster que si la politique de gestion du groupe de placement est EMRrole attachée à Amazon. AmazonElasticMapReducePlacementGroupPolicy
Si la politique EMRrole n'est pas attachée à Amazon, le démarrage du cluster Amazon EMR avec plusieurs nœuds principaux échoue.
- Amazon EMR API
-
Exemple : utilisation d’une stratégie de groupe de placement pour lancer un cluster de groupes d’instances doté de plusieurs nœuds primaires à partir de l’API Amazon EMR
Lorsque vous utilisez l' RunJobFlow action pour créer un cluster Amazon EMR avec plusieurs nœuds principaux, définissez la PlacementGroupConfigs
propriété sur ce qui suit. Actuellement, le rôle d'instance MASTER
utilise automatiquement SPREAD
comme stratégie de groupe de placement.
{
"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-cluster
Remplacez-le par le nom de votre cluster de haute disponibilité.
-
subnet-22XXXX01
Remplacez-le par votre ID de sous-réseau.
-
Remplacez le ec2_key_pair_name
par le nom de votre paire de EC2 clés pour ce cluster. EC2 La paire de clés est facultative et requise uniquement si vous souhaitez utiliser SSH pour accéder à votre cluster.
- AWS CLI
-
Exemple : utilisation d’une stratégie de groupe de placement pour lancer un cluster de flotte d’instances doté de plusieurs nœuds primaires à partir de la AWS Command Line Interface
Lorsque vous utilisez l' RunJobFlow action pour créer un cluster Amazon EMR avec plusieurs nœuds principaux, définissez la PlacementGroupConfigs
propriété sur ce qui suit. Actuellement, le rôle d'instance MASTER
utilise automatiquement SPREAD
comme stratégie de groupe de placement.
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-cluster
Remplacez-le par le nom de votre cluster de haute disponibilité.
-
Remplacez le ec2_key_pair_name
par le nom de votre paire de EC2 clés pour ce cluster. EC2 La paire de clés est facultative et requise uniquement si vous souhaitez utiliser SSH pour accéder à votre cluster.
-
Remplacez subnet-22XXXX01
et subnet-22XXXX02
par votre sous-réseauIDs.
Lancer un cluster avec plusieurs nœuds primaires sans stratégie de groupe de placement
Pour qu'un cluster comportant plusieurs nœuds primaires puisse lancer des nœuds primaires sans la stratégie du groupe de placement, vous devez effectuer l'une des opérations suivantes :
-
Supprimer la politique de gestion des groupes AmazonElasticMapReducePlacementGroupPolicy
de placement sur Amazon EMRrole, ou
-
Lancez un cluster avec plusieurs nœuds primaires avec le paramètre placement-group-configs
à l'aide de l'API Amazon EMR ou de la CLI en choisissant NONE
comme stratégie de groupe de placement.
- Amazon EMR API
-
Exemple – Lancement d'un cluster avec plusieurs nœuds primaires sans stratégie de groupe de placement à l'aide d'Amazon EMRAPI.
Lorsque vous utilisez l' RunJobFlow action pour créer un cluster avec plusieurs nœuds principaux, définissez la PlacementGroupConfigs
propriété sur ce qui suit.
{
"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"
}
-
ha-cluster
Remplacez-le par le nom de votre cluster de haute disponibilité.
-
subnet-22XXXX01
Remplacez-le par votre ID de sous-réseau.
-
Remplacez le ec2_key_pair_name
par le nom de votre paire de EC2 clés pour ce cluster. EC2 La paire de clés est facultative et requise uniquement si vous souhaitez utiliser SSH pour accéder à votre cluster.
- Amazon EMR CLI
-
Exemple – Lancement d'un cluster avec plusieurs nœuds primaires sans stratégie de groupe de placement à l'aide de l'Amazon EMRCLI.
Lorsque vous utilisez l' RunJobFlow action pour créer un cluster avec plusieurs nœuds principaux, définissez la PlacementGroupConfigs
propriété sur ce qui suit.
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
-
ha-cluster
Remplacez-le par le nom de votre cluster de haute disponibilité.
-
subnet-22XXXX01
Remplacez-le par votre ID de sous-réseau.
-
Remplacez le ec2_key_pair_name
par le nom de votre paire de EC2 clés pour ce cluster. EC2 La paire de clés est facultative et requise uniquement si vous souhaitez utiliser SSH pour accéder à votre cluster.
Vérification de la configuration de la stratégie de groupe de placement attachée au cluster avec plusieurs nœuds primaires
Vous pouvez utiliser l'API de description du cluster Amazon EMR pour voir la configuration de la stratégie de groupe de placement attachée au cluster comportant plusieurs nœuds primaires.
aws emr describe-cluster --cluster-id "j-xxxxx"
{
"Cluster":{
"Id":"j-xxxxx",
...
...
"PlacementGroups":[
{
"InstanceRole":"MASTER",
"PlacementStrategy":"SPREAD"
}
]
}
}