EMRIntégration d'Amazon aux groupes EC2 de placement - 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.

EMRIntégration d'Amazon aux groupes EC2 de placement

Lorsque vous lancez un cluster Amazon à nœuds principaux EMR multiples sur AmazonEC2, 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 EMR la version 5.23.0 d'Amazon en tant qu'option pour plusieurs clusters de nœuds principaux. 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 EMR créés par Amazon en suivant la paire clé-valeur qu'Amazon EMR associe à la stratégie des groupes de EMR placement Amazon. 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 EMR à Amazon de créer, de supprimer et de décrire des groupes de placement sur AmazonEC2. Vous devez vous associer AmazonElasticMapReducePlacementGroupPolicy au rôle de service pour Amazon EMR avant de lancer un EMR cluster Amazon avec plusieurs nœuds principaux.

Vous pouvez également associer la politique AmazonEMRServicePolicy_v2 gérée au rôle de EMR service Amazon au lieu de la politique 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 (EMRrôle).

La politique AmazonElasticMapReducePlacementGroupPolicy gérée est le JSON texte suivant créé et administré par AmazonEMR.

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

Lancez un EMR cluster Amazon avec plusieurs nœuds principaux à l'aide d'une stratégie de groupe de placement

Pour lancer un EMR cluster Amazon comportant plusieurs nœuds principaux avec une stratégie de groupe de placement, associez la politique gérée du groupe de placement AmazonElasticMapReducePlacementGroupPolicy au EMR rôle Amazon. 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 EMR cluster Amazon avec plusieurs nœuds principaux, Amazon EMR tente de lancer un cluster avec une SPREAD stratégie appliquée à ses nœuds principaux. Si vous utilisez un rôle auquel la politique de gestion du groupe de placement n'est pas AmazonElasticMapReducePlacementGroupPolicy attachée, Amazon EMR tente de lancer un EMR cluster Amazon comportant plusieurs nœuds principaux sans stratégie de groupe de placement.

Si vous lancez un EMR cluster Amazon comportant plusieurs nœuds principaux avec le placement-group-configs paramètre Amazon EMRAPI ouCLI, Amazon EMR ne lance le cluster que si la politique de gestion du groupe de placement EMRrole est AmazonElasticMapReducePlacementGroupPolicy jointe à Amazon. Si la politique EMRrole n'est pas attachée à Amazon, le démarrage du EMR cluster Amazon avec plusieurs nœuds principaux échoue.

Amazon EMR API
Exemple — Utiliser une stratégie de groupe de placement pour lancer un cluster de groupes d'instances avec plusieurs nœuds principaux depuis Amazon EMR API

Lorsque vous utilisez l' RunJobFlow action pour créer un EMR cluster Amazon 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" }
  • Remplacez ha-cluster avec le nom de votre cluster de haute disponibilité.

  • Remplacez subnet-22XXXX01 avec votre identifiant de sous-réseau.

  • Remplacez le ec2_key_pair_name avec le nom de votre paire de EC2 clés pour ce cluster. EC2la paire de clés est facultative et requise uniquement si vous souhaitez l'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 EMR cluster Amazon 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
  • Remplacez ha-cluster avec le nom de votre cluster de haute disponibilité.

  • Remplacez le ec2_key_pair_name avec le nom de votre paire de EC2 clés pour ce cluster. EC2la paire de clés est facultative et requise uniquement si vous souhaitez l'utiliser SSH pour accéder à votre cluster.

  • Remplacez subnet-22XXXX01 and subnet-22XXXX02avec 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 AmazonEMRrole, ou

  • Lancez un cluster avec plusieurs nœuds principaux avec le placement-group-configs paramètre en utilisant Amazon EMRAPI ou en CLI choisissant NONE comme stratégie de groupe de placement.

Amazon EMR API
Exemple — Lancement d'un cluster avec plusieurs nœuds principaux sans stratégie de groupe de placement à l'aide d'AmazonEMRAPI.

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" }
  • Remplacez ha-cluster avec le nom de votre cluster de haute disponibilité.

  • Remplacez subnet-22XXXX01 avec votre identifiant de sous-réseau.

  • Remplacez le ec2_key_pair_name avec le nom de votre paire de EC2 clés pour ce cluster. EC2la paire de clés est facultative et requise uniquement si vous souhaitez l'utiliser SSH pour accéder à votre cluster.

Amazon EMR CLI
Exemple — Lancement d'un cluster avec plusieurs nœuds principaux sans stratégie de groupe de placement à l'aide d'AmazonEMRCLI.

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
  • Remplacez ha-cluster avec le nom de votre cluster de haute disponibilité.

  • Remplacez subnet-22XXXX01 avec votre identifiant de sous-réseau.

  • Remplacez le ec2_key_pair_name avec le nom de votre paire de EC2 clés pour ce cluster. EC2la paire de clés est facultative et requise uniquement si vous souhaitez l'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 le cluster Amazon EMR Descrive API pour voir la configuration de la stratégie de groupe de placement attachée au cluster comportant plusieurs nœuds principaux.

aws emr describe-cluster --cluster-id "j-xxxxx" { "Cluster":{ "Id":"j-xxxxx", ... ... "PlacementGroups":[ { "InstanceRole":"MASTER", "PlacementStrategy":"SPREAD" } ] } }