View a markdown version of this page

Intégration d'Amazon EMR aux groupes de placement EC2 - Amazon EMR

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 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 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.

Associez la politique gérée par le groupe de placement au rôle Amazon EMRole

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.

Note

La politique gérée AmazonElasticMapReducePlacementGroupPolicy étant mise à jour automatiquement, la politique présentée ici peut être obsolète. 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 Associez la politique gérée par le groupe de placement au rôle Amazon EMRole.

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 doté de plusieurs nœuds primaires avec le paramètre placement-group-configs à l’aide de l’API Amazon EMR ou de la CLI, Amazon EMR lance le cluster uniquement si la politique gérée du groupe de placement AmazonElasticMapReducePlacementGroupPolicy est associée au rôle Amazon EMR. Si le rôle Amazon EMR n’est pas associé à la politique, le démarrage du cluster Amazon EMR doté de plusieurs nœuds primaires é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 vos identifiants de sous-réseau.

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 :

  • Supprimez la politique gérée du groupe de placement AmazonElasticMapReducePlacementGroupPolicy du rôle Amazon EMR, 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" } ] } }