Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konfigurieren Sie einheitliche Instanzgruppen für Ihren Amazon EMR-Cluster
Bei der Konfiguration der Instanzgruppen besteht jeder Knotentyp (Master, Core oder Task) aus demselben Instance-Typ und derselben Kaufoption für Instances: On-Demand oder Spot. Sie geben diese Einstellungen beim Erstellen einer Instance-Gruppe an. Sie können später nicht mehr geändert werden. Sie können Core- und Aufgaben-Instance-Gruppen jedoch Instances desselben Typs und derselben Kaufoption hinzufügen. Außerdem können Sie Instances entfernen.
Wenn die On-Demand Instances des Clusters den Attributen der offenen Kapazitätsreservierungen (Instanztyp, Plattform, Tenancy und Availability Zone) entsprechen, die in Ihrem Konto verfügbar sind, werden die Kapazitätsreservierungen automatisch angewendet. Sie können offene Kapazitätsreservierungen für Primär-, Kern- und Aufgabenknoten verwenden. Sie können jedoch keine gezielten Kapazitätsreservierungen verwenden oder verhindern, dass Instances offene Kapazitätsreservierungen mit übereinstimmenden Attributen starten, wenn Sie Cluster mithilfe von Instance-Gruppen bereitstellen. Wenn Sie gezielte Kapazitätsreservierungen verwenden oder verhindern möchten, dass Instances aufgrund offener Kapazitätsreservierungen starten, verwenden Sie stattdessen Instance-Flotten. Weitere Informationen finden Sie unter Verwenden Sie Kapazitätsreservierungen mit Instance-Flotten in Amazon EMR.
Zum Hinzufügen verschiedener Instance-Typen nach dem Erstellen eines Clusters können Sie zusätzliche Aufgaben-Instance-Gruppen hinzufügen. Sie können verschiedene Instance-Typen und Kaufoptionen für jede Instance-Gruppe auswählen. Weitere Informationen finden Sie unter Verwenden Sie die Amazon EMR-Cluster-Skalierung, um sich an wechselnde Workloads anzupassen.
Beim Starten von Instances ist die Kapazitätsreservierungspräferenz der On-Demand Instance standardmäßig auf eingestelltopen, sodass sie in jeder offenen Kapazitätsreservierung mit passenden Attributen (Instance-Typ, Plattform, Availability Zone) ausgeführt werden kann. Weitere Informationen zu On-Demand Kapazitätsreservierungen finden Verwenden Sie Kapazitätsreservierungen mit Instance-Flotten in Amazon EMR Sie unter.
In diesem Abschnitt wird das Erstellen eines Clusters mit einheitlichen Instance-Gruppen beschrieben. Weitere Informationen zum Ändern einer vorhandenen Instance-Gruppe durch Hinzufügen oder Entfernen von Instances manuell oder automatisch mit Auto Scaling finden Sie unter Amazon EMR-Cluster verwalten.
Die Konsole zum Konfigurieren einheitlicher Instance-Gruppen verwenden
Verwenden Sie den AWS CLI , um einen Cluster mit einheitlichen Instanzgruppen zu erstellen
Um die Instance-Gruppenkonfiguration für einen Cluster mithilfe der AWS CLI anzugeben, verwenden Sie den Befehl create-cluster zusammen mit dem Parameter --instance-groups. Amazon EMR geht von der On-Demand Instance-Option aus, sofern Sie das BidPrice Argument nicht für eine Instance-Gruppe angeben. Beispiele für create-cluster Befehle, die einheitliche Instance-Gruppen mit On-Demand Instances und einer Vielzahl von Cluster-Optionen starten, finden Sie aws emr create-cluster help in der Befehlszeile oder unter create-cluster in der AWS CLI Befehlsreferenz.
Sie können den verwenden AWS CLI , um einheitliche Instanzgruppen in einem Cluster zu erstellen, die Spot-Instances verwenden. Der angebotene Spot-Preis hängt der von Availability Zone ab. Wenn Sie die CLI oder API verwenden, können Sie die Availability Zone entweder mit dem AvailabilityZone Argument (wenn Sie ein EC2-classic Netzwerk verwenden) oder dem SubnetID Argument des --ec2-attributes
Parameters angeben. Die ausgewählte Availability Zone oder das Subnetz gilt für den Cluster und wird daher für alle Instance-Gruppen verwendet. Wenn Sie keine Availability Zone oder kein Subnetz explizit angeben, wählt Amazon EMR beim Starten des Clusters die Availability Zone mit dem niedrigsten Spot-Preis aus.
Das folgende Beispiel zeigt einen Befehl create-cluster, mit dem Primär-, Core- und zwei Aufgaben-Instance-Gruppen erstellt werden, die alle Spot Instances verwenden. myKeyErsetzen Sie es durch den Namen Ihres Amazon EC2 EC2-Schlüsselpaars.
Anmerkung
Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).
aws emr create-cluster --name "MySpotCluster" \ --release-labelemr-7.13.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
Mithilfe der CLI können Sie einheitliche Instance-Gruppen-Cluster erstellen, die für jeden Instance-Typ in der Instance-Gruppe ein eindeutiges benutzerdefiniertes AMI angeben. Auf diese Weise können Sie verschiedene Instance-Architekturen in derselben Instance-Gruppe verwenden. Jeder Instance-Typ muss ein benutzerdefiniertes AMI mit einer passenden Architektur verwenden. Sie würden beispielsweise einen m5.xlarge-Instance-Typ mit einem benutzerdefinierten X86_64-Architektur-AMI und einen m6g.xlarge-Instance-Typ mit einem entsprechenden benutzerdefinierten AWS AARCH64 (ARM)-Architektur-AMI konfigurieren.
Das folgende Beispiel zeigt einen einheitlichen Instance-Gruppen-Cluster, der mit zwei Instance-Typen erstellt wurde, von denen jeder sein eigenes benutzerdefiniertes AMI hat. Beachten Sie, dass die benutzerdefinierten AMIs nur auf Instance-Typ-Ebene und nicht auf Clusterebene angegeben werden. Dadurch sollen Konflikte zwischen den AMIs des Instance-Typs und einem AMI auf Cluster-Ebene vermieden werden, die dazu führen würden, dass der Clusterstart fehlschlägt.
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
Sie können einer Instance-Guppe, die Sie einem laufenden Cluster hinzufügen, mehrere benutzerdefinierte AMIs hinzufügen. Das CustomAmiId-Argument kann zusammen mit dem add-instance-groups-Befehl verwendet werden, wie im folgenden Beispiel gezeigt.
aws emr add-instance-groups --cluster-id j-123456 \ --instance-groups \ InstanceGroupType=Task,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456
Verwenden des Java-SDKs zum Erstellen einer Instance-Gruppe
Instanziieren Sie ein Objekt InstanceGroupConfig, das die Konfiguration einer Instance-Gruppe für einen Cluster angibt. Um Spot-Instances zu verwenden, legen Sie die Eigenschaften withBidPrice und withMarket für das Objekt InstanceGroupConfig fest. Der folgende Code zeigt, wie Primär-, Core- und Aufgaben-Instance-Gruppen definiert werden, die Spot Instances ausführen.
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");