Configuration de groupes d'instances uniformes - Amazon EMR

Configuration de groupes d'instances uniformes

Avec la configuration des groupes d'instances, chaque nœud (maître, principal ou tâche) se compose du même type d'instance et de la même option d'achat pour les instances à la demande ou Spot. Vous spécifiez ces paramètres lorsque vous créez un groupe d'instances. Ils ne peuvent pas être modifiés ultérieurement. Vous pouvez, cependant, ajouter des instances du même type et une option d'achat aux groupes d'instances principaux et de tâches. Vous pouvez aussi supprimer des instances.

Si les instances à la demande du cluster correspondent aux attributs des réserves de capacité ouvertes (type d'instance, plateforme, location et zone de disponibilité) disponibles dans votre compte, les réserves de capacité sont appliquées automatiquement. Vous pouvez utiliser des réserves de capacité ouvertes pour les nœuds primaires, les nœuds du noyau et les nœuds de tâches. Toutefois, vous ne pouvez pas utiliser de réservations de capacité ciblées ni empêcher les instances de se lancer dans des réservations de capacité ouverte avec des attributs correspondants lorsque vous provisionnez des clusters à l'aide de groupes d'instances. Si vous souhaitez utiliser des réservations de capacité ciblées ou empêcher les instances de se lancer dans des réservations de capacité ouverte, utilisez plutôt des parcs d'instances. Pour de plus amples informations, veuillez consulter Utilisation des réserves de capacité avec les parcs d'instances.

Pour ajouter des types d'instances différents après la création d'un cluster, vous pouvez ajouter des groupes d'instances de tâches supplémentaires. Vous pouvez choisir différents types d'instances et différentes options d'achat pour chaque groupe d'instances. Pour de plus amples informations, veuillez consulter Utiliser la mise à l'échelle des clusters.

Lors du lancement des instances, la préférence de réservation de capacité de l'instance à la demande est par défaut open, ce qui lui permet de s'exécuter dans toute réserve de capacité ouverte dont les attributs correspondent (type d'instance, plateforme, zone de disponibilité). Pour plus d'informations sur les réserves de capacité à la demande, consultez Utilisation des réserves de capacité avec les parcs d'instances.

Cette section couvre la création d'un cluster avec des groupes d'instances uniformes. Pour plus d'informations sur la modification d'un groupe d'instances existant par l'ajout ou le retrait d'instances manuellement ou avec un dimensionnement automatique, consultez Gestion des clusters.

Utilisation de la console pour configurer des groupes d'instances uniformes

Note

Nous avons repensé la console Amazon EMR pour la rendre plus facile à utiliser. Consultez Nouveautés de la console pour en savoir plus sur les différences entre les anciennes et les nouvelles expériences de console.

New console
Pour créer un cluster avec des groupes d'instances avec la nouvelle console
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon EMR à l'adresse https://console.aws.amazon.com/emr.

  2. Sous EMR sur EC2 dans le panneau de navigation de gauche, sélectionnez Clusters, puis Créer un cluster.

  3. Sous Configuration du cluster, sélectionnez Groupes d'instances.

  4. Sous Groupes de nœuds, il existe une section pour chaque type de groupe de nœuds. Pour le groupe de nœuds primaires, cochez la case Utiliser plusieurs nœuds primaires si vous souhaitez avoir 3 nœuds primaires. Cochez la case Utiliser l'option d'achat Spot si vous souhaitez utiliser l'option d'achat Spot.

  5. Pour les groupes de nœuds principaux et principaux, sélectionnez Ajouter un type d'instance et choisissez jusqu'à 5 types d'instance. Pour le groupe de tâches, sélectionnez Ajouter un type d'instance et choisissez jusqu'à quinze types d'instance. Amazon EMR peut allouer n'importe quelle combinaison de ces types d'instance lorsqu'il lance le cluster.

  6. Sous chaque type de groupe de nœuds, choisissez le menu déroulant Actions en regard de chaque instance pour modifier ces paramètres :

    Ajoutez des volumes EBS.

    Spécifiez les volumes EBS à attacher au type d'instance après le provisionnement par Amazon EMR.

    Modification du prix Spot maximum

    Spécifiez un prix Spot maximum pour chaque type d'instances dans un parc instances. Vous pouvez définir ce prix sous la forme d'un pourcentage du prix à la demande ou sous la forme d'un montant spécifique en dollars. Si le prix Spot actuel dans une zone de disponibilité est inférieur à votre prix Spot maximum, Amazon EMR met en service des instances Spot. Vous payez le prix Spot, et non le prix Spot maximum.

  7. Vous pouvez éventuellement développez Configuration du nœud pour entrer une configuration JSON ou pour charger JSON depuis Amazon S3.

  8. Choisissez toutes les autres options qui s'appliquent à votre cluster.

  9. Pour lancer votre cluster, choisissez Créer le cluster.

Old console

La procédure suivante couvre les Options avancées lors de la création d'un cluster. L'utilisation des Quick options (Options rapides) permet aussi de créer un cluster avec la configuration des groupes d'instance.

Pour créer un cluster avec des groupes d'instances uniformes avec l'ancienne console
  1. Accédez à la nouvelle console Amazon EMR et sélectionnez Basculer vers l'ancienne console depuis le menu latéral. Pour plus d'informations sur ce qui vous attend lorsque vous passez à l'ancienne console, consultez la rubrique Utilisation de l'ancienne console.

  2. Choisissez Create Cluster (Créer un cluster).

  3. Choisissez Accéder aux options avancées, saisissez les options Configuration des logiciels, puis choisissez Suivant.

  4. Dans l'écran Configuration du matériel, conservez l'option Groupes d'instances uniformes sélectionnée.

  5. Choisissez le Réseau, puis le Sous-réseau EC2 pour votre cluster. Le sous-réseau que vous choisissez est associé à un groupe de disponibilité, répertorié dans chaque sous-réseau. Pour de plus amples informations, veuillez consulter Configuration de la mise en réseau.

    Note

    Votre compte et la région peuvent vous offrir la possibilité de choisir l'option Lancer dans EC2-Classic à côté de Réseau. Si vous choisissez cette option, choisissez une Zone de disponibilité EC2 au lieu d'un Sous-réseau EC2. Pour plus d'informations, consultez Amazon EC2 et Amazon VPC dans le Guide de l'utilisateur Amazon EC2 pour les instances Linux.

  6. Au sein de chaque ligne Type de nœud :

    • Sous Type de nœud, si vous voulez modifier le nom par défaut du groupe d'instances, choisissez l'icône en forme de crayon et saisissez un nom convivial. Si vous voulez supprimer le groupe d'instances Tâche, cliquez sur l'icône X. Choisissez Add task instance group (Ajouter groupe d'instances de tâche) pour ajouter des groupes d'instances supplémentaires de Task (Tâche).

    • Sous Type d'instance, choisissez l'icône en forme de crayon, puis le type d'instance que vous voulez utiliser pour ce type de nœud.

      Important

      Lorsque vous choisissez un type d'instance à l'aide de la commande AWS Management Console, le nombre de vCPU indiqué pour chaque type d'instance correspond au nombre de vcores YARN pour ce type d'instance, et non au nombre de vCPU EC2 pour ce type d'instance. Pour plus d'informations sur le nombre de vCPU pour chaque type d'instance, consultez Types d'instances Amazon EC2.

    • Sous Type d'instance, choisissez l'icône en forme de crayon en regard de Configurations, puis modifiez les configurations des applications pour chaque groupe d'instances.

    • Sous Nombre d'instances, saisissez le nombre d'instances à utiliser pour chaque type de nœud.

    • Sous Option d'achat, choisissez À la demande ou Spot. Si vous choisissez Spot, sélectionnez une option pour le prix maximum des instances Spot. Par défaut, l'option Utiliser le prix à la demande comme prix maximal est sélectionnée. Vous pouvez sélectionner Définir le prix maximal $/h, puis saisir votre prix maximum. La zone de disponibilité du Sous-réseau EC2 que vous choisissez se trouve en dessous du Prix spot maximum.

      Astuce

      Faites une pause sur l'info-bulle Spot pour voir le prix Spot actuel pour les zones de disponibilité dans la région actuelle. Le prix Spot le plus bas figure en vert. Vous pouvez utiliser ces informations pour changer de Sous-réseau EC2.

    • Sous Auto Scaling for Core and Task node types (Auto Scaling pour les types de nœuds de tâche et de noyau), choisissez l'icône en forme de crayon, puis configurez les options de scalabilité automatique (auto scaling). Pour de plus amples informations, veuillez consulter Utilisation de la mise à l'échelle automatique avec une politique personnalisée pour les groupes d'instances .

  7. Choisissez Ajouter un groupe d'instances de tâches et configurez les paramètres comme décrit à l'étape précédente.

  8. Choisissez Suivant, modifiez les autres paramètres du cluster, puis lancez le cluster.

Utilisation de l'AWS CLI pour créer un cluster avec des groupes d'instances uniformes

Pour spécifier la configuration des groupes d'instances pour un cluster à l'aide de l'AWS CLI, utilisez la commande create-cluster avec le paramètre --instance-groups. Amazon EMR utilise l'option Instance à la demande, sauf si vous spécifiez l'argument BidPrice pour un groupe d'instances. Pour obtenir des exemples de commandes create-cluster qui permettent de lancer des groupes d'instances uniformes avec des instances à la demande et une variété d'options de cluster, saisissez aws emr create-cluster help dans la ligne de commande, ou consultez la section create-cluster dans la Référence des commandes AWS CLI.

Vous pouvez utiliser l'AWS CLI pour créer des groupes d'instances uniformes dans un cluster qui utilise des instances Spot. Le prix Spot proposé varie en fonction de la zone de disponibilité. Lorsque vous utilisez l'interface de ligne de commande ou l'API, vous pouvez spécifier la zone de disponibilité à l'aide de l'argument AvailabilityZone (si vous utilisez un réseau EC2-classic) ou de l'argument SubnetID du paramètre --ec2-attributes . La zone de disponibilité ou le sous-réseau que vous sélectionnez s'appliquent au cluster ; ils sont donc utilisés pour tous les groupes d'instances. Si vous ne spécifiez pas une zone de disponibilité ou un sous-réseau de manière explicite, Amazon EMR sélectionne la zone de disponibilité au prix Spot le plus faible lors du lancement du cluster.

L'exemple suivant illustre une commande create-cluster qui crée des groupes d'instances maîtres, principaux et deux groupes d'instances de tâches qui utilisent tous des instances Spot. Remplacez myKey par le nom de votre paire de clés Amazon EC2.

Note

Les caractères de continuation de ligne Linux (\) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

aws emr create-cluster --name "MySpotCluster" \ --release-label emr-5.36.1 \ --use-default-roles \ --ec2-attributes KeyName=myKey \ --instance-groups \ InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,BidPrice=0.25 \ InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=2,BidPrice=0.03 \ InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=4,BidPrice=0.03 \ InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=2,BidPrice=0.04

À l'aide de la CLI, vous pouvez créer des clusters de groupes d'instances uniformes qui spécifient une AMI personnalisée unique pour chaque type d'instance du groupe d'instances. Cela vous permet d'utiliser différentes architectures d'instance dans le même groupe d'instances. Chaque type d'instance doit utiliser une AMI personnalisée avec une architecture correspondante. Par exemple, vous devez configurer un type d'instance m5.xlarge avec une AMI personnalisée d'architecture x86_64, et un type d'instance m6g.xlarge avec une AMI personnalisée d'architecture AWS AARCH64 (ARM) correspondante.

L'exemple suivant montre un cluster de groupes d'instances uniforme créé avec deux types d'instances, chacun doté de sa propre AMI personnalisée. Notez que les AMI personnalisées sont spécifiées uniquement au niveau du type d'instance, et non au niveau du cluster. Cela permet d'éviter les conflits entre les AMI du type d'instance et une AMI au niveau du cluster, ce qui entraînerait l'échec du lancement du cluster.

aws emr create-cluster --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups \ InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 \ InstanceGroupType=CORE,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-234567

Vous pouvez ajouter plusieurs AMI personnalisées à un groupe d'instances que vous ajoutez à un cluster en cours d'exécution. L'argument CustomAmiId peut être utilisé avec la commande add-instance-groups comme le montre l'exemple suivant.

aws emr add-instance-groups --cluster-id j-123456 \ --instance-groups \ InstanceGroupType=Task,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456

Utilisation du kit SDK Java pour créer un groupe d'instances

Vous instanciez un objet InstanceGroupConfig qui spécifie la configuration d'un groupe d'instances pour un cluster. Pour utiliser des instances Spot, vous définissez les propriétés withBidPrice et withMarket sur l'objet InstanceGroupConfig. Le code suivant montre comment définir des groupes d'instances maîtres, principales et de tâches qui exécutent des instances Spot.

InstanceGroupConfig instanceGroupConfigMaster = new InstanceGroupConfig() .withInstanceCount(1) .withInstanceRole("MASTER") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.25"); InstanceGroupConfig instanceGroupConfigCore = new InstanceGroupConfig() .withInstanceCount(4) .withInstanceRole("CORE") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.03"); InstanceGroupConfig instanceGroupConfigTask = new InstanceGroupConfig() .withInstanceCount(2) .withInstanceRole("TASK") .withInstanceType("m4.large") .withMarket("SPOT") .withBidPrice("0.10");