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 à plusieurs nœuds primaires Amazon EMR sur Amazon EC2, vous avez la possibilité d'utiliser des stratégies de groupe 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 de placement et les limites d'EC2, consultez la section Groupes de placement du Guide de l'utilisateur EC2 pour les instances Linux.
Amazon EC2 impose une limite initiale de 500 clusters basés sur la stratégie de groupe 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 placement EC2 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 d'instance de cluster EC2, consultez Afficher les instances de cluster dans Amazon EC2.
Joindre la politique de gestion du groupe de placement à Amazon EMRrole
La stratégie de groupe de placement nécessite une politique gérée appelée AmazonElasticMapReducePlacementGroupPolicy, 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 gérée AmazonEMRServicePolicy_v2 au rôle de service Amazon EMR au lieu de la politique gérée par le groupe de placement. AmazonEMRServicePolicy_v2 permet le même accès aux groupes de placement sur Amazon EC2 que la AmazonElasticMapReducePlacementGroupPolicy. 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 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-clusterRemplacez-le par le nom de votre cluster de haute disponibilité.
-
subnet-22XXXX01Remplacez-le par votre ID de sous-réseau.
-
Remplacez le ec2_key_pair_name par le nom de votre paire de clés EC2 pour ce cluster. La paire de clés EC2 est facultative et obligatoire uniquement si vous souhaitez utiliser SSH pour accéder à votre cluster.
- AWS CLI
-
Exemple Exemple — Utilisez une stratégie de groupe de placement pour lancer un cluster de flotte d'instances avec plusieurs nœuds principaux à partir du 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-clusterRemplacez-le par le nom de votre cluster de haute disponibilité.
-
Remplacez le ec2_key_pair_name par le nom de votre paire de clés EC2 pour ce cluster. La paire de clés EC2 est facultative et obligatoire 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-clusterRemplacez-le par le nom de votre cluster de haute disponibilité.
-
subnet-22XXXX01Remplacez-le par votre ID de sous-réseau.
-
Remplacez le ec2_key_pair_name par le nom de votre paire de clés EC2 pour ce cluster. La paire de clés EC2 est facultative et obligatoire 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-clusterRemplacez-le par le nom de votre cluster de haute disponibilité.
-
subnet-22XXXX01Remplacez-le par votre ID de sous-réseau.
-
Remplacez le ec2_key_pair_name par le nom de votre paire de clés EC2 pour ce cluster. La paire de clés EC2 est facultative et obligatoire 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.
Exemple
aws emr describe-cluster --cluster-id "j-xxxxx"
{
"Cluster":{
"Id":"j-xxxxx",
...
...
"PlacementGroups":[
{
"InstanceRole":"MASTER",
"PlacementStrategy":"SPREAD"
}
]
}
}