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
Mit der Instance-Gruppenkonfiguration besteht jeder Knotentyp (Master-, Core- oder Aufgabenknoten) 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 in Ihrem Konto verfügbaren Attributen der offenen Kapazitätsreservierungen (Instance-Typ, Plattform, Tenancy und Availability Zone) entsprechen, 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 open
gesetzt, wodurch sie in jeder offenen Kapazitätsreservierung ausgeführt werden kann, die über passende Attribute (Instance-Typ, Plattform, Verfügbarkeitszone) verfügt. Weitere Informationen über On-Demand-Kapazitätsreservierungen finden Sie unter Verwenden Sie Kapazitätsreservierungen mit Instance-Flotten in Amazon EMR.
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, es sei denn, Sie legen das Argument BidPrice
für eine Instance-Gruppe fest. Beispiele der Befehle create-cluster
, mit denen einheitliche Instance-Gruppen mit On-Demand-Instances gestartet werden, und eine Vielzahl von Cluster-Optionen sehen Sie, wenn Sie aws emr create-cluster help
in der Befehlszeile eingeben oder den Abschnitt create-cluster in der AWS CLI -Befehlsreferenz lesen.
Sie können die 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. myKey
Ersetzen Sie es durch den Namen Ihres EC2 Amazon-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.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
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 Werte nur auf Instance-Typ-Ebene angegeben werden, nicht auf Cluster-Ebene. Dadurch sollen Konflikte zwischen dem Instance-Typ AMIs 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 Instanzgruppe AMIs , die Sie einem laufenden Cluster hinzufügen, mehrere benutzerdefinierte Instanzen 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");