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.
Instance-Flotten konfigurieren
Anmerkung
Die Konfiguration der Instance-Flotten ist nur in EMR Amazon-Versionen 4.8.0 und höher verfügbar, mit Ausnahme von 5.0.0 und 5.0.3.
Mit der Instance-Flottenkonfiguration für EMR Amazon-Cluster können Sie eine Vielzahl von Bereitstellungsoptionen für EC2 Amazon-Instances auswählen und eine flexible und elastische Ressourcenstrategie für jeden Knotentyp in Ihrem Cluster entwickeln.
In einer Instance-Flottenkonfiguration geben Sie eine Zielkapazität für On-Demand-Instances und Spot Instances innerhalb jeder Flotte an. Wenn der Cluster gestartet wird, stellt Amazon EMR Instances bereit, bis die Ziele erfüllt sind. Wenn Amazon aufgrund einer Preiserhöhung oder eines Instance-Fehlers eine Spot-Instance in einem laufenden Cluster EC2 zurückfordert, EMR versucht Amazon, die Instance durch einen der von Ihnen angegebenen Instance-Typen zu ersetzen. Dies erleichtert die Wiedererlangung der Kapazität während eines Anstiegs der Spot-Preise.
Sie können maximal fünf EC2 Amazon-Instance-Typen pro Flotte angeben, die Amazon EMR bei der Erfüllung der Ziele verwendet, oder maximal 30 EC2 Amazon-Instance-Typen pro Flotte, wenn Sie einen Cluster mit AWS CLI oder Amazon EMR API und einer Zuweisungsstrategie für On-Demand- und Spot-Instances erstellen.
Sie können auch mehrere Subnetze für verschiedene Availability Zones auswählen. Wenn Amazon den Cluster EMR startet, durchsucht es diese Subnetze nach den von Ihnen angegebenen Instances und Kaufoptionen. Wenn Amazon ein AWS großes Ereignis in einer oder mehreren Availability Zones EMR feststellt, versucht Amazon EMR automatisch, den Verkehr von den betroffenen Availability Zones wegzuleiten und versucht, neue Cluster zu starten, die Sie entsprechend Ihrer Auswahl in alternativen Availability Zones erstellen. Beachten Sie, dass die Auswahl der Cluster-Availability-Zone nur bei der Cluster-Erstellung erfolgt. Bestehende Clusterknoten werden bei einem Ausfall der Availability Zone nicht automatisch in einer neuen Availability Zone neu gestartet.
Überlegungen zur Arbeit mit Instance-Flotten
Beachten Sie die folgenden Punkte, wenn Sie Instance-Flotten mit Amazon EMR verwenden.
-
Sie können eine Instance-Flotte haben, und zwar nur eine pro Knotentyp (Primär, Core, Aufgabe). Sie können bis zu fünf EC2 Amazon-Instance-Typen für jede Flotte auf der angeben AWS Management Console (oder maximal 30 Typen pro Instance-Flotte, wenn Sie einen Cluster mit AWS CLI oder Amazon EMR API und an erstellenZuweisungsstrategie für Flotten).
-
Amazon EMR wählt einen oder alle der angegebenen EC2 Amazon-Instance-Typen aus, um sowohl Spot- als auch On-Demand-Kaufoptionen bereitzustellen.
-
Legen Sie Zielkapazitäten für Spot- und On-Demand-Instances für die Core- und Aufgaben-Flotte fest. Verwenden Sie v CPU oder eine generische Einheit, die jeder EC2 Amazon-Instance zugewiesen ist, die auf die Ziele angerechnet wird. Amazon EMR stellt Instances bereit, bis jede Zielkapazität vollständig erfüllt ist. Für die Primär-Flotte ist das Ziel immer auf 1 gesetzt.
-
Sie können ein Subnetz (Availability Zone) oder einen Bereich auswählen. Wenn Sie sich für einen Bereich entscheiden, stellt Amazon EMR die Kapazität in der Availability Zone bereit, die am besten zu Ihnen passt.
-
Hinweise zum Angeben der Zielkapazität für Spot-Instances:
-
Bestimmen Sie für jeden Instance-Typ einen maximalen Spot-Preis. Amazon stellt EMR Spot-Instances bereit, wenn der Spot-Preis unter dem maximalen Spot-Preis liegt. Sie zahlen den Spot-Preis, nicht unbedingt den maximalen Spot-Preis.
-
Für jede Flotte definieren Sie einen Timeout-Zeitraum für die Bereitstellung von Spot-Instances. Wenn Amazon keine Spot-Kapazität bereitstellen EMR kann, können Sie den Cluster beenden oder stattdessen zur Bereitstellung von On-Demand-Kapazität wechseln. Dies gilt nur für die Bereitstellung von Clustern, nicht für deren Größenänderung. Wenn der Timeout-Zeitraum während der Größenänderung des Clusters endet, werden Spot-Anfragen, die nicht bereitgestellt wurden, für ungültig erklärt, ohne dass sie auf On-Demand-Kapazität übertragen werden.
-
-
Für jede Flotte können Sie eine der folgenden Zuweisungsstrategien für Ihre Spot-Instances angeben: preiskapazitätsoptimiert, kapazitätsoptimiert capacity-optimized-prioritized, kostengünstigster Preis oder diversifiziert über alle Pools hinweg.
-
Für jede Flotte können Sie die folgenden Zuweisungsstrategien für Ihre On-Demand-Instances anwenden: die Strategie mit dem niedrigsten Preis oder die Strategie mit Priorität.
-
Für jede Flotte mit On-Demand-Instances können Sie wählen, ob Sie Optionen zur Kapazitätsreservierung anwenden möchten.
-
Wenn Sie eine Zuweisungsstrategie für Instance-Flotten verwenden, sollten Sie bei der Auswahl von Subnetzen für Ihren EMR Cluster die folgenden Überlegungen beachten:
Wenn Amazon EMR einen Cluster mit einer Task-Flotte bereitstellt, filtert es Subnetze heraus, denen genügend verfügbare IP-Adressen fehlen, um alle Instances des angeforderten EMR Clusters bereitzustellen. Dazu gehören IP-Adressen, die für die Primär-, Kern- und Task-Instance-Flotten beim Cluster-Start erforderlich sind. Amazon nutzt EMR dann seine Zuweisungsstrategie, um den Instance-Pool auf der Grundlage des Instance-Typs und der verbleibenden Subnetze mit ausreichend IP-Adressen zu bestimmen, um den Cluster zu starten.
Wenn Amazon aufgrund unzureichender verfügbarer IP-Adressen EMR nicht den gesamten Cluster starten kann, versucht Amazon, Subnetze mit ausreichend freien IP-Adressen zu identifizieren, um die wesentlichen (Kern- und primären) Instance-Flotten zu starten. In solchen Szenarien wird Ihre Task-Instance-Flotte in einen angehaltenen Zustand versetzt, anstatt den Cluster mit einem Fehler zu beenden.
Wenn keines der angegebenen Subnetze genügend IP-Adressen für die Bereitstellung der wichtigsten Core- und primären Instance-Flotten enthält, schlägt der Clusterstart mit einem _ fehl. VALIDATION ERROR Dadurch wird ein Ereignis mit einem CRITICALschwerwiegenden Clusterabbruch ausgelöst, das Sie darüber informiert, dass der Cluster nicht gestartet werden kann. Um dieses Problem zu vermeiden, empfehlen wir, die Anzahl der IP-Adressen in Ihren Subnetzen zu erhöhen.
-
Wenn Sie On-Demand-Instances starten, können Sie offene oder gezielte Kapazitätsreservierungen für Primär-, Kern- und Task-Knoten in Ihren Konten verwenden. Bei On-Demand-Instances mit einer Zuweisungsstrategie für Instance-Flotten ist die Kapazität möglicherweise nicht ausreichend. Wir empfehlen, dass Sie mehrere Instance-Typen angeben, um zu diversifizieren und das Risiko einer unzureichenden Kapazität zu verringern. Weitere Informationen finden Sie unter Kapazitätsreservierungen mit Instance-Flotten verwenden.
Instance-Flotten-Optionen
Verwenden Sie die folgenden Richtlinien, um Instance-Flotten-Optionen zu verstehen.
Themen
Festlegen von Zielkapazitäten
Geben Sie die Zielkapazitäten für die Core- und Aufgaben-Flotte an. Wenn Sie dies tun, bestimmt dies die Anzahl der On-Demand-Instances und Spot-Instances, die Amazon EMR bereitstellt. Wenn Sie eine Instance angeben, können Sie entscheiden, wie viel jede Instance beim Ziel mit eingerechnet wird. Wenn eine On-Demand-Instance bereitgestellt wird, wird sie beim On-Demand-Ziel mit eingerechnet. Dies gilt auch für Spot-Instances. Im Gegensatz zu Core- und Aufgaben-Flotten besteht die Primär-Flotte immer aus einer Instance. Daher ist die Zielkapazität für diese Flotte immer auf 1 gesetzt.
Wenn Sie die Konsole verwenden, werden standardmäßig die vom EC2 Amazon-Instance-Typ als Anzahl für die Zielkapazitäten verwendet. vCPUs Sie können dies in Generische Einheiten ändern und dann die Anzahl für jeden EC2 Instance-Typ angeben. Wenn Sie den verwenden AWS CLI, weisen Sie jedem Instanztyp manuell generische Einheiten zu.
Wichtig
Wenn Sie mithilfe von einen Instanztyp auswählen AWS Management Console, entspricht die Anzahl von v, die für jeden Instanztyp CPU angezeigt wird, der Anzahl der YARN virtuellen Kerne für diesen Instanztyp, nicht der Anzahl von EC2 vCPUs für diesen Instanztyp. Weitere Informationen zur Anzahl der vCPUs einzelnen Instance-Typen finden Sie unter EC2Amazon-Instance-Typen
Für jede Flotte geben Sie bis zu fünf EC2 Amazon-Instance-Typen an. Wenn Sie einen verwenden Zuweisungsstrategie für Flotten und mit dem AWS CLI oder Amazon einen Cluster erstellen EMRAPI, können Sie bis zu 30 EC2 Instance-Typen pro Instance-Flotte angeben. Amazon EMR wählt eine beliebige Kombination dieser EC2 Instance-Typen, um Ihre Zielkapazitäten zu erfüllen. Da Amazon die Zielkapazität vollständig füllen EMR möchte, kann es zu einer Überschreitung kommen. Wenn es beispielsweise zwei nicht ausgefüllte Einheiten gibt und Amazon nur eine Instance mit einer Anzahl von fünf Einheiten bereitstellen EMR kann, wird die Instance trotzdem bereitgestellt, was bedeutet, dass die Zielkapazität um drei Einheiten überschritten wird.
Wenn Sie die Zielkapazität reduzieren, um die Größe eines laufenden Clusters zu ändern, EMR versucht Amazon, Anwendungsaufgaben abzuschließen und beendet Instances, um das neue Ziel zu erreichen. Weitere Informationen finden Sie unter Beendigung bei Aufgaben-Abschluss.
Start-Optionen
Für Spot Instances können Sie einen maximalen Spot-Preis für jeden Instance-Typ in einer Flotte angeben. Sie können den Preis entweder als Prozentsatz des On-Demand-Preises oder als einen bestimmten Betrag in US-Dollar festlegen. Amazon stellt EMR Spot-Instances bereit, wenn der aktuelle Spot-Preis in einer Availability Zone unter Ihrem maximalen Spot-Preis liegt. Sie zahlen den Spot-Preis, nicht unbedingt den maximalen Spot-Preis.
Anmerkung
Spot-Instances mit definierter Laufzeit (auch Spot-Blöcke genannt) stehen Neukunden ab dem 1. Juli 2021 nicht mehr zur Verfügung. Für Kunden, die diese Funktion bereits genutzt haben, werden wir Spot-Instances mit einer definierten Laufzeit bis zum 31. Dezember 2022 weiterhin unterstützen.
In Amazon EMR 5.12.1 und höher verfügbar, haben Sie die Möglichkeit, Spot- und On-Demand-Instance-Flotten mit optimierter Kapazitätszuweisung zu starten. Diese Option für die Zuweisungsstrategie kann in der alten Version AWS Management Console oder mithilfe von festgelegt werden. API RunJobFlow
Beachten Sie, dass Sie die Zuweisungsstrategie in der neuen-Konsole nicht anpassen können. Für die Verwendung der Option „Zuweisungsstrategie“ sind zusätzliche Berechtigungen für Servicerollen erforderlich. Wenn Sie die standardmäßige EMR Amazon-Servicerolle und die verwaltete Richtlinie (EMR_DefaultRoleundAmazonEMRServicePolicy_v2
) für den Cluster verwenden, sind die Berechtigungen für die Option Zuweisungsstrategie bereits enthalten. Wenn Sie nicht die standardmäßige EMR Amazon-Servicerolle und die verwaltete Richtlinie verwenden, müssen Sie sie hinzufügen, um diese Option nutzen zu können. Siehe Servicerolle für Amazon EMR (EMRRolle).
Weitere Informationen zu Spot-Instances finden Sie unter Spot-Instances im EC2 Amazon-Benutzerhandbuch. Weitere Informationen zu On-Demand-Instances finden Sie unter On-Demand-Instances im EC2 Amazon-Benutzerhandbuch.
Wenn Sie On-Demand-Instance-Flotten mit der Zuweisungsstrategie zum niedrigsten Preis starten möchten, haben Sie die Möglichkeit, Kapazitätsreservierungen zu verwenden. Optionen zur Kapazitätsreservierung können über Amazon festgelegt werden EMR APIRunJobFlow
. Für Kapazitätsreservierungen sind zusätzliche Berechtigungen für Servicerollen erforderlich, die Sie hinzufügen müssen, um diese Optionen nutzen zu können. Siehe Zuweisungsstrategie-Berechtigungen. Beachten Sie, dass Sie Kapazitätsreservierungen in der neuen Konsole nicht anpassen können.
Optionen für mehrere Subnetze (Availability Zones)
Wenn Sie Instance-Flotten verwenden, können Sie mehrere EC2 Amazon-Subnetze innerhalb einer angebenVPC, die jeweils einer anderen Availability Zone entsprechen. Wenn Sie EC2 -Classic verwenden, geben Sie Availability Zones explizit an. Amazon EMR identifiziert die beste Availability Zone zum Starten von Instances gemäß Ihren Flottenspezifikationen. Instances werden immer nur in einer Availability Zone bereitgestellt. Sie können private Subnetze oder öffentliche Subnetze auswählen, aber Sie können beide nicht mischen, und die von Ihnen angegebenen Subnetze müssen sich innerhalb derselben befinden. VPC
Hauptknoten-Konfiguration
Da die Primär-Instance-Flotte ist nur eine einzelne Instance ist, unterscheidet sich ihre Konfiguration etwas von Core- und Task-Instance-Flotten. Wählen Sie entweder On-Demand oder Spot für die Primär-Instance-Flotte aus, da sie nur aus einer Instance besteht. Wenn Sie die Konsole verwenden, um die Instance-Flotte zu erstellen, wird die Zielkapazität für die Kaufoption, die Sie auswählen, auf "1" festgelegt. Wenn Sie die verwenden AWS CLI, legen Sie je nach Bedarf immer entweder TargetSpotCapacity
oder TargetOnDemandCapacity
auf 1 fest. Sie können weiterhin bis zu fünf Instance-Typen für die primäre Instance-Flotte wählen (oder maximal 30, wenn Sie die Zuweisungsstrategie-Option für On-Demand- oder Spot Instances verwenden). Im Gegensatz zu Core- und Task-Instance-Flotten, bei denen Amazon EMR möglicherweise mehrere Instances unterschiedlichen Typs bereitstellt, EMR wählt Amazon jedoch einen einzigen Instance-Typ für die Bereitstellung für die primäre Instance-Flotte aus.
Zuweisungsstrategie für Flotten
Mit den EMR Amazon-Versionen 5.12.1 und höher können Sie die Option für die Zuweisungsstrategie mit On-Demand-Instances und Spot-Instances für jeden Clusterknoten verwenden. Wenn Sie einen Cluster mithilfe der AWS CLI Amazon- oder EMR API EMR Amazon-Konsole mit einer Zuweisungsstrategie erstellen, können Sie bis zu 30 EC2 Amazon-Instance-Typen pro Flotte angeben. Mit der standardmäßigen Konfiguration der EMR Amazon-Cluster-Instance-Flotte können Sie bis zu 5 Instance-Typen pro Flotte verwenden. Wir empfehlen Ihnen, die Option für die Zuweisungsstrategie zu verwenden, um eine schnellere Cluster-Bereitstellung, eine genauere Spot-Instance-Zuweisung und weniger Spot Instance-Unterbrechungen zu erzielen.
Themen
Zuweisungsstrategie mit On-Demand-Instances
Die folgenden Zuweisungsstrategien sind für Ihre On-Demand-Instances verfügbar:
lowest-price
(Standard)Bei der Zuweisungsstrategie mit dem niedrigsten Preis werden On-Demand-Instances aus dem Pool mit dem niedrigsten Preis gestartet, der über verfügbare Kapazität verfügt. Wenn der Pool mit dem niedrigsten Preis keine verfügbare Kapazität hat, stammen die On-Demand-Instances aus dem Pool mit dem nächstniedrigsten Preis und verfügbarer Kapazität.
prioritized
Mit der priorisierten Zuweisungsstrategie können Sie für jeden Instance-Typ Ihrer Instance-Flotte einen Prioritätswert angeben. Amazon EMR startet Ihre On-Demand-Instances mit der höchsten Priorität. Wenn Sie diese Strategie verwenden, müssen Sie die Priorität für mindestens einen Instance-Typ konfigurieren. Wenn Sie den Prioritätswert für einen Instance-Typ nicht konfigurieren, EMR weist Amazon diesem Instance-Typ die niedrigste Priorität zu. Jede Instance-Flotte (primär, Core oder Task) in einem Cluster kann für einen bestimmten Instance-Typ einen anderen Prioritätswert haben.
Anmerkung
Wenn Sie die capacity-optimized-prioritizedSpot-Zuweisungsstrategie verwenden, EMR wendet Amazon bei der Festlegung von Prioritäten dieselben Prioritäten sowohl auf Ihre On-Demand-Instances als auch auf Spot-Instances an.
Zuweisungsstrategie mit Spot Instances
Für Spot Instances können Sie aus einer der folgenden Zuweisungsstrategien wählen:
price-capacity-optimized
(empfohlen)-
Bei der preis-kapazitätsoptimierten Zuweisungsstrategie werden Spot Instances aus den Spot Instance-Pools gestartet, die über die höchste verfügbare Kapazität und den niedrigsten Preis für die Anzahl der zu startenden Instances verfügen. Aus diesem Grund bietet die Strategie mit optimierter Preis- und Kapazitätsoptimierung in der Regel eine höhere Wahrscheinlichkeit, Spot-Kapazität zu erhalten, und führt zu niedrigeren Unterbrechungsraten. Dies ist die Standardstrategie für EMR Amazon-Versionen 6.10.0 und höher.
capacity-optimized
-
Die kapazitätsoptimierte Zuweisungsstrategie startet Spot Instances in den am meisten verfügbaren Pools mit der geringsten Wahrscheinlichkeit einer kurzfristigen Unterbrechung. Dies ist eine gute Option für Workloads, bei denen Unterbrechungen aufgrund von Neustarts von Aufgaben höhere Kosten verursachen. Dies ist die Standardstrategie für EMR Amazon-Versionen 6.9.0 und niedriger.
capacity-optimized-prioritized
-
Mit der capacity-optimized-prioritized Zuweisungsstrategie können Sie für jeden Instance-Typ in Ihrer Instance-Flotte einen Prioritätswert angeben. Amazon EMR optimiert zunächst die Kapazität, berücksichtigt jedoch die Prioritäten des Instance-Typs nach bestem Wissen und Gewissen, z. B. wenn die Priorität die Fähigkeit der Flotte, optimale Kapazität bereitzustellen, nicht wesentlich beeinträchtigt. Wir empfehlen diese Option, wenn Sie Workloads haben, die möglichst wenig unterbrochen werden müssen und dennoch bestimmte Instance-Typen benötigt werden. Wenn Sie diese Strategie verwenden, müssen Sie die Priorität für mindestens einen Instance-Typ konfigurieren. Wenn Sie für keinen Instance-Typ eine Priorität konfigurieren, EMR weist Amazon diesem Instance-Typ den niedrigsten Prioritätswert zu. Jede Instance-Flotte (primär, Core oder Task) in einem Cluster kann für einen bestimmten Instance-Typ einen anderen Prioritätswert haben.
Anmerkung
Wenn Sie die priorisierte On-Demand-Zuweisungsstrategie verwenden, EMR wendet Amazon bei der Festlegung von Prioritäten den gleichen Prioritätswert sowohl auf Ihre On-Demand-Instances als auch auf Ihre Spot-Instances an.
diversified
-
Mit der diversifizierten Zuweisungsstrategie EC2 verteilt Amazon Spot-Instances auf alle Spot-Kapazitätspools.
lowest-price
-
Bei der preisgünstigsten Zuweisungsstrategie werden Spot Instances aus dem preisgünstigsten Pool mit verfügbarer Kapazität gestartet. Wenn der günstigste Pool keine verfügbare Kapazität aufweist, kommen die Spot Instances aus dem nächstgünstigsten Pool mit verfügbarer Kapazität. Wenn die Kapazität eines Pools knapp wird, bevor er die von Ihnen angeforderte Kapazität erfüllt, greift die EC2 Amazon-Flotte auf den Pool mit dem nächstniedrigsten Preis zurück, um Ihre Anfrage weiter zu bearbeiten. Damit die gewünschte Kapazität auf jeden Fall erreicht wird, erhalten Sie möglicherweise Spot-Instances aus mehreren Pools. Da diese Strategie nur den Instance-Preis und nicht die Kapazitätsverfügbarkeit berücksichtigt, kann es zu hohen Unterbrechungsraten kommen.
Zuweisungsstrategie-Berechtigungen
Für die Option „Zuweisungsstrategie“ sind mehrere IAM Berechtigungen erforderlich, die automatisch in der standardmäßigen EMR Amazon-Servicerolle und der von Amazon EMR verwalteten Richtlinie (EMR_DefaultRole
undAmazonEMRServicePolicy_v2
) enthalten sind. Wenn Sie eine benutzerdefinierte Servicerolle oder eine verwaltete Richtlinie für Ihren Cluster verwenden, müssen Sie diese Berechtigungen hinzufügen, bevor Sie den Cluster erstellen. Weitere Informationen finden Sie unter Zuweisungsstrategie-Berechtigungen.
Optionale On-Demand-Kapazitätsreservierungen (ODCRs) sind verfügbar, wenn Sie die Option für die On-Demand-Zuweisungsstrategie verwenden. Mit den Optionen zur Kapazitätsreservierung können Sie angeben, ob reservierte Kapazität zuerst für EMR Amazon-Cluster verwendet werden soll. Auf diese Weise können Sie sicherstellen, dass Ihre kritischen Workloads die Kapazität nutzen, die Sie bereits mit Open oder Targeted ODCRs reserviert haben. Bei unkritischen Workloads können Sie in den Einstellungen für die Kapazitätsreservierung angeben, ob reservierte Kapazität verbraucht werden soll.
Kapazitätsreservierungen können nur von Instances verwendet werden, die ihren Attributen (Instance-Typ, Plattform und Availability Zone) entsprechen. Standardmäßig werden offene Kapazitätsreservierungen automatisch von Amazon verwendet, EMR wenn On-Demand-Instances bereitgestellt werden, die den Instance-Attributen entsprechen. Wenn Sie keine laufenden Instances haben, die den Attributen der Kapazitätsreservierungen entsprechen, bleiben diese ungenutzt, bis Sie eine Instance starten, die ihren Attributen entspricht. Wenn Sie beim Starten Ihres Clusters keine Kapazitätsreservierungen verwenden möchten, müssen Sie in den Startoptionen die Einstellung „Kapazitätsreservierung“ auf Keine setzen.
Sie können jedoch auch eine Kapazitätsreservierung für bestimmte Workloads festlegen. Auf diese Weise können Sie explizit steuern, welche Instances in der reservierten Kapazität ausgeführt werden dürfen. Weitere Informationen über On-Demand-Kapazitätsreservierungen finden Sie unter Kapazitätsreservierungen mit Instance-Flotten verwenden.
Erforderliche IAM Berechtigungen für eine Zuweisungsstrategie
Ihre Servicerolle für Amazon EMR (EMRRolle) benötigen zusätzliche Berechtigungen, um einen Cluster zu erstellen, der die Zuweisungsstrategieoption für On-Demand-Instance-Flotten oder Spot-Instance-Flotten verwendet.
Wir nehmen diese Berechtigungen automatisch in die standardmäßige EMR Amazon-Servicerolle EMR_DefaultRoleund die von Amazon EMR verwaltete Richtlinie auf AmazonEMRServicePolicy_v2.
Wenn Sie eine benutzerdefinierte Servicerolle oder eine verwaltete Richtlinie für Ihren Cluster verwenden, müssen Sie die folgenden Berechtigungen hinzufügen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DeleteLaunchTemplate", "ec2:CreateLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:CreateLaunchTemplateVersion", "ec2:CreateFleet" ], "Resource": "*" } }
Die folgenden Berechtigungen für Servicerollen sind erforderlich, um einen Cluster zu erstellen, der offene oder gezielte Kapazitätsreservierungen verwendet. Sie müssen diese Berechtigungen zusätzlich zu den Berechtigungen angeben, die für die Verwendung der Zuweisungsstrategie-Option erforderlich sind.
Beispiel Richtliniendokument für Kapazitätsreservierungen für Servicerollen
Um offene Kapazitätsreservierungen verwenden zu können, müssen Sie die folgenden zusätzlichen Berechtigungen angeben.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions" ], "Resource": "*" } ] }
Um gezielte Kapazitätsreservierungen verwenden zu können, müssen Sie die folgenden zusätzlichen Berechtigungen angeben.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeCapacityReservations", "ec2:DescribeLaunchTemplateVersions", "ec2:DeleteLaunchTemplateVersions", "resource-groups:ListGroupResources" ], "Resource": "*" } ] }
Instance-Flotten für Ihren Cluster konfigurieren
Beispiele: Erstellen eines Clusters mit der Instance-Flotten-Konfiguration
Die folgenden Beispiele zeigen create-cluster
-Befehle mit einer Vielzahl von Optionen, die Sie kombinieren können.
Anmerkung
Wenn Sie noch nicht die standardmäßige EMR Amazon-Servicerolle und das EC2 Instanzprofil erstellt haben, erstellen aws emr create-default-roles
Sie diese zunächst, bevor Sie den create-cluster
Befehl verwenden.
Beispiel: Primärinstanz auf Abruf, On-Demand-Core mit Einzelinstanztyp, Standard VPC
aws emr create-cluster --release-label
emr-5.3.1
--service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}']
Beispiel: Spot-Primär, Spot-Core mit Einzelinstanztyp, Standard VPC
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}'] \ InstanceFleetType=CORE,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
Beispiel: Primär auf Abruf, gemischter Kern mit Einzelinstanztyp, einzelnes EC2 Subnetz
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=2,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=2}']
Beispiel: Primär auf Abruf, Spot-Core mit mehreren gewichteten Instance-Typen, Timeout für Spot, Subnetzbereich EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetSpotCapacity=11,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}
Beispiel: Primäre On-Demand-Instanz, gemischter Kern- und Task-Instance-Typ mit mehreren gewichteten Instance-Typen, Timeout für Core-Spot-Instances, Subnetzbereich EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=8,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} \ InstanceFleetType=TASK,TargetOnDemandCapacity=3,TargetSpotCapacity=3,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']
Beispiel: Spot Primary, kein Core oder Task, EBS Amazon-Konfiguration, Standard VPC
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=60,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,\ EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,\ SizeIn GB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iop s=100},VolumesPerInstance=4}]}}']
Beispiel: Mehrere benutzerdefinierte Instance-TypenAMIs, primärer On-Demand-Instance-Typ, On-Demand-Core
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}']
Beispiel: Fügen Sie einem laufenden Cluster mit mehreren Instanztypen und mehreren benutzerdefinierten Instanztypen einen Task-Knoten hinzu AMIs
aws emr add-instance-fleet --cluster-id j-123456 --release-label Amazon EMR 5.3.1 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleet \ InstanceFleetType=Task,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456}',\ '{InstanceType=m6g.xlarge,CustomAmiId=ami-234567}']
Beispiel: Verwenden Sie eine JSON Konfigurationsdatei
Sie können Instance-Flottenparameter in einer JSON Datei konfigurieren und dann auf die JSON Datei als einzigen Parameter für Instance-Flotten verweisen. Der folgende Befehl verweist beispielsweise auf eine JSON Konfigurationsdatei: my-fleet-config.json
aws emr create-cluster --release-label emr-5.30.0 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets file://
my-fleet-config.json
Das Tool my-fleet-config.json
file gibt Primär-, Kern- und Taskinstanzflotten an, wie im folgenden Beispiel gezeigt. Die Core-Instance-Flotte verwendet einen maximalen Spot-Preis (BidPrice
) als Prozentsatz von On-Demand, während die Task- und Primärinstance-Flotten einen maximalen Spot-Preis (BidPriceAsPercentageofOnDemandPrice) als Zeichenfolge in verwenden. USD
[ { "Name": "Masterfleet", "InstanceFleetType": "MASTER", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "SWITCH_TO_ON_DEMAND" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }, { "Name": "Corefleet", "InstanceFleetType": "CORE", "TargetSpotCapacity": 1, "TargetOnDemandCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "String" } }, "SpotSpecification": { "AllocationStrategy": "capacity-optimized", "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK", "TargetSpotCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } }, "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] } ]
Zielkapazitäten für eine Instance-Flotte ändern
Verwenden Sie den Befehl modify-instance-fleet
, um neue Zielkapazitäten für eine Instance-Flotte anzugeben. Sie müssen die Cluster-ID und die Instance-Flotten-ID angeben. Verwenden Sie den list-instance-fleets
Befehl, um die Instance-Flotte IDs abzurufen.
aws emr modify-instance-fleet --cluster-id
<cluster-id>
\ --instance-fleet \ InstanceFleetId='<instance-fleet-id>
',TargetOnDemandCapacity=1,TargetSpotCapacity=1
Eine Aufgaben-Instance-Flotte zu einem Cluster hinzufügen
Wenn ein Cluster nur über Primär- und Core-Instance-Flotten verfügt, können Sie den Befehl add-instance-fleet
verwenden, um eine Aufgaben-Instance-Flotte hinzuzufügen. Sie können nur diesen Befehl verwenden, um Aufgaben-Instance-Flotten hinzuzufügen.
aws emr add-instance-fleet --cluster-id
<cluster-id>
--instance-fleet \ InstanceFleetType=TASK,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
Konfigurationsdetails der Instance-Flotten in einem Cluster abrufen
Verwenden Sie den Befehl list-instance-fleets
, um Konfigurationsdetails der Instance-Flotten in einem Cluster abzurufen. Der Befehl erfordert die Eingabe einer Cluster-ID. Das folgende Beispiel zeigt den Befehl und die Ausgabe für einen Cluster mit einer Primär-Aufgaben-Instance-Gruppe und einer Core-Aufgaben-Instance-Gruppe. Die vollständige Antwortsyntax finden Sie ListInstanceFleetsin der EMRAPIAmazon-Referenz.
list-instance-fleets --cluster-id
<cluster-id>
{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 6, "Name": "CORE", "InstanceFleetType": "CORE", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "ProvisionedOnDemandCapacity": 2, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m5.xlarge", "WeightedCapacity": 2 } ], "Id": "if-1ABC2DEFGHIJ3" }, { "Status": { "Timeline": { "ReadyDateTime": 1488759058.598, "CreationDateTime": 1488758719.811 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 0, "Name": "MASTER", "InstanceFleetType": "MASTER", "ProvisionedOnDemandCapacity": 1, "InstanceTypeSpecifications": [ { "BidPriceAsPercentageOfOnDemandPrice": 100.0, "InstanceType": "m5.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ] }