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.
Configurez des groupes d'instances uniformes pour votre cluster Amazon EMR
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 Utilisez les réservations de capacité avec les flottes d'instances dans Amazon EMR.
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 Utilisez le dimensionnement du cluster Amazon EMR pour vous adapter à l'évolution des charges de travail.
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 Utilisez les réservations de capacité avec les flottes d'instances dans Amazon EMR.
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 Gérer les clusters Amazon EMR.
Utilisation de la console pour configurer des groupes d'instances uniformes
Utilisez le 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 le 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 la CLI ou l'API, vous pouvez spécifier la zone de disponibilité soit avec l'AvailabilityZone
argument (si vous utilisez un réseau EC2 -classic), soit avec l'SubnetID
argument du --ec2-attributes
paramètre. 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. myKey
Remplacez-le par le nom de votre paire de EC2 clés Amazon.
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-labelemr-7.7.0
\ --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 paramètres personnalisés AMIs sont spécifiés uniquement au niveau du type d'instance, et non au niveau du cluster. Cela permet d'éviter les conflits entre le type d'instance AMIs et une AMI au niveau du cluster, qui entraîneraient 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 éléments personnalisés AMIs à 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");