Optimieren von Amazon EMR-Clustern für Kosten und Skalierung

mit EC2 Spot-Instances und Amazon EMR

Amazon EMR bietet ein verwaltetes Hadoop-Framework, mit dem Sie umfangreiche Datenmengen einfach, schnell und kosteneffektiv in dynamisch skalierbaren Amazon EC2-Instances verarbeiten können. Sie können in EMR auch andere beliebte verteilte Frameworks wie Apache Spark, HBase, Presto, und Flink ausführen. Darüber hinaus haben Sie die Möglichkeit, mit Daten in anderen AWS-Datenspeichern wie Amazon S3 und Amazon DynamoDB zu interagieren. EMR Notebooks, basierend auf dem beliebten Jupyter Notebook, bieten eine Entwicklungs- und Kollaborationsumgebung für Ad-hoc-Abfragen und explorative Analysen. EMR verarbeitet sicher und zuverlässig eine breite Palette von Big Data-Anwendungsfällen. Hierzu zählen unter anderem Protokollanalysen, Web-Indizierungen, Datentransformationen (ETL), Machine Learning, Finanzanalysen, wissenschaftliche Simulationen und Bioinformatik.

Amazon EC2 Spot-Instances bieten Reserve-Rechenkapazitäten in der AWS Cloud zu einem deutlichen Preisnachlass im Vergleich zu On-Demand-Preisen. EC2 kann Spot-Instances innerhalb von zwei Minuten nach einer entsprechenden Benachrichtigung unterbrechen, wenn EC2 die Kapazität wieder benötigt. Sie können Spot-Instances für verschiedene fehlertolerante und flexible Anwendungen verwenden. Einige Beispiele sind Analysen, containerisierte Workloads, Hochleistungsrechnen (HPC, High-Performance Computing), zustandslose Webserver, Rendering, CI/CD und andere Test- und Entwicklungs-Workloads.

In diesem Tutorial erfahren Sie, wie Sie Ihren ersten Amazon EMR-Cluster auf Amazon EC2 Spot-Instances mithilfe des Assistenten „Cluster erstellen“ starten. Das Ausführen von Amazon EMR in Spot-Instances reduziert die Kosten für Big Data drastisch, ermöglicht eine deutlich höhere Rechenkapazität und reduziert die Zeit für die Verarbeitung großer Datensätze.

Über dieses Tutorial
Zeit 10-20 Minuten      
Kosten kostenlos
Anwendungsfall Datenverarbeitung
Produkte Amazon EMR, EC2 Spot-Instances
Stufe 200
Letzte Aktualisierung 4. Februar 2020

Schritt 1: Erstellen von Clustern mit erweiterten Optionen

1.1 — Öffnen Sie einen Browser und navigieren Sie zur Amazon EMR-Konsole. Alternativ können Sie nach EMR suchen oder Amazon EMR unter dem Abschnitt "Analytics" auf der Konsolen-Startseite finden. Wenn Sie bereits über ein AWS-Konto verfügen, melden Sie sich bei der Konsole an. Erstellen Sie anderenfalls ein neues AWS-Konto, um loszulegen.

1.2 — Wählen Sie oben rechts die Region aus, in der Sie den Amazon EMR-Cluster starten möchten.

1.3 — Klicken Sie im Amazon EMR-Fenster auf Cluster erstellen.

1.4 — Klicken Sie im Fenster Cluster erstellen auf Zu erweiterten Optionen gehen.

Schritt 2: Konfigurieren von Cluster-Software und Schritte

2.1 — Wählen Sie im Abschnitt Softwarekonfiguration die für Ihren Cluster erforderliche Software aus oder behalten Sie die Standardoptionen bei, um schnell loslegen zu können.

2.2 — Geben Sie optional alle erforderlichen Konfigurationsinformationen zur Verbindung mit dem AWS Glue Datenatalog sowie alle Konfigurationsdateien ein, die Sie bei der Konfiguration der Software Ihres Clusters verwenden möchten.

Lassen Sie die Option Verwendung mehrerer Master-Knoten zur Verbesserung der Clusterverfügbarkeit deaktiviert, da diese Option nicht mit den Instance-Flotten kompatibel ist, die wir in den folgenden Schritten konfigurieren werden.

2.3 — Konfigurieren Sie optional alle Schritte, die Ihr Cluster nach der Bereitstellung ausführen soll, oder überspringen Sie diesen Schritt, um den Start Ihres Clusters schneller zu demonstrieren.

Sie können Amazon EMR-Schritte verwenden, um Arbeiten an das Spark-Framework zu übermitteln, das auf einem EMR-Cluster installiert ist. Weitere Informationen finden Sie im Amazon EMR Management Guide unter Schritte. In der Konsole und in der Befehlszeilenschnittstelle geschieht dies über einen Anwendungsschritt von Spark, der das Spark-Submit-Skript als Schritt für Sie ausführt. Mit der API verwenden Sie einen Schritt, um Spark-Submit mit command-runner.jar aufzurufen.

2.4 — Nach einer kurzen Überprüfung Ihrer Softwarekonfiguration sind Sie bereit, zum nächsten Schritt überzugehen und Ihre Cluster-Hardware zu konfigurieren.

Klicken Sie auf Weiter, um fortzufahren.

Schritt 3: Konfigurieren von Instance-Flotten

3.1 – Wählen Sie Instance-Flotten unter dem Abschnitt Instance-Gruppe-Konfiguration aus.

Instance-Flotten ermöglichen uns, Instance-Diversifizierung zu implementieren, die bei der Nutzung von EC2 Spot-Instances als wichtige bewährte Methode gilt. Mit der Instance-Diversifizierung können Sie mehrere Instance-Typen verwenden, um sicherzustellen, dass Amazon EMR die gesamte für Ihren Cluster benötigte Kapazität zuweisen kann, während Unterbrechungen automatisch behandelt werden.

3.2 – Wählen Sie die VPC und ein oder mehrere Subnetze aus, in denen Sie Ihren Amazon EMR-Cluster bereitstellen möchten.

Wir empfehlen, mehr als eine Availability Zone zu wählen. Ihr Cluster wird weiterhin in einer einzigen Availability Zone bereitgestellt, jedoch ermöglicht die Auswahl mehrerer Availability Zones Amazon EMR, in allen ausgewählten Availability Zones zu suchen, um Ihren Cluster in der Availability Zone mit der meisten EC2-Spotkapazität zum Ausführen Ihres Clusters bereitzustellen.

3.3 Konfigurieren Sie die Größe des EBS-Volumes für das Root-Gerät nach Bedarf oder belassen Sie es bei der Standardeinstellung, um fortzufahren.

3.4 Scrollen Sie nach unten zum Abschnitt Task-Instance-Flotte und wählen Sie Instance-Typen zur Flotte hinzufügen/entfernen.

Instance-Flotten ermöglichen es Ihnen, bis zu fünf Instance-Typen pro Flotte anzugeben, so dass Amazon EMR Kapazität aus mehreren Pools verfügbarer EC2 Spot-Kapazität bereitstellen kann.

Wir empfehlen die Verwendung von On-Demand-Instances für Master- und Core-Knoten, es sei denn, Sie starten sehr kurzlebige Workloads.

Sie können hier mehr über typische Anwendungsfälle erfahren und Empfehlungen für die Verwendung von EC2 Spot-Instances mit Amazon EMR überprüfen.

3.5 Wählen Sie bis zu fünf Instance-Typen zur Verwendung in Ihrer Task-Knoten-Instance-Flotte aus. Sie sollten Instance-Typen mit einem ähnlichen Verhältnis von Vcpu zu Speicher über mehrere Instancefamilien hinweg in Betracht ziehen.

Sie können den Spot Instance Advisor verwenden, um mehr über die durchschnittliche Kosteneinsparungs- und Unterbrechungsrate für EMR-kompatible Instances zu erfahren. 

3.6 Konfigurieren Sie die On-Demand- und Spot-Einheiten Ihrer Instance-Flotte und konfigurieren Sie optional die Einheiten jedes Instance-Typs.

Die Erhöhung der Anzahl der On-Demand-Einheiten und Spot-Einheiten bestimmt, wie viel Kapazität für Ihren Cluster bereitgestellt wird. Um schnell beginnen zu können und die Kosten für diesen Walkthrough zu reduzieren, wird empfohlen, nur eine kleine Anzahl von Spot-Einheiten (z. B. 8) und keine On-Demand-Einheiten einzusetzen.

Standardmäßig entsprechen die Einheiten jedes Instance-Typs der Anzahl der vCores für diesen Instance-Typ. Sie können dies nach Bedarf konfigurieren, um verschiedenen Instance-Typen mehr Gewicht zu geben, was berücksichtigt wird, wenn Amazon EMR die Kapazität für Ihre Instance-Flotte erfüllt.

Sie können auch die Anzahl der Einheiten angeben, die von On-Demand-Instances oder EC2-Spot-Instances erfüllt werden sollen. Auf diese Weise können Sie mehrere Instance-Typen und Kaufoptionen kombinieren, um eine Instance-Diversifizierung und die für Ihren Cluster erforderliche Kapazität zu erreichen.

3.7 Konfigurieren Sie optional die definierte Dauer und das Bereitstellungszeitüberschreitungsverhalten für Ihren Cluster.

Die Bereitstellungszeitüberschreitung ermöglicht es Ihnen, das Verhalten des Clusters zu definieren, wenn Amazon EMR nicht in der Lage ist, Kapazität für Ihre Instance-Flotte bereitzustellen. Das Standardverhalten ist "Beenden"; Sie können jedoch optional den Cluster-Versuch zur Bereitstellung von On-Demand-Instances anstelle von Spot-Instances durchführen lassen, wenn die Zeitüberschreitung überschritten wird.

Hier erfahren Sie mehr über diese Optionen.

3.8 Nach einer kurzen Überprüfung Ihrer Hardware-Konfiguration sind Sie bereit, zum nächsten Schritt überzugehen und die allgemeinen Cluster-Einstellungen Ihrer Cluster zu konfigurieren.

Klicken Sie auf Weiter, um fortzufahren.

Schritt 4: Allgemeine Cluster-Einstellungen

4.1 — Geben Sie einen Namen für Ihren Cluster an oder übernehmen Sie die Voreinstellung Mein Cluster, um fortzufahren.

Optional können Sie die Protokollierung, das Debugging und den Abbruchschutz konfigurieren. 

Mehr über Protokollierung und Debugging erfahren Sie hier.

Mehr über den Abbruchschutz erfahren Sie hier.

4.2 — Konfigurieren Sie optional alle relevanten Tags für Ihren Cluster. Tags sind nützlich, um zu identifizieren, zu welchem Team oder zu welcher Umgebung der von Ihnen erstellte Cluster gehört.

Hier erhalten Sie weitere Informationen zu Tags.
 

4.3 — Konfigurieren Sie optional alle zusätzlichen Optionen, die für Ihren Cluster erforderlich sind, wie z.B. die konsistente Ansicht von EMRFS, eine benutzerdefinierte AMI-ID oder Bootstrap-Aktionen.

4.4 — Nach einer kurzen Überprüfung Ihrer allgemeinen Cluster-Konfiguration sind Sie bereit, zum nächsten Schritt überzugehen und die Sicherheitseinstellungen Ihres Clusters zu konfigurieren.

Klicken Sie auf Weiter, um fortzufahren. 

Schritt 5: Sicherheit

5.1 – Konfigurieren Sie optional eine beliebig erforderliche Sicherheitskonfiguration für Ihren Cluster, einschließlich Schlüsselpaare, Instance-Rollen und -Profile, Sicherheitsgruppen und Verschlüsselung.

5.2 — Nach einer kurzen Überprüfung der Sicherheitskonfiguration Ihres Clusters sind Sie bereit, Ihren Cluster zu erstellen.

Klicken Sie auf Cluster erstellen, um Ihren neuen Amazon EMR-Cluster mit EC2 Spot-Instances zu starten.

Herzlichen Glückwunsch!

Sie haben jetzt einen Amazon EMR-Cluster in EC2 Spot-Instances gestartet. Jetzt können Sie Spot-Instances in Ihre EMR-Cluster integrieren und ihre Big-Data-Workloads hinsichtlich Kosten und Leistung optimieren.

War dieses Tutorial hilfreich?

Vielen Dank
Bitte teilen Sie uns mit, was Ihnen gefallen hat.
Es tut uns Leid Sie zu enttäuschen
Ist etwas veraltet, verwirrend oder ungenau? Bitte helfen Sie uns, dieses Tutorial zu verbessern, indem Sie Feedback geben.

Ausführen von Spark-Apps mit EMR

Nun, da Sie gelernt haben, wie Sie EC2 Spot-Instances mit Amazon EMR verwenden, können Sie Instance-Flotten und die anderen bewährten Methode implementieren, die Sie bei Ihren eigenen Workloads gelernt haben. Falls Sie weiter lernen möchten, empfehlen wir Ihnen, den Workshop im eigenen Tempo zu folgen, der sich hier befindet.

Die Dokumentation lesen

Erfahren Sie mehr über die Funktionen und Fähigkeiten von Amazon EMR durch das Amazon EMR-Verwaltungshandbuch.

Amazon EC2 Spot-Instances entdecken

Wenn Sie mehr über Amazon EC2 Spot-Instances erfahren möchten, besuchen Sie die Produktseite zu Amazon EC2 Spot-Instances, um die Dokumentation, Videos, Blogs und mehr zu entdecken.