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

Note

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

{ "Version":"2012-10-17", "Statement":[ { "Resource":"*", "Effect":"Allow", "Action":[ "ec2:DeletePlacementGroup", "ec2:DescribePlacementGroups" ] }, { "Resource":"arn:aws:ec2:*:*:placement-group/pg-*", "Effect":"Allow", "Action":[ "ec2:CreatePlacementGroup" ] } ] }

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-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 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-clusterRemplacez-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-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 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-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 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" } ] } }