Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von...

496
Amazon EMR Management Guide

Transcript of Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von...

Page 1: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMRManagement Guide

Page 2: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management Guide

Amazon EMR: Management GuideCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management Guide

Table of ContentsWas ist Amazon EMR? ....................................................................................................................... 1

Übersicht ................................................................................................................................... 1Verstehen von Clustern und Knoten ...................................................................................... 1Übermitteln von Aufträgen an einen Cluster ............................................................................ 2Verarbeiten von Daten ........................................................................................................ 2Verstehen des Cluster-Lebenszyklus ..................................................................................... 4

Nutzen ...................................................................................................................................... 4Kosteneinsparungen ............................................................................................................ 5AWS-Integration ................................................................................................................. 5Bereitstellung ..................................................................................................................... 5Skalierbarkeit und Flexibilität ................................................................................................ 6Zuverlässigkeit ................................................................................................................... 6Sicherheit .......................................................................................................................... 7Überwachung ..................................................................................................................... 8Verwaltungsschnittstellen ..................................................................................................... 8

Architektur ................................................................................................................................. 9Speicher ............................................................................................................................ 9Cluster-Ressourcenverwaltung .............................................................................................. 9Datenverarbeitungs-Frameworks ......................................................................................... 10Anwendungen und Programme ........................................................................................... 11

Erste Schritte ................................................................................................................................... 12Schritt 1: Einrichten der Voraussetzungen ..................................................................................... 12

Anmelden bei AWS ........................................................................................................... 12Erstellen eines Amazon S3-Buckets ..................................................................................... 13Erstellen eines Amazon EC2-Schlüsselpaares ....................................................................... 13

Schritt 2: Starten des Clusters .................................................................................................... 13Starten des Beispiel-Clusters .............................................................................................. 13Zusammenfassung der Schnelloptionen ................................................................................ 14

Schritt 3: Erlauben des SSH-Zugriffs ............................................................................................ 19Schritt 4: Ausführen eines Hive-Skripts zur Verarbeitung von Daten .................................................. 21

Verständnis von Daten und Skript ....................................................................................... 21Senden des Hive-Skripts als Schritt ..................................................................................... 22Anzeigen der Ergebnisse ................................................................................................... 23

Schritt 5: Bereinigen von Ressourcen ........................................................................................... 24Verwenden von EMR Notebooks ......................................................................................................... 26

Überlegungen ........................................................................................................................... 26Cluster-Voraussetzungen .................................................................................................... 27Unterschiede in den Funktionalitäten nach Cluster-Release-Version .......................................... 27Limits für gleichzeitig angefügte Notebooks ........................................................................... 28Jupyter Notebook- und Python-Versionen ............................................................................. 28...................................................................................................................................... 28

Erstellen eines Notebook ........................................................................................................... 28Arbeiten mit Notebooks .............................................................................................................. 30

Grundlegendes zum Notebook-Status .................................................................................. 31Arbeiten mit dem Notebook-Editor ....................................................................................... 32Wechseln von Clustern ...................................................................................................... 33Löschen von Notebooks und Notebook-Dateien ..................................................................... 33Freigeben von Notebook-Dateien ........................................................................................ 34

Programmgesteuertes Ausführen vonEMR-Notebooks .................................................................... 34CLI-Befehlsbeispiele .......................................................................................................... 35Boto3-SDK-Beispielskript .................................................................................................... 38Ruby-Beispielskript ............................................................................................................ 40

Benutzer-Identitätswechsel für Spark ........................................................................................... 41Einrichten des Spark-Benutzer-Identitätswechsels .................................................................. 42

iii

Page 4: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management Guide

Verwenden des Spark-Widgets für die Auftragsüberwachung ................................................... 42Sicherheit ................................................................................................................................ 43Installieren und Verwenden von Kerneln und Bibliotheken ............................................................... 44

Installieren von Kernels und Python-Bibliotheken auf einem Cluster-Master-Knoten ...................... 44Verwenden von Bibliotheken im Notebook-Scoped-Format ...................................................... 44Verknüpfen von Git-basierten Repositorys mit EMR-Notebooks ................................................ 45

Plan and Configure Clusters ............................................................................................................... 52Configure Cluster Location and Data Storage ................................................................................ 52

Choose an AWS Region .................................................................................................... 52Work with Storage and File Systems ................................................................................... 54Prepare Input Data ........................................................................................................... 56Configure an Output Location ............................................................................................. 65

Planen und Konfigurieren von Master-Knoten ................................................................................ 70Unterstützte Anwendungen und Funktionen .......................................................................... 71Starten von EMR-Clustern mit mehreren Master-Knoten .......................................................... 76EMR-Integration mit EC2-Platzierungsgruppen ...................................................................... 78Überlegungen und bewährte Methoden ................................................................................ 81

EMR-Cluster auf AWS Outposts .................................................................................................. 81Voraussetzungen .............................................................................................................. 82Einschränkungen .............................................................................................................. 82Überlegungen zur Netzwerkkonnektivität ............................................................................... 82Erstellen eines Amazon EMR-Clusters auf AWS Outposts ....................................................... 83

EMR-Cluster auf Lokale AWS-Zonen ........................................................................................... 84Unterstützte Instance-Typen ............................................................................................... 84Erstellen eines Amazon EMR-Clusters auf Lokale Zonen ........................................................ 84

Docker konfigurieren ................................................................................................................. 85Docker-Registrierungen ...................................................................................................... 85Konfigurieren von Docker-Registrierungen ............................................................................ 86Konfigurieren von YARN für den Zugriff auf Amazon ECR auf EMR 6.0.0 und früher .................... 87

Verwenden von EMR File System (EMRFS) ................................................................................. 89Konsistente Ansicht ........................................................................................................... 89Zugriff auf EMRFS-Daten in Amazon S3 genehmigen ........................................................... 107Angeben der Amazon S3-Verschlüsselung mit EMRFS-Eigenschaften ..................................... 108

Control Cluster Termination ...................................................................................................... 116Configuring a Cluster to Auto-Terminate or Continue ............................................................ 117Using Termination Protection ............................................................................................ 118

Arbeiten mit AMIs ................................................................................................................... 123Verwenden des Standard-AMI ........................................................................................... 123Verwenden eines benutzerdefinierten AMI ........................................................................... 124Größenangabe des Amazon EBS-Root-Gerät-Datenträgers ................................................... 130

Configure Cluster Software ....................................................................................................... 132Create Bootstrap Actions to Install Additional Software .......................................................... 132

Konfigurieren von Cluster-Hardware und Netzwerken .................................................................... 136Grundsätzliches zu Knotentypen ........................................................................................ 137Konfigurieren von EC2-Instances ....................................................................................... 138Konfigurieren des Netzwerks ............................................................................................. 144Konfigurieren von Instance-Flotten oder Instance-Gruppen .................................................... 155Leitlinien und Bewährte Methoden ..................................................................................... 168

Configure Cluster Logging and Debugging .................................................................................. 174Default Log Files ............................................................................................................. 174Archive Log Files to Amazon S3 ....................................................................................... 174Enable the Debugging Tool .............................................................................................. 177Debugging Option Information ........................................................................................... 178

Tag Clusters ........................................................................................................................... 179Tag Restrictions .............................................................................................................. 180Tag Resources for Billing ................................................................................................. 180Add Tags to a New Cluster .............................................................................................. 180

iv

Page 5: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management Guide

Adding Tags to an Existing Cluster .................................................................................... 181View Tags on a Cluster ................................................................................................... 182Remove Tags from a Cluster ............................................................................................ 183

Drivers and Third-Party Application Integration ............................................................................. 183Use Business Intelligence Tools with Amazon EMR .............................................................. 183

Sicherheit ....................................................................................................................................... 185Sicherheitskonfigurationen ........................................................................................................ 185Datenschutz ........................................................................................................................... 185AWS Identity and Access Management mit Amazon EMR ............................................................. 185Kerberos ................................................................................................................................ 186Lake Formation ....................................................................................................................... 186Secure Socket Shell (SSH) ....................................................................................................... 186Amazon EC2-Sicherheitsgruppen ............................................................................................... 186Amazon Linux-Standard-AMI-Aktualisierungen ............................................................................. 186Verwenden von Sicherheitskonfigurationen zum Einrichten der Cluster-Sicherheit .............................. 187

Erstellen einer Sicherheitskonfiguration ............................................................................... 187Angabe einer Sicherheitskonfiguration für einen Cluster ........................................................ 205

Datenschutz ........................................................................................................................... 206Verschlüsseln von Daten im Ruhezustand und im Transit ...................................................... 207

IAM mit Amazon EMR ............................................................................................................. 216Audience ........................................................................................................................ 217Authentifizierung mit -Identitäten ........................................................................................ 217Verwalten des Zugriffs mit Richtlinien ................................................................................. 219Funktionsweise von Amazon EMR mit IAM ......................................................................... 220Configure Service Roles for Amazon EMR .......................................................................... 223Beispiele für identitätsbasierte Richtlinien ............................................................................ 250

Authenticate to Cluster Nodes ................................................................................................... 265Use an Amazon EC2 Key Pair for SSH Credentials .............................................................. 265Use Kerberos Authentication ............................................................................................. 265

Integration von Amazon EMR in AWS Lake Formation .................................................................. 292Übersicht ....................................................................................................................... 293Unterstützte Anwendungen und Funktionen ......................................................................... 299Bevor Sie beginnen ......................................................................................................... 301Starten eines Amazon EMR-Clusters mit Lake Formation ...................................................... 310

Steuerung des Netzwerkverkehrs mit Sicherheitsgruppen .............................................................. 316Arbeiten mit Amazon EMR-verwalteten Sicherheitsgruppen .................................................... 318Arbeiten mit zusätzlichen Sicherheitsgruppen ...................................................................... 324Angeben von Sicherheitsgruppen ...................................................................................... 324Sicherheitsgruppen für EMR-Notebooks .............................................................................. 326Verwenden von Block Public Access .................................................................................. 328

Compliance-Validierung ............................................................................................................ 330Ausfallsicherheit ...................................................................................................................... 330Sicherheit der Infrastruktur ........................................................................................................ 331

Herstellen einer Verbindung mit Amazon EMR über einen Schnittstellen-VPC-Endpunkt .............. 331Manage Clusters ............................................................................................................................. 335

View and Monitor a Cluster ...................................................................................................... 335View Cluster Status and Details ........................................................................................ 335Enhanced Step Debugging ............................................................................................... 341Anzeigen des Anwendungsverlaufs .................................................................................... 343View Log Files ................................................................................................................ 349View Cluster Instances in Amazon EC2 .............................................................................. 353CloudWatch-Ereignisse und -Metriken ................................................................................ 354View Cluster Application Metrics with Ganglia ...................................................................... 381Protokollieren von Amazon EMR-API-Aufrufen in AWS CloudTrail ........................................... 381

Verbinden mit dem Cluster ....................................................................................................... 383Bevor Sie eine Verbindung herstellen ................................................................................. 384Verbinden mit dem Master-Knoten über SSH ...................................................................... 385

v

Page 6: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management Guide

Anzeigen von auf Amazon EMR-Clustern gehosteten Webschnittstellen ................................... 390Beenden eines Clusters ........................................................................................................... 401

Beenden eines Clusters mithilfe der Konsole ....................................................................... 402Beenden eines Clusters mithilfe der AWS CLI ..................................................................... 402Beenden eines Clusters mithilfe der API ............................................................................. 403

Skalieren von Cluster-Ressourcen ............................................................................................. 403Verwenden von EMR-verwalteten Skalierung in Amazon EMR ............................................... 405Verwenden der automatischen Skalierung mit einer benutzerdefinierten Richtlinie für Instance-Gruppen ........................................................................................................................ 421Manuelle Größenanpassung eines aktiven Clusters .............................................................. 429Cluster-Scale-Down ......................................................................................................... 435

Cloning a Cluster Using the Console .......................................................................................... 436Übermitteln von Aufträgen an einen Cluster ................................................................................ 437

Arbeiten mit Schritten unter Verwendung von AWS CLI und Konsole ....................................... 437Interaktives Übermitteln von Hadoop-Aufträgen .................................................................... 442Hinzufügen von mehr als 256 Schritten zu einem Cluster ...................................................... 443

Automate Recurring Clusters with AWS Data Pipeline ................................................................... 444Troubleshoot a Cluster ..................................................................................................................... 445

What Tools are Available for Troubleshooting? ............................................................................ 445Tools to Display Cluster Details ......................................................................................... 445Tools to View Log Files ................................................................................................... 446Tools to Monitor Cluster Performance ................................................................................ 446

Viewing and Restarting Amazon EMR and Application Processes (Daemons) ................................... 447Viewing Running Processes .............................................................................................. 447Restarting Processes ....................................................................................................... 447

Troubleshoot a Failed Cluster ................................................................................................... 448Step 1: Gather Data About the Issue ................................................................................. 449Step 2: Check the Environment ......................................................................................... 449Step 3: Look at the Last State Change ............................................................................... 450Step 4: Examine the Log Files .......................................................................................... 450Step 5: Test the Cluster Step by Step ................................................................................ 451

Fehlerbehebung für einen langsamen Cluster .............................................................................. 452Schritt 1 Daten über das Problem sammeln ......................................................................... 453Schritt 2 Umgebung prüfen ............................................................................................... 453Schritt 3 Protokolldateien überprüfen .................................................................................. 454Schritt 4. Cluster- und Instanz-Gesundheit prüfen ................................................................. 455Schritt 5. Auf suspendierte Gruppen prüfen ......................................................................... 456Schritt 6. Konfigurationseinstellungen überprüfen .................................................................. 457Schritt 7. Eingangsdaten untersuchen ................................................................................. 458

Common Errors in Amazon EMR ............................................................................................... 459Input and Output Errors ................................................................................................... 459Berechtigungsfehler ......................................................................................................... 461Ressourcenfehler ............................................................................................................ 462Streaming Cluster Errors .................................................................................................. 470Custom JAR Cluster Errors ............................................................................................... 471Hive Cluster Errors .......................................................................................................... 471VPC Errors ..................................................................................................................... 472AWS GovCloud (US-West) Errors ...................................................................................... 475Other Issues ................................................................................................................... 475

Beheben von Problemen mit einem Lake Formation Sternhaufen .................................................... 476Data Lake-Zugriff nicht zulässig ......................................................................................... 476Sitzungsablauf ................................................................................................................ 476Keine Berechtigungen für Benutzer in der angeforderten Tabelle ............................................ 476Einfügen, Erstellen und Ändern von Tabellen: In Beta nicht unterstützt ..................................... 476

Schreiben von Anwendungen, die Cluster starten und verwalten ............................................................. 478Umfassendes Amazon EMR-Java-Quellcodebeispiel ..................................................................... 478Grundlegende Konzepte für API-Aufrufe ..................................................................................... 481

vi

Page 7: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management Guide

Endpunkte für Amazon EMR ............................................................................................. 481Angeben von Cluster-Parametern in Amazon EMR ............................................................... 481Availability Zones in Amazon EMR .................................................................................... 482So verwenden Sie weitere Dateien und Bibliotheken in Amazon EMR-Clustern .......................... 482

Verwenden von SDKs zum Aufrufen von Amazon EMR APIs ......................................................... 482Verwenden des AWS SDK for Java zum Erstellen eines Amazon EMR-Clusters ........................ 483

Verwalten von Amazon EMR-Service Limits ................................................................................ 484Was sind Amazon EMR-Service Limits? ............................................................................. 485So verwalten Sie Amazon EMR-Service Limits .................................................................... 485Wann EMR-Ereignisse in CloudWatch eingerichtet werden sollen ........................................... 485

AWS-Glossar .................................................................................................................................. 488............................................................................................................................................... cdlxxxix

vii

Page 8: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜbersicht

Was ist Amazon EMR?Bei Amazon EMR handelt es sich um eine verwaltete Cluster-Plattform, die die Ausführung von BigData-Frameworks in AWS wie Apache Hadoop und Apache Spark vereinfacht, um riesige Datenmengenzu verarbeiten und zu analysieren. Durch die Verwendung dieser Frameworks und verwandter Open-Source-Projekte, wie z. B. Apache Hive und Apache Pig, können Sie Daten zu Analysezwecken undBusiness Intelligence-Workloads verarbeiten. Außerdem können Sie Amazon EMR zum Transformierenund Verschieben großer Datenmengen in und aus anderen AWS-Datenspeichern und Datenbankenverwenden, wie z. B. Amazon Simple Storage Service (Amazon S3) und Amazon DynamoDB.

Wenn Sie Amazon EMR erstmalig verwenden, empfehlen wir, zusätzlich zu diesem Abschnitt die folgendenAbschnitte zu lesen:

• Amazon EMR – Auf dieser Service-Seite finden Sie die Merkmale von bzw. die Produktdetails undPreisinformationen zu Amazon EMR.

• Erste Schritte: Big Date-Analyse mit Amazon EMR (p. 12) – Anhand dieser Tutorials erfahren Sie, wieSie schnell mit Amazon EMR vertraut werden.

In diesem Abschnitt• Übersicht über Amazon EMR (p. 1)• Vorteile von Amazon EMR (p. 4)• Übersicht über die Amazon EMR-Architektur (p. 9)

Übersicht über Amazon EMRDieses Thema bietet eine Übersicht über die Amazon EMR-Cluster, einschließlich der Übermittlung vonAufträgen an einen Cluster, der Verarbeitung von Daten und der verschiedenen Status, die der Clusterwährend der Verarbeitung durchläuft.

In diesem Thema• Verstehen von Clustern und Knoten (p. 1)• Übermitteln von Aufträgen an einen Cluster (p. 2)• Verarbeiten von Daten (p. 2)• Verstehen des Cluster-Lebenszyklus (p. 4)

Verstehen von Clustern und KnotenDie zentrale Komponente des Amazon EMR ist der Cluster. Ein Cluster ist eine Sammlung von AmazonElastic Compute Cloud (Amazon EC2)-Instances. Jede Instance in einem Cluster wird als Knotenbezeichnet. Jeder Knoten verfügt über eine Rolle im Cluster, die als Knotentyp bezeichnet wird. AmazonEMR installiert auch verschiedene Softwarekomponenten auf den einzelnen Knotentypen und überträgt sojedem Knoten eine Rolle in einer verteilten Anwendung wie Apache Hadoop.

Amazon EMR verfügt über die folgenden Knotentypen:

• Master-Knoten: Knoten, der den Cluster durch die Ausführung von Softwarekomponenten verwaltet, diedie Verteilung von Daten und Aufgaben auf andere Knoten zur Verarbeitung koordinieren. Der Master-Knoten überwacht den Status der Aufgaben und überwacht den Zustand des Clusters. Jeder Cluster

1

Page 9: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜbermitteln von Aufträgen an einen Cluster

verfügt über einen Master-Knoten und es ist möglich, einen Einzelknoten-Cluster nur mit dem Master-Knoten zu erstellen.

• Core-Knoten: Knoten mit Software-Komponenten, die Aufgaben ausführen und Daten im HDFS (HadoopDistributed File System) auf dem Cluster speichern. Multiknoten-Cluster enthalten mindestens einenCore-Knoten.

• Aufgabenknoten: Knoten mit Software-Komponenten, die nur Aufgaben ausführen und keine Daten inHDFS speichern. Aufgabenknoten sind optional.

Im folgenden Diagramm ist ein Cluster mit einem Master-Knoten und vier Core-Knoten dargestellt.

Übermitteln von Aufträgen an einen ClusterBei Ausführung eines Clusters in Amazon EMR haben Sie mehrere Möglichkeiten, die auszuführendeArbeit anzugeben.

• Stellen Sie die gesamte Definition der auszuführenden Arbeit in Funktionen bereit, die Sie als Schritteangeben, wenn Sie einen Cluster erstellen. Dies wird in der Regel für Cluster durchgeführt, die einebestimmte Datenmenge verarbeiten und nach Abschluss der Verarbeitung beendet werden.

• Erstellen Sie einen langlebigen Cluster und verwenden Sie die Amazon EMR-Konsole, die AmazonEMR-API oder die AWS CLI, um die Schritte, die einzelne oder mehrere Aufträge umfassenkönnen, zu übermitteln. Weitere Informationen finden Sie unter Übermitteln von Aufträgen an einenCluster (p. 437).

• Erstellen Sie einen Cluster, stellen Sie nach Bedarf eine Verbindung zum Master-Knoten und zuanderen Knoten mit SSH her und verwenden Sie die von den installierten Anwendungen bereitgestelltenSchnittstellen, um Aufgaben auszuführen und Abfragen zu senden – entweder in Skripts oder interaktiv.Weitere Informationen hierzu finden Sie unter Amazon EMR-Versionshinweise.

Verarbeiten von DatenWenn Sie einen Cluster starten, bestimmen Sie die zu installierenden Frameworks und Anwendungen,damit Ihren Anforderungen an die Datenverarbeitung entsprochen wird. Um Daten in Ihrem Amazon EMR-

2

Page 10: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerarbeiten von Daten

Cluster zu verarbeiten, können Sie Aufträge oder Abfragen direkt an installierte Anwendungen senden oderalternativ die Schritte im Cluster ausführen.

Übermitteln von Aufträgen direkt an die AnwendungenSie können Aufträge direkt an die Software übermitteln, die auf Ihrem Amazon EMR-Cluster installiertist, und anschließend damit interagieren. Dazu stellen Sie in der Regel eine sichere Verbindung mit demMaster-Knoten her und greifen auf die Schnittstellen und Tools zu, die für die Software, die direkt aufIhrem Cluster ausgeführt wird, verfügbar sind. Weitere Informationen finden Sie unter Verbinden mit demCluster (p. 383).

Ausführen von Schritten zur Verarbeitung von DatenSie können einem Amazon EMR-Cluster einen oder mehrere angeordnete Schritte übermitteln. JederSchritt ist eine Arbeitseinheit mit Anweisungen zur Verarbeitung von Daten durch auf dem Clusterinstallierte Software.

Es folgt ein Beispiel für einen Prozess mit vier Schritten:

1. Übermitteln Sie die Eingabedatenmenge für die Verarbeitung.2. Verarbeiten Sie die Ausgabe des ersten Schritts mithilfe eines Pig-Programms.3. Verarbeiten Sie eine zweites Eingabedatenmenge mithilfe eines Hive-Programms.4. Schreiben Sie einen Ausgabedatensatz.

Wenn Sie Daten in Amazon EMR verarbeiten, wird die Eingabe als Daten in Dateien gespeichert, die sichim zugrunde liegenden Dateisystem, wie z. B. Amazon S3 oder HDFS, befinden. Diese Daten werdenwährend des Verarbeitungsablaufs von einem Schritt zum nächsten weitergeleitet. Im letzten Schrittwerden die Ausgabedaten in einen bestimmten Speicherort geschrieben, wie zum Beispiel in einenAmazon S3-Bucket.

Die Schritte werden in der folgenden Reihenfolge ausgeführt:

1. Eine Anfrage wird übermittelt, um mit den Verarbeitungsschritten zu beginnen.2. Der Status aller Schritte wird auf PENDING (AUSSTEHEND) festgelegt.3. Wenn der erste Schritt der Sequenz gestartet wird, wird dessen Status in RUNNING (WIRD

AUSGEFÜHRT) geändert. Die anderen Schritte bleiben im Status PENDING (AUSSTEHEND).4. Nachdem der erste Schritt abgeschlossen ist, wird dessen Status in COMPLETED (ABGESCHLOSSEN)

geändert.5. Der nächste Schritt der Sequenz wird gestartet und dessen Status wird in RUNNING (WIRD

AUSGEFÜHRT) geändert. Nachdem er abgeschlossen ist, wird dessen dessen Status in COMPLETED(ABGESCHLOSSEN) geändert.

6. Dieses Muster wiederholt sich für jeden Schritt, bis alle Schritte abgeschlossen sind und dieVerarbeitung beendet wird.

Das folgende Diagramm stellt die Schrittsequenz sowie die Statusänderung für die einzelnen Schrittewährend der Verarbeitung dar.

Wenn ein Schritt während der Verarbeitung fehlschlägt, wird dessen Status inTERMINATED_WITH_ERRORS (MIT_FEHLERN_ABGEBROCHEN) geändert. Sie können für jeden Schritt

3

Page 11: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerstehen des Cluster-Lebenszyklus

festlegen, was als Nächstes geschieht. Standardmäßig werden alle verbleibenden Schritte in der Sequenzauf CANCELLED (ABGEBROCHEN) festgelegt und nicht ausgeführt. Außerdem können Sie das Ignorierendes Fehlers aktivieren, damit die verbleibenden Schritte ausgeführt werden oder der Cluster sofort beendetwird.

Das folgende Diagramm stellt die Schrittsequenz sowie die standardmäßige Statusänderung dar, wenn einSchritt während der Verarbeitung fehlschlägt.

Verstehen des Cluster-LebenszyklusEin erfolgreicher Amazon EMR-Cluster befolgt diesen Prozess:

1. Amazon EMR stellt zunächst EC2 Instances im Cluster für jede Instance nach Maßgabe IhrerSpezifikationen bereit. Weitere Informationen finden Sie unter Konfigurieren von Cluster-Hardware undNetzwerken (p. 136). Amazon EMR verwendet für alle Instances das Standard-AMI für Amazon EMRoder ein von Ihnen angegebenes benutzerdefiniertes Amazon Linux-AMI. Weitere Informationen findenSie unter Verwenden eines benutzerdefinierten AMI (p. 124). Während dieser Phase ist der Cluster-Status auf STARTING gesetzt.

2. Amazon EMR führt die von Ihnen für die einzelnen Instances angegebenen Bootstrap-Aktionen aus.Sie können Bootstrap-Aktionen verwenden, um benutzerdefinierte Anwendungen zu installieren underforderliche Anpassungen vorzunehmen. Weitere Informationen finden Sie unter Create BootstrapActions to Install Additional Software (p. 132). Während dieser Phase ist der Cluster-Status aufBOOTSTRAPPING gesetzt.

3. Amazon EMR installiert die nativen Anwendungen, die Sie angeben, wenn Sie den Cluster erstellen,z. B. Hive, Hadoop, Spark usw.

4. Nachdem Bootstrap-Aktionen erfolgreich abgeschlossen und native Anwendungen installiert wurden,lautet der Cluster-Status RUNNING. An diesem Punkt können Sie die Verbindung zu Cluster-Instancesherstellen. Der Cluster führt sequenziell die Schritte aus, die Sie beim Erstellen des Clusters angegebenhaben. Sie können zusätzliche Schritte senden, die dann nach Abschluss der vorherigen Schritteausgeführt werden. Weitere Informationen finden Sie unter Arbeiten mit Schritten unter Verwendung vonAWS CLI und Konsole (p. 437).

5. Nachdem die Schritte erfolgreich ausgeführt wurden, erhält der Cluster den Status WAITING. Wenn einCluster für die automatische Beendigung nach Abschluss des letzten Schritts konfiguriert ist, erhält derCluster den Status SHUTTING_DOWN.

6. Nachdem alle Instances beendet wurden, erhält der Cluster den Status COMPLETED.

Ein Fehler im Cluster-Lebenszyklus veranlasst Amazon EMR, den Cluster und dessen Instances zubeenden, sofern Sie nicht den Beendigungsschutz aktivieren. Wenn ein Cluster wegen eines Fehlersbeendet wird, werden alle auf dem Cluster befindlichen Daten gelöscht und dem Cluster-Status wird derStatus FAILED zugewiesen. Wenn Sie den Beendigungsschutz aktiviert haben, können Sie Daten vomCluster abrufen und anschließend den Beendigungsschutz entfernen und den Cluster beenden. WeitereInformationen finden Sie unter Using Termination Protection (p. 118).

Vorteile von Amazon EMREs gibt zahlreiche Vorteile für die Verwendung von Amazon EMR. Dieser Abschnitt bietet eine Übersichtüber die Vorteile und stellt Ihnen Links zu weiteren Informationen zur Verfügung.

4

Page 12: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKosteneinsparungen

Themen• Kosteneinsparungen (p. 5)• AWS-Integration (p. 5)• Bereitstellung (p. 5)• Skalierbarkeit und Flexibilität (p. 6)• Zuverlässigkeit (p. 6)• Sicherheit (p. 7)• Überwachung (p. 8)• Verwaltungsschnittstellen (p. 8)

KosteneinsparungenDie Amazon EMR-Preisgestaltung richtet sich nach dem Instance-Typ und der Anzahl der EC2-Instances,die Sie bereitstellen, sowie der Region, in der Sie den Cluster starten. On-Demand-Preise bieten einenniedrigen Stundensatz, allerdings können Sie die Kosten weiter senken, indem Sie Reserved Instanceserwerben oder auf Spot-Instances bieten. Spot-Instances können bedeutende Kostenersparnisse bieten –in einigen Fällen betragen sie nur ein Zehntel der On-Demand-Preise.

Note

Wenn Sie Amazon S3, Amazon Kinesis oder DynamoDB mit Ihrem EMR-Cluster verwenden,fallen für diese Services zusätzliche Gebühren an, die getrennt von Ihrer Amazon EMR-Nutzungberechnet werden.

Weitere Informationen zu Preisoptionen und Details finden Sie unter Amazon EMR-Preise.

AWS-IntegrationAmazon EMR kann mit anderen AWS-Services integriert werden, um für den Cluster Funktionen undFunktionalität im Zusammenhang mit Netzwerk, Speicher, Sicherheit sw. bereitzustellen. In der folgendenListe finden Sie einige Beispiele für diese Integration:

• Amazon EC2 für die Instances, die als Knoten im Cluster vorhanden sind• Amazon Virtual Private Cloud (Amazon VPC) zum Konfigurieren des virtuellen Netzwerks, in dem Sie

Ihre Instances starten• Amazon S3 zum Speichern von Ein- und Ausgabedaten• Amazon CloudWatch zur Überwachung der Cluster-Leistung und Konfiguration von Alarmen• AWS Identity and Access Management (IAM) zum Konfigurieren von IAM-Berechtigungen• AWS CloudTrail zur Prüfung von Anfragen an den Service• AWS Data Pipeline zum Planen und Starten Ihrer Cluster

BereitstellungIhr EMR-Cluster besteht aus EC2-Instances, die die Aufgaben ausführen, die Sie Ihrem Cluster übermitteln.Wenn Sie einen Cluster starten, konfiguriert Amazon EMR die Instances mit den von Ihnen ausgewähltenAnwendungen, wie beispielsweise Apache Hadoop oder Spark. Wählen Sie die Größe und den Typder Instance aus, die am ehesten den Verarbeitungsanforderungen Ihres Clusters entsprechen:Stapelverarbeitung, schnelle Abfragen, Streaming-Daten oder große Datenspeicher. Weitere Informationen

5

Page 13: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSkalierbarkeit und Flexibilität

zu den für Amazon EMR verfügbaren Instance-Typen finden Sie unter Konfigurieren von Cluster-Hardwareund Netzwerken (p. 136).

Amazon EMR bietet verschiedene Möglichkeiten zum Konfigurieren von Software auf Ihrem Cluster. Siekönnen beispielsweise eine Amazon EMR-Sersion installieren, die eine Reihe ausgewählter Anwendungenumfasst, einschließlich vielseitiger Frameworks wie Hadoop und Anwendungen, wie beispielsweise Hive,Pig oder Spark. Sie können auch eine von mehreren MapR-Verteilungen installieren. Da Amazon EMRAmazon Linux verwendet, können Sie auch unter Verwendung des yum-Paketmanagers oder über dieQuelle manuell Software auf Ihrem Cluster installieren. Weitere Informationen finden Sie unter ConfigureCluster Software (p. 132).

Skalierbarkeit und FlexibilitätAmazon EMR bietet Flexibilität, sodass Sie Ihren Cluster nach oben oder unten skalieren können,wenn sich Ihre Anforderungen an die Datenverarbeitung ändern. Sie können die Größe des Clustersändern, um während Spitzenlastzeiten Instances hinzuzufügen, und um Instances zu entfernen, wenndie Spitzenlastzeiten nachlassen. So verfügen Sie über mehr Kontrolle über Ihre Kosten. WeitereInformationen finden Sie unter Manuelle Größenanpassung eines aktiven Clusters (p. 429).

Amazon EMR bietet außerdem die Option, mehrere Instance-Gruppen auszuführen. So können Sie sie ineiner Gruppe On-Demand-Instances verwenden, um die Verarbeitungsleistung sicherzustellen, währendSie in einer anderen Gruppe Spot-Instances verwenden, um Ihre Aufträge schneller abzuschließen undKosten zu senken. Sie können auch verschiedene Instance-Typen mischen, um die Preisvorteile vonbestimmten Spot-Instance-Typen zu nutzen. Weitere Informationen finden Sie unter Wann sollten Sie Spot-Instances verwenden? (p. 170).

Darüber hinaus bietet Amazon EMR die Flexibilität, verschiedene Dateisysteme für Ihre Eingabe-,Ausgabe- und Zwischendaten zu verwenden. Für die Verarbeitung von Daten, die Sie nicht längerals den Lebenszyklus Ihres Clusters speichern müssen, können Sie beispielsweise das HadoopDistributed File System (HDFS) auswählen, das auf den Master- und Core-Knoten Ihres Clustersausgeführt wird. Sie können möglicherweise auch das EMR File System (EMRFS) für die Verwendungmit Amazon S3 auswählen. Es kann als Daten-Layer für Anwendungen auf Ihrem Cluster dienen,sodass Sie die Datenverarbeitung und den Speicher trennen und Daten außerhalb des LebenszyklusIhres Clusters erhalten können. EMRFS bietet Ihnen die Möglichkeit, Ihre Anforderungen an dieDatenverarbeitung und an den Speicher nach oben oder nach unten zu skalieren. Sie können IhreAnforderungen an die Datenverarbeitung skalieren, indem Sie die Größe Ihres Clusters verändern, undIhre Speicheranforderungen skalieren, indem Sie Amazon S3 verwenden. Weitere Informationen finden Sieunter Work with Storage and File Systems (p. 54).

ZuverlässigkeitAmazon EMR überwacht die Knoten in Ihrem Cluster und beendet und ersetzt eine Instance automatisch,wenn ein Fehler auftritt.

Amazon EMR bietet Konfigurationsoptionen, anhand denen Sie steuern, wie der Cluster beendet werdensoll – automatisch oder manuell. Wenn Sie Ihren Cluster so konfigurieren, dass er automatisch beendetwird, erfolgt das, nachdem alle Schritte abgeschlossen sind. Dies wird auch als vorübergehenderCluster bezeichnet. Sie können den Cluster jedoch auch so konfigurieren, dass er nach Abschluss derVerarbeitung weiter ausgeführt wird. Auf diese Weise können Sie ihn manuell beenden, wenn Sie ihn nichtlänger benötigen. Alternativ können Sie einen Cluster erstellen, mit den installierten Anwendungen direktinteragieren und den Cluster, wenn Sie ihn nicht mehr benötigen, manuell beenden. Die Cluster in diesenBeispielen werden als langlebige Cluster bezeichnet.

Zusätzlich können Sie den Beendigungsschutz konfigurieren, um zu verhindern, dass Instances imCluster aufgrund von Fehlern oder Problemen während der Verarbeitung beendet werden. Wennder Beendigungsschutz aktiviert ist, können Sie die Daten vor der Beendigung von den Instanceswiederherstellen. Die Standardeinstellungen für diese Optionen unterscheiden sich, je nachdem, ob Sie

6

Page 14: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSicherheit

einen Cluster über die Konsole, die CLI oder die API starten. Weitere Informationen finden Sie unter UsingTermination Protection (p. 118).

SicherheitAmazon EMR nutzt AWS-Services, wie IAM und Amazon VPC und unterstützt Funktionen wie AmazonEC2-Schlüsselpaare, um Ihnen zu helfen, Ihre Cluster und Daten zu sichern.

IAMAmazon EMR kann mit IAM integriert werden, um Berechtigungen zu verwalten. Sie definierenBerechtigungen mit IAM-Richtlinien, die Sie IAM-Benutzern oder IAM-Gruppen anfügen. DieBerechtigungen, die Sie in den Richtlinie definieren, legen fest, welche Aktionen diese Benutzer oderGruppenmitglieder ausführen können, und auf welche Ressourcen sie zugreifen können. WeitereInformationen finden Sie unter Funktionsweise von Amazon EMR mit IAM (p. 220).

Darüber hinaus verwendet Amazon EMR IAM-Rollen für den Amazon EMR selbst und das EC2-Instance-Profil für die Instances. Diese Rollen erteilen dem Service und den Instances die Berechtigungen, inIhrem Auftrag auf andere AWS-Services zuzugreifen. Es gibt sowohl für den Amazon EMR-Service alsauch für das EC2-Instance-Profil eine standardmäßige Rolle. Die Standardrollen verwenden von AWSverwaltete Richtlinien, die automatisch erstellt werden, wenn Sie das erste Mal einen EMR-Cluster über dieKonsole starten und Standardberechtigungen auswählen. Sie können die IAM-Standardrollen auch über dieAWS CLI erstellen. Wenn Sie die Berechtigungen lieber selber verwalten möchten, anstatt sie über AWSlaufen zu lassen, können Sie für den Service und das Instance-Profil benutzerdefinierte Rollen auswählen.Weitere Informationen finden Sie unter Configure IAM Service Roles for Amazon EMR Permissions to AWSServices and Resources (p. 223).

SicherheitsgruppenAmazon EMR verwendet Sicherheitsgruppen, um den ein- und ausgehenden Datenverkehr zu Ihren EC2-Instances zu steuern. Wenn Sie Ihren Cluster starten, verwendet Amazon EMR eine Sicherheitsgruppe fürIhre Master-Instance und eine Sicherheitsgruppe für Ihre Core- und Aufgaben-Instances. Amazon EMRkonfiguriert die Sicherheitsgruppenregeln, um die Kommunikation zwischen den Instances im Clustersicherzustellen. Optional können Sie, falls Sie erweiterte Regeln benötigen, zusätzliche Sicherheitsgruppenkonfigurieren und sie den Master- und Core-/Aufgaben-Instances zuweisen. Weitere Informationen findenSie unter Steuerung des Netzwerkverkehrs mit Sicherheitsgruppen (p. 316).

VerschlüsselungAmazon EMR unterstützt die optionale serverseitige und clientseitige Amazon S3-Verschlüsselungmit EMRFS, um die von Ihnen in Amazon S3 gespeicherten Daten zu schützen. Bei der serverseitigenVerschlüsselung werden Ihre Daten von Amazon S3 nach dem Hochladen verschlüsselt.

Bei der clientseitigen Verschlüsselung erfolgt der Ver- und Entschlüsselungsvorgang im EMRFS-Client aufIhrem EMR-Cluster. Sie verwalten den Masterschlüssel für die clientseitige Verschlüsselung über AWS KeyManagement Service (AWS KMS) oder Ihr eigenes Schlüsselverwaltungssystem.

Weitere Informationen finden Sie unter Verschlüsselung für Amazon S3-Daten mit EMRFS im AmazonEMR-Versionshinweise.

Amazon VPCAmazon EMR unterstützt das Starten von Clustern in einer Virtual Private Cloud (VPC) in Amazon VPC.Eine VPC ist ein isoliertes, virtuelles Netzwerk in AWS, das die Möglichkeit bietet, erweiterte Aspekte derNetzwerkkonfiguration und des Zugriffs zu steuern. Weitere Informationen finden Sie unter Konfigurierendes Netzwerks (p. 144).

7

Page 15: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜberwachung

AWS CloudTrailAmazon EMR kann mit CloudTrail integriert werden, um Informationen zu Anfragen zu protokollieren, dievon Ihrem AWS-Konto oder im Namen Ihres AWS-Kontos gesendet wurden. Anhand dieser Informationenkönnen Sie verfolgen, wer wann auf Ihr Cluster zugreift sowie die IP-Adresse, von der die Anforderunggestellt wird. Weitere Informationen finden Sie unter Protokollieren von Amazon EMR-API-Aufrufen in AWSCloudTrail (p. 381).

Amazon EC2-SchlüsselpaareIndem Sie eine sichere Verbindung zwischen Ihrem Remotecomputer und dem Master-Knoten herstellen,können Sie Ihren Cluster überwachen und damit interagieren. Sie verwenden das NetzwerkprotokollSecure Shell (SSH) für diese Verbindung oder Kerberos für die Authentifizierung. Wenn Sie SSHverwenden, ist ein Amazon EC2-Schlüsselpaar erforderlich. Weitere Informationen finden Sie unter Use anAmazon EC2 Key Pair for SSH Credentials (p. 265).

ÜberwachungSie können mithilfe der Amazon EMR-Verwaltungsschnittstellen und -Protokolldateien Probleme mitdem Cluster zu beheben, z. B. Ausfälle oder Fehler. Amazon EMR ermöglicht das Archivieren vonProtokolldateien in Amazon S3, sodass Sie Protokolle speichern und Probleme beheben können, auchnachdem Ihr Cluster beendet wurde. Amazon EMR stellt außerdem in der Amazon EMR-Konsole einoptionales Debugging-Tool bereit, um Protokolldateien nach Schritten, Aufträgen und Aufgaben zudurchsuchen. Weitere Informationen finden Sie unter Configure Cluster Logging and Debugging (p. 174).

Amazon EMR kann mit CloudWatch integriert werden, um Leistungsmetriken für den Cluster und fürAufträge innerhalb des Clusters nachzuverfolgen. Sie können Alarme im Hinblick auf eine Vielzahl vonMetriken konfigurieren, z. B. ob der Cluster inaktiv ist oder wie viel Prozent des Speicherplatzes verbrauchtwurden. Weitere Informationen finden Sie unter Überwachen der Metriken mit CloudWatch (p. 364).

VerwaltungsschnittstellenEs gibt mehrere Möglichkeiten, mit Amazon EMR zu interagieren:

• Konsole: eine grafische Benutzerschnittstelle, die Sie zum Starten und Verwalten von Clusternverwenden können. Hier füllen Sie Webformulare aus, um Detaildaten zum Starten von Clustersanzugeben, Detaildaten von vorhandenen Clusters anzuzeigen und Clusters zu debuggen bzw. zubeenden. Die Konsole bietet die einfachste Möglichkeit für die ersten Schritte mit Amazon EMR; keineProgrammierkenntnisse erforderlich. Die Konsole ist online unter https://console.aws.amazon.com/elasticmapreduce/home verfügbar.

• AWS Command Line Interface (AWS CLI): eine Client-Anwendung, die Sie auf Ihrem lokalen Computerausführen, um eine Verbindung zu Amazon EMR herzustellen und Cluster zu erstellen und zu verwalten.Die AWS CLI enthält einen umfassenden Satz von Befehlen speziell für Amazon EMR. Damit schreibenSie Skripts, die das Starten und Verwalten der Clusters automatisieren. Die AWS CLI ist die besteOption, wenn Sie es vorziehen, von einer Befehlszeile aus zu arbeiten. Weitere Informationen finden Sieunter Amazon EMR im AWS CLI Command Reference.

• Software Development Kit (SDK): SDKs stellen Funktionen für den Aufruf von Amazon EMR bereit, umCluster zu erstellen und zu verwalten. Mit ihnen können Sie Anwendungen schreiben, die das Erstellenund Verwalten von Clusters automatisieren. Die Verwendung des SDK stellt die beste Option für dieErweiterung oder Anpassung der Funktionalität von Amazon EMR dar. Amazon EMR ist zurzeit in denfolgenden SDKs verfügbar: Go, Java, .NET (C# und VB.NET), Node.js, PHP, Python und Ruby. WeitereInformationen über diese SDKs, finden Sie unter Tools für AWS und Amazon EMR Sample Code &Libraries.

• Web Service API: eine Low-Level-Schnittstelle, die Sie zum direkten Aufruf des Webservice über JSONverwenden können. Die Verwendung des API ist die beste Option, wenn Sie ein eigenes SDK erstellen

8

Page 16: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArchitektur

wollen, das Amazon EMR aufruft;. Weitere Informationen hierzu finden Sie unter Amazon EMR APIReference.

Übersicht über die Amazon EMR-ArchitekturDie Service-Architektur von Amazon EMR besteht aus mehreren Ebenen, die dem Cluster jeweilsbestimmte Möglichkeiten und Funktionen bereitstellen. Dieser Abschnitt bietet eine Übersicht über diejeweiligen Ebenen und Komponenten.

In diesem Thema• Speicher (p. 9)• Cluster-Ressourcenverwaltung (p. 9)• Datenverarbeitungs-Frameworks (p. 10)• Anwendungen und Programme (p. 11)

SpeicherDie Speicherschicht umfasst die verschiedenen Dateisysteme, die Sie in Ihrem Cluster verwendet werden.Es gibt mehrere verschiedene Speicheroptionen wie nachfolgend beschrieben.

Hadoop Distributed File System (HDFS)Hadoop Distributed File System (HDFS) ist ein verteiltes, skalierbares Dateisystem für Hadoop. HDFSverteilt die auf verschiedenen Instances im Cluster gespeicherten Daten, wobei mehrere Kopien vonDaten auf unterschiedlichen Instances gespeichert werden, um sicherzustellen, dass bei Ausfall einereinzelnen Instance keine Daten verloren gehen. HDFS ist flüchtiger Speicher, der zurückgefordert wird,wenn Sie einen Cluster beenden. HDFS ist nützlich für das Speichern von Zwischenergebnissen währendder MapReduce-Verarbeitung oder für Workloads, die eine erhebliche zufällige E/-A-Leistung aufweisen.

Weitere Informationen finden Sie unter HDFS Users Guide auf der Website von Apache Hadoop.

EMR File System (EMRFS)Amazon EMR erweitert mittels des EMR File System (EMRFS) Hadoop durch die Hinzufügung des direktenZugriffs auf in Amazon S3 gespeicherte Daten, als ob es sich um ein Dateisystem wie HDFS handelnwürde. Sie können entweder HDFS oder Amazon S3 als das Dateisystem Ihres Clusters verwenden. Inder Regel wird Amazon S3 zum Speichern der Ein- und Ausgabedaten verwendet, Zwischenergebnissewerden in HDFS gespeichert.

Lokales DateisystemDas lokale Dateisystem bezieht sich auf einen lokal verbundenen Datenträger. Wenn Sie einen Hadoop-Cluster erstellen, werden die einzelnen Knoten aus einer Amazon EC2-Instance erstellt, die einenvorkonfigurierten Block mit bereits zugeordnetem Festplattenspeicher, einen sogenannten Instance-Speicher, aufweist. Die Daten auf den Instance-Speicher-Volumes bleiben nur während des Lebenszyklusder Amazon EC2-Instance erhalten.

Cluster-RessourcenverwaltungDer Ressourcenverwaltungs-Layer ist verantwortlich für die Verwaltung der Cluster-Ressourcen und diePlanung der Aufträge für die Datenverarbeitung.

9

Page 17: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideDatenverarbeitungs-Frameworks

Amazon EMR verwendet standardmäßig YARN (Yet Another Resource Negotiator). Dabei handeltes sich um eine Komponente, die in Apache Hadoop 2.0 eingeführt wurde und mit der die Cluster-Ressourcen für mehrere Datenverarbeitungs-Frameworks zentral verwaltet werden können. Es gibt jedochweitere Frameworks und Anwendungen, die in Amazon EMR bereitgellt werden und YARN nicht alsRessourcenmanager verwenden. Amazon EMR führt außerdem auf jedem Knoten einen Agenten aus, derYARN-Komponenten verwaltet, für die Stabilität des Clusters sorgt und mit Amazon EMR kommuniziert.

Da Spot-Instances häufig zur Ausführung von Aufgabenknoten verwendet werden, verfügt Amazon EMRüber eine standardmäßige Funktionalität für die Planung von YARN-Aufträgen. So wird sichergestellt, dassAufträge, die gerade ausgeführt werden, nicht fehlschlagen, wenn die auf Spot-Instances ausgeführtenAufgabenknoten beendet werden. Zu diesem Zweck lässt Amazon EMR die Ausführung von Anwendungs-Masterprozessen nur auf Core-Knoten zu. Der Anwendungs-Masterprozess steuert die Ausführung vonAufträgen und muss während der Lebenszeit des Auftrags verfügbar bleiben.

Um dies sicherzustellen, verwendet Amazon EMR ab der Release-Version 5.19.0 die integrierteFunktion für YARN-Knotenkennzeichnungen. (Frühere Versionen verwendeten einen Code-Patch.) DieEigenschaften in den yarn-site- und capacity-scheduler-Konfigurationsklassifikationen werdenstandardmäßig so konfiguriert, dass der YARN capacity-scheduler und der fair-scheduler die Knoten-Kennzeichnungen nutzen. Amazon EMR kennzeichnet Core-Knoten automatisch mit der KennzeichnungCORE und legt die Eigenschaften so fest, dass Anwendungs-Master nur auf Knoten mit der CORE-Kennzeichnung geplant werden. Die manuelle Änderung zugehöriger Eigenschaften in den yarn-site- undcapacity-scheduler-Konfigurationsklassifikationen oder direkt in den verknüpften XML-Dateien könnte dieseFunktion zerstören oder verändern.

Datenverarbeitungs-FrameworksDer Datenverarbeitungs-Framework-Layer ist die Engine, die zur Verarbeitung und Analyse der Datenverwendet wird. Es stehen viele Frameworks zur Verfügung, die auf YARN ausgeführt werden oder überihre eigene Ressourcenverwaltung verfügen. Es gibt unterschiedliche Frameworks für die verschiedenenVerarbeitungsanforderungen, beispielsweise Stapel, Interaktiv, In-Memory, Streaming und so weiter.Das Framework, das Sie auswählen sollten, hängt von Ihrem Anwendungsfall ab. Dies wirkt sich aufdie Sprachen und Schnittstellen der Anwendungsebene aus, d. h. der Ebene, über die mit den zuverarbeitenden Daten interagiert wird. Die hauptsächlichen Verarbeitungs-Frameworks für Amazon EMRsind Hadoop MapReduce und Spark.

Hadoop MapReduceHadoop MapReduce ist ein Open-Source-Programmiermodell für die verteilte Datenverarbeitung. Esvereinfacht den Prozess der Entwicklung paralleler verteilter Anwendungen, indem die gesamte Logikgehandhabt wird, während Sie die Funktionen "Map" und "Reduce" bereitstellen. Die Funktion "Map" führteine Zuordnung von Daten und Sätzen von Schlüssel/Wert-Paaren durch, die als Zwischenergebnissebezeichnet werden. Die Funktion "Reduce" kombiniert die Zwischenergebnisse, wendet weitereAlgorithmen an und generiert das Endergebnis. Für MapReduce stehen mehrere Frameworks zurVerfügung, darunter auch Hive, das automatisch Map-und Reduce-Programme generiert.

Weitere Informationen finden Sie unter How Map and Reduce operations are actually carried out auf derWiki-Website von Apache Hadoop.

Apache SparkSpark ist ein Cluster-Framework und Programmiermodell für die Verarbeitung von Big-Data-Workloads.Spark ist, genau wie Hadoop MapReduce, ein verteiltes Open-Source-Verarbeitungssystem. Es verwendetjedoch für die Ausführungspläne azyklische Graphen und nutzt für die Datensätze In-Memory-Caching.Wenn Sie Spark auf Amazon EMR ausführen, können Sie über EMRFS direkt auf Ihre Daten in Amazon S3zugreifen. Spark unterstützt mehrere interaktive Abfragen Module wie beispielsweise SparkSQL.

Weitere Informationen finden Sie unter Apache Spark auf Amazon EMR-Clustern im Amazon EMR-Versionshinweise.

10

Page 18: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnwendungen und Programme

Anwendungen und ProgrammeAmazon EMR unterstützt zahlreiche Anwendungen, wie Hive, Pig, und die Spark Streaming-Bibliothek,um beispielsweise mithilfe komplexerer Programmiersprachen Verarbeitungs-Workloads zu erstellen,Machine Learning-Algorithmen zu nutzen, Anwendungen für die Stream-Verarbeitung zu erstellen und DataWarehouses zu entwickeln. Darüber hinaus unterstützt Amazon EMR auch Open-Source-Projekte, die ihreeigene Cluster-Management-Funktionalität mitbringen und nicht YARN verwenden.

Sie können verschiedene Bibliotheken und Sprachen verwenden, um mit den Anwendungen, die Sie inAmazon EMR ausführen, zu interagieren. Sie können beispielsweise Java, Hive oder Pig mit MapReduceoder Spark Streaming, Spark SQL, MLlib und GraphX mit Spark verwenden.

Weitere Informationen hierzu finden Sie unter Amazon EMR-Versionshinweise.

11

Page 19: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 1: Einrichten der Voraussetzungen

Erste Schritte: Big Date-Analyse mitAmazon EMR

Dieses Tutorial führt Sie durch die Schritte zum Erstellen eines Beispiel-Amazon EMR -Clusters mit QuickCreate (Schnellerstellung)-Optionen in der AWS Management Console. Nachdem Sie den Cluster erstellthaben, senden Sie ein Hive-Skript als Schritt zur Verarbeitung von Beispieldaten in Amazon SimpleStorage Service (Amazon S3).

In diesem Tutorial wird nur oberflächlich auf die Konfigurationsoptionen eingegangen. Es ist daher nicht fürProduktionsumgebungen geeignet. Es soll Sie dabei unterstützen, ein Cluster zu Evaluierungszwecken soschnell wie möglich einzurichten. Bei weiteren Fragen oder Problemen können Sie sich an das AmazonEMR-Team wenden, indem Sie einen Beitrag im Diskussionsforum veröffentlichen.

Der erstellte Beispiel-Cluster wird in einer Live-Umgebung ausgeführt. Gebühren für Cluster-Instances fallepro Sekunde gemäß Amazon EMR-Preis an. Weitere Informationen finden Sie unter Amazon EMR-Preise.Diese Gebühren variieren je nach Region. Die Kosten sollten sehr gering sein, da der Cluster weniger alseine Stunde laufen sollte, nachdem der Cluster bereitgestellt wurde.

Möglicherweise fallen außerdem Gebühren für die Speicherung von Abfragenausgabedateien an, die Sie inAmazon S3 als Teil des Tutorials speichern. Die Datei ist klein, so dass die Gebühren minimal sein sollten.Wenn Sie AWS im ersten Jahr nutzen, entfallen einige oder alle Ihrer Gebühren für Amazon S3, wenn Siesich innerhalb Ihrer Grenzwerte des kostenlosen AWS-Kontingents befinden. Weitere Informationen findenSie unter Amazon S3-Preise und AWS-Kontingent.

Die Schritte in diesem Tutorial• Schritt 1: Einrichten der Voraussetzungen für Ihren Beispiel-Cluster (p. 12)• Schritt 2: Starten Ihres Beispiel-Amazon EMRClusters (p. 13)• Schritt 3: Erlauben von SSH-Verbindungen von Ihrem Client zum Cluster (p. 19)• Schritt 4: Verarbeiten der Daten durch Ausführen des Hive-Skripts als Schritt (p. 21)• Schritt 5: Beenden des Clusters und Löschen des Buckets (p. 24)

Schritt 1: Einrichten der Voraussetzungen für IhrenBeispiel-Cluster

Vergewissern Sie sich vor der Einrichtung Ihres Amazon EMR-Clusters, dass die in diesem Themagenannten Voraussetzungen erfüllt sind.

Anmelden bei AWSWenn Sie kein AWS-Konto haben, führen Sie die folgenden Schritte zum Erstellen eines Kontos durch.

Um sich für AWS anzumelden:

1. Öffnen Sie https://aws.amazon.com/ und wählen Sie Create an AWS Account aus.2. Folgen Sie den Onlineanweisungen.

12

Page 20: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen eines Amazon S3-Buckets

Erstellen eines Amazon S3-BucketsIn diesem Tutorial geben Sie einen Amazon S3-Bucket und -Ordner zum Speichern der Ausgabe vonDaten aus einer Hive-Abfrage an. Das Tutorial verwendet den Standard-Protokollspeicherort. Sie könnenjedoch auch einen benutzerdefinierten Speicherort angeben, wenn Sie möchten. Um die Anforderungenvon Hadoop zu erfüllen, gelten für die Namen von Buckets und Ordnern, die Sie mit Amazon EMRverwenden, die folgenden Einschränkungen:

• Sie dürfen nur Buchstaben, Zahlen, Punkte (.) und Bindestriche (-) enthalten.• Sie dürfen nicht mit Zahlen enden.

Wenn Sie bereits über Zugang zu einem Ordner verfügen, der diese Anforderungen erfüllt, können Sie ihnim Rahmen dieses Tutorials verwenden. Der Ordner „output“ sollte leer sein. Eine weitere Anforderungbesteht darin, dass Buckets in allen AWS-Konten eindeutig sein müssen.

Weitere Informationen zum Erstellen eines Buckets finden Sie unter Erstellen eines Buckets im AmazonSimple Storage Service Handbuch Erste Schritte. Nachdem Sie den Bucket erstellt haben, wählen Sie ihnin der Liste aus, und klicken Sie dann auf Create folder (Ordner erstellen), ersetzen Sie New folder (NeuerOrdner) mit einem Namen, der die Voraussetzungen erfüllt, und klicken Sie dann auf Save (Speichern).

Der weiter hinten in dem Tutorial verwendete Bucket- und Ordner-Name ist s3://mybucket/MyHiveQueryResults.

Erstellen eines Amazon EC2-SchlüsselpaaresSie benötigen ein Amazon Elastic Compute Cloud (Amazon EC2)-Schlüsselpaar zum Herstellen einerVerbindung mit den Knoten in Ihrem Cluster über einen sicheren Kanal unter Verwendung des SecureShell (SSH)-Protokolls. Wenn Sie bereits ein Schlüsselpaar haben, das Sie verwenden möchten, könnenSie diesen Schritt überspringen. Wenn Sie noch nicht über ein Schlüsselpaar verfügen, führen Sie je nachBetriebssystem eines der folgenden Verfahren aus.

• Erstellen eines Schlüsselpaares mithilfe von Amazon EC2 im Amazon EC2-Benutzerhandbuch fürWindows-Instances

• Erstellen eines Schlüsselpaares mithilfe von Amazon EC2 im Amazon EC2-Benutzerhandbuch für Linux-Instances Verwenden Sie dieses Verfahren auch für Mac OS.

Schritt 2: Starten Ihres Beispiel-AmazonEMRClusters

In diesem Schritt starten Sie Ihren Beispiel-Cluster über Quick Options (Schnelloptionen) in der AmazonEMR-Konsole, wobei die meisten Optionen bei ihren Standardwerten belassen werden. WeitereInformationen zu diesen Optionen finden Sie unter Zusammenfassung der Schnelloptionen (p. 14)nach dem Verfahren. Wählen Sie Go to advanced options (Zu erweiterten Optionen), um die zusätzlichesKonfigurationsoptionen für einen Cluster zu erkunden. Bevor Sie für dieses Tutorial Ihren Cluster erstellen,stellen Sie sicher, dass Sie die Anforderungen in Schritt 1: Einrichten der Voraussetzungen für IhrenBeispiel-Cluster (p. 12) erfüllen.

Starten des Beispiel-ClustersSo starten Sie den Beispiel-Amazon EMR-Cluster:

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon EMR-Konsoleunter https://console.aws.amazon.com/elasticmapreduce/.

13

Page 21: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideZusammenfassung der Schnelloptionen

2. Wählen Sie Create cluster aus.3. Akzeptieren Sie auf der Seite Create Cluster - Quick Options (Cluster erstellen – Schnelloptionen) die

Standartwerte, mit Ausnahme der folgenden Felder:

• Geben Sie einen Cluster name (Cluster-Name) ein, der Ihnen dabei hilft, den Cluster zuidentifizieren, zum Beispiel My First EMR Cluster.

• Wählen Sie unter Security and access (Sicherheit und Zugriff) das EC2 key pair (EC2-Schlüsselpaar), das Sie in Erstellen eines Amazon EC2-Schlüsselpaares (p. 13) erstellt haben.

4. Wählen Sie Create cluster aus.

Die Cluster-Status-Seite mit der Cluster-Summary (Zusammenfassung) wird angezeigt. Auf dieser Seitekönnen Sie die Überwachung der Cluster-Erstellung durchführen und Details zum Clusterstatus anzeigen.Nach Abschluss der Cluster-Erstellung werden Elemente auf der Statusseite aktualisiert. Möglicherweisemüssen Sie das Aktualisierungs-Symbol auf der rechten Seite betätigen oder Ihren Browser aktualisieren,um Updates zu erhalten.

Unter Network and hardware (Netzwerk und Hardware) finden Sie den Status der Master- und derCore-Instance. Der Status reicht von Provisioning (Bereitstellung) bis Bootstrapping und Waiting(Warten) während der Cluster-Erstellung. Weitere Informationen finden Sie unter Verstehen des Cluster-Lebenszyklus (p. 4).

Sobald Sie die Links für Security groups for Master (Sicherheitsgruppen für Master) und Security Groupsfor Core & Task (Sicherheitsgruppen für Core und Aufgabe) sehen, können Sie mit dem nächstenSchritt fortfahren; Sie können aber auch warten, bis der Cluster erfolgreich gestartet wurde und sich imStatusWaiting (Warten) befindet.

Weitere Informationen zum Lesen der Cluster-Zusammenfassung finden Sie unter View Cluster Status andDetails (p. 335).

Zusammenfassung der SchnelloptionenDie folgende Tabelle beschreibt die Felder und Standardwerte für das Starten eines Clusters über die SeiteQuick Cluster Configuration (Schnelle Cluster-Konfiguration) in der Amazon EMR-Konsole.

Konsolenfeld Standardwert Beschreibung

Cluster name My cluster (Mein Cluster) Der Cluster-Name ist eineoptionale Bezeichnung für denCluster, der nicht eindeutig seinmuss.

Protokollierung Aktivieren Wenn die Protokollierung aktiviertist, schreibt Amazon EMRdetaillierte Protokolldaten inden angegebenen Amazon S3-Ordner. Die Protokollierung nuraktiviert werden kann, wennSie den Cluster erstellen; dieEinstellung kann später nichtmehr geändert werden. Es wirdein Standard-Amazon S3-Bucketangegeben. Sie können optionalIhren eigenen Bucket angeben.Weitere Informationen finden Sieunter View Log Files Archived toAmazon S3 (p. 351).

14

Page 22: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideZusammenfassung der Schnelloptionen

Konsolenfeld Standardwert Beschreibung

S3 folder (S3-Ordner) s3://aws-logs-account_number-region/elasticmapreduce/

Diese Option gibt den Pfadzu einem Ordner in einemAmazon S3-Bucket an,in dem Amazon EMR dieProtokolldaten speichern soll.Wenn der Standard-Ordnerim angegebenen Pfad imBucket nicht existiert, wird erautomatisch erstellt. Sie könneneinen anderen Ordner angeben,indem Sie ihn eingeben oderzu einem Amazon S3-Ordnerwechseln.

Launch mode (Startmodus) Cluster Diese Option gibt an, ob einlang laufender Cluster oder einCluster gestartet wird, der nachder Durchführung von ihnenangegebener Schritte beendetwird.

Mit der Option Cluster läuftder Cluster weiter, bis Sie ihnbeenden; dies wird als langlaufender Cluster bezeichnet.Wenn Sie Step execution(Schritt-Ausführung) wählen,fordert Sie Amazon EMR auf,Schritte hinzuzufügen und zukonfigurieren. Schritte sindeine Möglichkeit, Arbeit aneinen Cluster zu übermitteln.Nachdem die Schritte, die Sieangeben, abgeschlossen sind,wird der Cluster automatischbeendet. Weitere Informationenfinden Sie unter Configuring aCluster to Auto-Terminate orContinue (p. 117).

15

Page 23: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideZusammenfassung der Schnelloptionen

Konsolenfeld Standardwert Beschreibung

Veröffentlichung emr-5.31.0 Diese Option gibt die AmazonEMR-Veröffentlichungsversionan, die bei der Erstellung desClusters verwendet werdensoll. Die Amazon EMR-Veröffentlichung bestimmtdie Version der Open-Source-Anwendungen, wiez. B. Hadoop und Hive, dieAmazon EMR installiert. DieBezeichnung für die neuesteVeröffentlichungsversion iststandardmäßig ausgewählt.Sie können eine frühereAmazon EMR-Veröffentlichungauswählen, wenn Sieverschiedene Versionen vonOpen-Source-Anwendungenfür die Kompatibilität mit IhrerLösung benötigen. EinigeAmazon EMR-Funktionenund Anwendungen sindmöglicherweise nicht verfügbar,wenn Sie frühere Amazon EMR-Veröffentlichungsversionenverwenden. Daher wirdempfohlen, dass Sie die neuesteVersion verwenden, wannimmer dies möglich ist. WeitereInformationen zu jeder AmazonEMR-Veröffentlichungsversionfinden Sie unter Amazon EMR-Versionshinweise.

16

Page 24: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideZusammenfassung der Schnelloptionen

Konsolenfeld Standardwert Beschreibung

Anwendungen Core Hadoop Diese Option bestimmt dieOpen-Source-Anwendungenaus dem Big-Data-Ökosystem,die auf Ihrem Clusterinstalliert werden sollen. Diehäufigsten Kombinationenvon Anwendungen sind überden Schnellstart verfügbar.Um Ihre eigene Kombinationvon Anwendungen zu wählen,einschließlich im Schnellstartnicht aufgeführter zusätzlicherAnwendungen, wählen Sie Go toadvanced options (Zu erweitertenOptionen). Informationenzu den Anwendungen undVersionen bei jeder AmazonEMR-Veröffentlichungsversionfinden Sie unter Amazon EMR-Versionshinweise.

Dazu gilt: Wenn eine Anwendungnicht verfügbar ist, um vonAmazon EMR installiertwerden zu können, oder wennSie eine benutzerdefinierteAnwendung auf allenCluster-Instances installierenmüssen, können Sie eineBootstrap-Aktion verwenden.Weitere Informationenfinden Sie unter CreateBootstrap Actions to InstallAdditional Software (p. 132).Wenn Sie Step execution(Schrittausführung) wählen,wählt Amazon EMR die zuinstallierenden Anwendungenauf der Grundlage derAnforderungen für Ihre Schritteaus.

17

Page 25: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideZusammenfassung der Schnelloptionen

Konsolenfeld Standardwert Beschreibung

Instance-Typ m5.xlarge Diese Option bestimmt denAmazon EC2-Instance-Typ,den Amazon EMR für dieInstances initialisiert, die in IhremCluster ausgeführt werden. DieStandard-Instance-Auswahlvariiert je nach Region, undbestimmte Instance-Typensind möglicherweise nicht inallen Regionen verfügbar.Weitere Informationen findenSie unter Konfigurierenvon Cluster-Hardware undNetzwerken (p. 136).

Anzahl der Instances 3 Diese Option bestimmt dieAnzahl der zu initialisierendenAmazon EC2 Instances. JedeInstance entspricht einem Knotenim Amazon EMR-Cluster. Siemüssen mindestens einenKnoten zur Verfügung haben.Dabei handelt es sich um denMaster-Knoten. Informationenüber die Auswahl von Instance-Typen und die Anzahl derInstances finden Sie unterRichtlinien für die Cluster-Konfiguration und bewährteMethoden (p. 168).

EC2 key pair Choose an option (Eine Optionauswählen)

Mit dieser Option wird dasAmazon EC2-Schlüsselpaarangegeben, mit dem Sie eineVerbindung zu den Knoten inIhrem Cluster mithilfe von SecureShell (SSH) herstellen. Wirempfehlen dringend, dass Sieein Amazon EC2-Schlüsselpaarerstellen und angeben. Wenn Siekein Schlüsselpaar auswählen,können Sie keine Verbindungmit dem Cluster herstellen, umSchritte zu senden oder mitAnwendungen zu interagieren.Weitere Informationen findenSie unter Verbinden mit demCluster (p. 383). Um eineVerbindung herzustellen, müssenSie eine eingehende Regel in derSicherheitsgruppe erstellen, umSSH-Verbindungen zuzulassen.

18

Page 26: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 3: Erlauben des SSH-Zugriffs

Konsolenfeld Standardwert Beschreibung

Berechtigungen Standard Verwenden Sie diese Option,um die AWS Identity and AccessManagement-Rollen anzugeben,die der Cluster verwendet.Diese Rollen bestimmen dieBerechtigungen, die AmazonEMR und die Anwendungen aufCluster-Instances zur Interaktionmit anderen AWS-Serviceshaben. Sie können die OptionCustom (Benutzerdefiniert)wählen, um Ihre eigenen Rollenangeben. Wir empfehlen dieVerwendung der Standard-Rollenzu Beginn. Weitere Informationenfinden Sie unter Configure IAMService Roles for Amazon EMRPermissions to AWS Servicesand Resources (p. 223).

Schritt 3: Erlauben von SSH-Verbindungen vonIhrem Client zum Cluster

Sicherheitsgruppen fungieren als virtuelle Firewalls für Ihre Instances zur Steuerung des ein- undausgehenden Datenverkehrs zu Ihrem Cluster. Bei der Erstellung Ihres ersten Clusters erstellt AmazonEMR die Amazon EMR-verwaltete Standardsicherheitsgruppe ElasticMapReduce-Master, die derMaster-Instance zugeordnet ist, sowie die Sicherheitsgruppe ElasticMapReduce-slave, die Core- undAufgabenknoten zugeordnet ist.

Warning

Die EMR-verwaltete Standardsicherheitsgruppe für die Master-Instance in öffentlichen Subnetzen,ElasticMapReduce-master, ist mit einer Regel konfiguriert, die eingehenden Datenverkehraus allen Quellen über Port 22 (IPv4 0.0.0.0/0) zulässt. Auf diese Weise werden anfängliche SSH-Client-Verbindungen mit dem Master-Knoten vereinfacht. Wir empfehlen dringend, dass Sie dieseRegel auf eingehenden Datenverkehr aus vertrauenswürdigen Quellen beschränken oder einebenutzerdefinierte Sicherheitsgruppe angeben, die den Zugriff beschränkt.

Um das Tutorial abzuschließen, ist es nicht erforderlich, Sicherheitsgruppen zu ändern, jedoch empfehlenwir Ihnen, den eingehenden Datenverkehr nicht aus allen Quellen zuzulassen. Wenn darüber hinausein anderer Benutzer die Sicherheitsgruppe "ElasticMapReduce-master" bearbeitet und diese Regelentsprechend der Empfehlung eliminiert, können Sie nicht für die nächsten Schritte mithilfe von SSHauf den Cluster zugreifen. Weitere Informationen zu Sicherheitsgruppen finden Sie unter Steuerung desNetzwerkverkehrs mit Sicherheitsgruppen (p. 316) und Sicherheitsgruppen für Ihre VPC im Amazon VPCBenutzerhandbuch.

So schränken Sie den Zugriff mithilfe von SSH für die Sicherheitsgruppe ElasticMapReduce-master ein

Sie müssen bei AWS als ein Stammbenutzer oder IAM-Prinzipal angemeldet sein, der zur Verwaltungvon Sicherheitsgruppen für die VPC berechtigt ist, in der sich der Cluster befindet. Weitere Informationenfinden Sie unter Ändern der Berechtigungen für einen IAM-Benutzer und in der Beispielrichtlinie, die dieVerwaltung von EC2-Sicherheitsgruppen erlaubt, im IAM-Benutzerhandbuch.

19

Page 27: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 3: Erlauben des SSH-Zugriffs

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Clusters (Cluster) aus.3. Wählen Sie den Name (Namen) des Clusters.4. Wählen Sie unter Security and access (Sicherheit und Zugriff) den Link Security groups for Master

(Sicherheitsgruppen für Master).

5. Wählen Sie aus der Liste ElasticMapReduce-master.6. Wählen Sie Inbound (Eingehend), Edit (Bearbeiten).7. Suchen Sie nach einer Regel für den eingehenden Datenverkehr, die einen öffentlichen Zugriff mit den

folgenden Einstellungen zulässt. Wenn eine solche Regel vorhanden ist, wählen Sie Delete (Löschen)aus, um sie zu entfernen.

• Type (Typ)

SSH• Port

22• Source (Quelle)

Benutzerdefiniert 0.0.0.0/08. Scrollen Sie auf der Seite nach unten und klicken Sie auf Add Rule (Regel hinzufügen).9. Wählen Sie für Type (Typ) SSH aus.

Dadurch wird automatisch TCP für Protocol (Protokoll) und 22 für Port Range (Portbereich)eingegeben.

10. Wählen Sie als Quelle My IP (Meine IP) aus.

Dies fügt automatisch die IP-Adresse Ihres Client-Computers als Quell-Adresse hinzu. Alternativkönnen Sie eine Reihe von Custom (Benutzerdefinierten) vertrauenswürdigen Client-IP-Adressenauswählen und auf Add rule (Regel hinzufügen) klicken, um weitere Regeln für andere Clients zuerstellen. Zahlreiche Netzwerkumgebungen weisen IP-Adressen dynamisch zu. Daher müssen

20

Page 28: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 4: Ausführen eines Hive-

Skripts zur Verarbeitung von Daten

Sie möglicherweise regelmäßig Sicherheitsgruppenregeln bearbeiten, um IP-Adressen fürvertrauenswürdige Clients zu aktualisieren.

11. Wählen Sie Save (Speichern) aus.12. Wählen Sie optional ElasticMapReduce-slave aus der Liste aus, und wiederholen Sie die

oben beschriebenen Schritte, um dem SSH-Client Zugriff auf Core- und Aufgabenknoten vonvertrauenswürdigen Clients zu gewähren.

Schritt 4: Verarbeiten der Daten durch Ausführendes Hive-Skripts als Schritt

Während Ihr Cluster ausgeführt wird, können Sie nun ein Hive-Skript übergeben. In diesem Tutorialsenden Sie das Hive-Skript als Schritt mithilfe der Amazon EMR-Konsole. Bei einem Schritt in AmazonEMR handelt es sich um eine Arbeitseinheit, die einen oder mehrere Aufträge enthält. Wie Sie in Schritt2: Starten Ihres Beispiel-Amazon EMRClusters (p. 13) erfahren haben, können Sie Schritt an einenlangfristig laufenden Cluster übergeben; dies tun wir in diesem Schritt. Sie können auch Schritt angeben,wenn Sie einen Cluster erstellen, oder Sie können eine Verbindung zum Master-Knoten erstellen, dasSkript im lokalen Dateisystem erstellen und es über die Befehlszeile ausführen, zum Beispiel hive -fHive_CloudFront.q.

Verständnis von Daten und SkriptDie Beispieldaten und Skripts, die Sie in diesem Tutorial verwenden, sind bereits an einen Amazon S3-Speicherort, auf den Sie zugreifen können, verfügbar.

Die Beispieldaten bestehen aus einer Reihe von Protokolldateien für den Amazon CloudFront-Zugriff. Weitere Informationen zum Format der CloudFront- und Protokolldateien finden Sieunter Entwicklerhandbuch für Amazon CloudFront. Die Daten werden Amazon S3 unters3://region.elasticmapreduce.samples/cloudfront/data gespeichert, wobei region für IhreRegion steht, z. B. us-west-2. Wenn Sie beim absenden des Schrittes den Speicherort eingeben, lassenSie den cloudfront/data-Teil weg, da das Skript diesen automatisch hinzufügt.

Jeder Eintrag in den CloudFront-Protokolldateien bietet Details über eine einzelne Benutzeranforderung imfolgenden Format:

2014-07-05 20:00:00 LHR3 4260 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-1.jpeg 200 - Mozilla/5.0%20(MacOS;%20U;%20Windows%20NT%205.1;%20en-US;%20rv:1.9.0.9)%20Gecko/2009040821%20IE/3.0.9

Das Beispielskript berechnet die Gesamtanzahl der Anforderungen pro Betriebssystem in einemangegebenen Zeitraum. Das Skript verwendet HiveQL. Dabei handelt es sich um eine SQL-ähnliche Skriptsprache für Data Warehousing und Analysen. Das Skript wird in Amazon S3 unters3://region.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.qgespeichert, wobei region Ihre Region ist.

Das Hive-Beispielskript führt die folgenden Schritte aus:

• Es erstellt ein Hive-Tabellenschema mit dem Namen cloudfront_logs. Weitere Informationen zuHive-Tabellen finden Sie im Hive-Tutorial im Hive-Wiki.

• Verwendet den integrierte Serializer/Deserializer für reguläre Ausdrücke (RegEx SerDe) zum Analysierender Eingabedaten und Anwenden des Tabellenschemas. Weitere Informationen finden Sie unter SerDeim Hive-Wiki.

• Führt eine HiveQL-Abfrage für die cloudfront_logs-Tabelle durch und schreibt dieAbfrageergebnisse an den Amazon S3-Ausgabespeicherort, den Sie angeben.

21

Page 29: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSenden des Hive-Skripts als Schritt

Der Inhalt des Hive_CloudFront.q-Skripts wird unten angezeigt. Die Variablen ${INPUT} und${OUTPUT} werden durch die Amazon S3-Speicherorte ersetzt, die Sie angeben, wenn Sie das Skript alsSchritt senden. Wenn Sie in Amazon S3 Daten referenzieren, wie es dieses Skript tut, verwendet AmazonEMR das EMR File System (EMRFS) zum Lesen der Eingabe- und zum Schreiben der Ausgabedaten.

-- Summary: This sample shows you how to analyze CloudFront logs stored in S3 using Hive

-- Create table using sample data in S3. Note: you can replace this S3 path with your own.CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( DateObject Date, LocalTime STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, OS String, Browser String, BrowserVersion String)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$") LOCATION '${INPUT}/cloudfront/data';

-- Total requests per operating system for a given time frameINSERT OVERWRITE DIRECTORY '${OUTPUT}/os_requests/' SELECT os, COUNT(*) count FROM cloudfront_logs WHERE dateobject BETWEEN '2014-07-05' AND '2014-08-05' GROUP BY os;

Senden des Hive-Skripts als SchrittVerwenden Sie die Option Add Step (Schritt hinzufügen), um das Hive-Skript über die Konsole anden Cluster zu senden. Die Hive-Skript- und Beispieldaten wurden zu Amazon S3 hochgeladen, undSie eben den Ausgabespeicherort als den Ordner an, den Sie vorher in Erstellen eines Amazon S3-Buckets (p. 13) erstellt haben.

So führen Sie das Hive-Skript aus, indem Sie es als Schritt senden:

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie unter Cluster List (Cluster-Liste) den Namen Ihres Clusters aus. Stellen Sie sicher, dass

sich der Cluster im Status Waiting (Warten) befindet.3. Wählen Sie Steps (Schritte) und dann Add step (Schritt hinzufügen).4. Konfigurieren Sie den Schritt anhand der folgenden Richtlinien:

• Wählen Sie unter Step type (Schritt-Typ) die Option Hive program (Hive-Programm) aus.• Unter Name können Sie die Standardeinstellung belassen oder einen neuen Namen eingeben.

Wenn Sie viele Schritte in einem Cluster haben, können Sie diese anhand der Namen nachverfolgen• Geben Sie unter Script S3 location (Skript-S3-Speicherort)s3://region.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.qein. Ersetzen Sie region durch Ihre Region-ID. Zum Beispiel s3://us-west-2.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.q, wenn Siein der Region Oregon arbeiten. Eine Liste der Regionen und der entsprechenden Region-IDs findenSie unter AWS-Regionen und Endpunkte für Amazon EMR in der AWS General Reference.

22

Page 30: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen der Ergebnisse

• Geben Sie unter Input S3 location (Eingabe-S3-Speicherort)s3://region.elasticmapreduce.samples ein.

Ersetzen Sie region durch Ihre Region-ID.• Geben Sie für Output S3 location (Ausgabe-S3-Speicherort) den output-Bucket ein, den Sie in

Erstellen eines Amazon S3-Buckets (p. 13) erstellt haben, oder navigieren Sie zu dem Bucket.• Übernehmen Sie unter Action on failure (Aktion bei Fehler) die Standardeinstellung Continue

(Fortfahren). Dies gibt an, dass, wenn der Schritt fehlschlägt, der Cluster weiter ausgeführt wirdund die nachfolgenden Schritte verarbeitet. Die Option Cancel and wait (Abbrechen und warten)gibt an, dass ein fehlgeschlagener Schritt abgebrochen werden soll, dass der Cluster jedoch weiterausgeführt werden soll. Die Option Terminate cluster (Cluster beenden) gibt an, dass der Clusterbeendet werden soll, wenn der Schritt fehlschlägt.

5. Wählen Sie Add aus. Der Schritt wird in der Konsole mit dem Status Pending (Schwebend) angezeigt.6. Bei Ausführung des Schritts ändert sich dessen Status von Pending zu Running und Completed.

Wählen Sie zur Aktualisierung es Status die entsprechende Schaltfläche rechts vom Filter. DieAusführung des Skripts dauert etwa eine Minute.

Anzeigen der ErgebnisseNachdem der Schritt abgeschlossen ist, wird die Ausgabe der Hive-Abfrage im Amazon S3-Ausgabeordnergespeichert, den Sie beim Senden des Schritts angegeben haben, als Textdateigespeichert.

So zeigen Sie die Ausgabe des Hive-Skripts an

1. Öffnen Sie die Amazon S3-Konsole unter der Adresse https://console.aws.amazon.com/s3/.2. Wählen Sie den Bucket name (Bucket-Namen) und dann den Ordner, den Sie zuvor eingerichtet

haben. Beispiel: mybucket und dann MyHiveQueryResults.3. Die Abfrage schreibt die Ergebnisse in einen Ordner mit dem Namen os_requests in Ihrem

Ausgabeordner. Wählen Sie diesen Ordner aus. Es sollte eine einzelne Datei mit dem Namen000000_0 in dem Ordner vorhanden sein. Hierbei handelt es sich um eine Textdatei, die Ihre Hive-Abfrageergebnisse enthält.

4. Wählen Sie die Datei aus, und klicken Sie dann auf Download, um sie lokal zu speichern.5. Öffnen Sie die Datei in Ihrem bevorzugten Texteditor. Die Ausgabedatei zeigt die Anzahl der

Zugriffsanforderungen nach Betriebssystem. Das folgende Beispiel verdeutlicht die Ausgabe inWordPad:

23

Page 31: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 5: Bereinigen von Ressourcen

Schritt 5: Beenden des Clusters und Löschen desBuckets

Nachdem Sie das Tutorial abgeschlossen haben, können Sie Ihren Cluster beenden und Ihren Amazon S3-Bucket löschen, um zusätzliche Gebühren zu vermeiden.

Durch das Beenden Ihres Clusters werden auch die zugehörigen Amazon EC2-Instances beendet, undes laufen keine weiteren Amazon EMR- Gebühren auf. Amazon EMR bewahrt Metadateninformationenüber abgeschlossene Cluster zu Ihrer Referenz kostenlos zwei Monate lang auf. Die Konsole bietet keineMöglichkeit zum Löschen von beendeten Clustern, so dass diese nicht in der Konsole angezeigt werdenkönnen. Beendete Cluster werden entfernt, wenn die Metadaten aus dem Cluster entfernt werden.

So beenden Sie den Cluster

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Cluster, wählen Sie Ihren Cluster, und klicken Sie dann auf Terminate (Beenden).

Cluster werden oft mit den Beendigungsschutz erstellt, um ein versehentliches Herunterfahren zuverhindern. Wenn Sie das Tutorial genau befolgt haben, sollte der Beendigungsschutz deaktiviert sein.Wenn der Beendigungsschutzes aktiviert ist, werden Sie aufgefordert, die Einstellung zu ändern; diesist eine Vorsichtsmaßnahme, bevor der Cluster beendet wird. Wählen Sie Change (Ändern), Off (Aus).

So löschen Sie den Ausgabe-Bucket:

1. Öffnen Sie die Amazon S3-Konsole unter der Adresse https://console.aws.amazon.com/s3/.2. Wählen Sie den Bucket aus der Liste aus, so dass die gesamte Bucket-Zeile ausgewählt ist.3. Wählen Sie „Delete bucket (Bucket löschen)“, den Namen des Buckets und dann Confirm (Bestätigen).

24

Page 32: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 5: Bereinigen von Ressourcen

Weitere Informationen zum Löschen von Ordnern und Buckets finden Sie unter Löschen eines S3-Buckets im Amazon Simple Storage Service Handbuch Erste Schritte.

25

Page 33: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜberlegungen

Verwenden von Amazon EMRNotebooks

Sie können Amazon EMR-Notebooks zusammen mit Amazon EMR-Clustern verwenden, auf denenApache Spark ausgeführt wird, um Jupyter-Notebook- und JupyterLab-Schnittstellen innerhalb der AmazonEMR-Konsole zu erstellen und zu öffnen. Ein EMR-Notebook ist ein „serverloses“ Notebook, mit demSie Abfragen und Code ausführen können. Im Gegensatz zu einem herkömmlichen Notebook werdendie Inhalte eines EMR-Notebook – Gleichungen, Abfragen, Modelle, Code und beschreibender Text inNotebook-Zellen – in einem Client ausgeführt. Die Befehle werden auf einem Kernel in dem EMR-Clusterausgeführt. Notebook-Inhalte werden auch getrennt von den Cluster-Daten in Amazon S3 gespeichert, umeine sichere Speicherung und flexible Wiederverwendung zu gewährleisten.

Sie können einen Cluster starten, ein EMR-Notebook zur Analyse anfügen und dann den Cluster beenden.Sie können auch ein Notebook schließen, das an einen ausgeführten Cluster angefügt ist, und zu einemanderen Cluster wechseln. Mehrere Benutzer können gleichzeitig Notebooks an denselben Cluster anfügenund in Amazon S3 Notebook-Dateien miteinander teilen. Diese Funktionen ermöglichen Ihnen die On-Demand-Ausführung von Clustern, um Kosten zu sparen und den Zeitaufwand für die Neukonfiguration vonNotebooks für verschiedene Cluster und Datensätze zu reduzieren.

Sie können einen EMR-Notebook auch programmgesteuert mit der EMR-API ausführen, ohne dassSie mit der EMR-Konsole interagieren müssen ("Headless Execution"). Sie müssen eine Zelle in denEMR-Notebook mit einem Parameter-Tag einschließen. Diese Zelle ermöglicht einem Skript, neueEingabewerte an das Notebook zu übergeben. Parameterisierte Notebooks können mit verschiedenenEingabewertsätzen wiederverwendet werden. Es ist nicht erforderlich, Kopien desselben Notebooks zuerstellen, um neue Eingabewerte zu bearbeiten und auszuführen. EMR erstellt und speichert das Ausgabe-Notebook in S3 für jede Ausführung des parametrisierten Notebooks. -API-Codebeispiele finden Sie unterEMR-Notebook.Beispielbefehle zur programmgesteuerten Ausführung vonEMR-Notebooks (p. 34)

Important

EMR-Notebooks wird mit Clustern unterstützt, die mit Amazon EMR 5.18.0 oder höher erstelltwurden. Es wird dringend empfohlen, EMR-Notebooks mit Clustern zu verwenden, die mitder neuesten Version von Amazon EMR – insbesondere Amazon EMR Version 5.30.0 oderhöher erstellt wurden, außer Version 6.0.0. Mit Amazon EMR 5.30.0 wurde eine Änderungvorgenommen, sodass Jupyter-Kernel auf dem angefügten Cluster und nicht auf einer Jupyter-Instance ausgeführt werden. Diese Änderung trägt dazu bei, einerseits die Leistung undandererseits Ihre Möglichkeiten zur Anpassung von Kerneln und Bibliotheken zu verbessern.Weitere Informationen finden Sie im Unterschiede in den Funktionalitäten nach Cluster-Release-Version (p. 27).

Es fallen Gebühren für die Amazon S3-Speicherung und für Amazon EMR-Cluster an.

Überlegungen zur Verwendung von EMR-Notebooks

Berücksichtigen Sie beim Erstellen von Clustern und Entwickeln von Lösungen mit EMR-Notebook diefolgenden Voraussetzungen.

26

Page 34: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCluster-Voraussetzungen

Cluster-Voraussetzungen• Aktivieren von Amazon EMR Block Public Access – Eingehender Zugriff auf einen Cluster ermöglicht

Cluster-Benutzern die Ausführung von Notebook-Kerneln. Stellen Sie sicher, dass nur autorisierteBenutzer auf den Cluster zugreifen können. Es wird dringend empfohlen, den öffentlichen Zugriff zublockieren und eingehenden SSH-Datenverkehr auf vertrauenswürdige Quellen zu beschränken. WeitereInformationen finden Sie unter Verwenden von Amazon EMR Block Public Access (p. 328) undSteuerung des Netzwerkverkehrs mit Sicherheitsgruppen (p. 316).

• Use a Compatible Cluster (Kompatiblen Cluster verwenden) – Ein Cluster, der an ein Notebook angefügtist, muss die folgenden Voraussetzungen erfüllen:• Es werden nur Cluster, die mit Amazon EMR erstellt wurden, unterstützt. Sie können innerhalb von

Amazon EMR unabhängig einen Cluster erstellen und dann ein EMR-Notebook anfügen. Sie könneneinen kompatiblen Cluster auch erstellen, wenn Sie ein EMR-Notebook erstellen.

• es werden nur Cluster, die mit Amazon EMR Version 5.18.0 oder höher erstellt wurden,unterstützt. Siehe the section called “Unterschiede in den Funktionalitäten nach Cluster-Release-Version” (p. 27).

• Cluster, die mit Amazon EC2-Instances mit AMD EPYC-Prozessoren erstellt wurden, z. B. dieInstance-Typen m5a.* und r5a.*, werden nicht unterstützt.

• EMR-Notebooks funktioniert nur mit Clustern, die mit VisibleToAllUsers auf true festgelegtwurden. VisibleToAllUsers ist standardmäßig true. Weitere Informationen finden Sie im DieEinstellung „EMR-Cluster sichtbar für alle Benutzer“ verstehen (p. 222).

• Der Cluster muss innerhalb einer EC2-VPC gestartet werden. Öffentliche und private Subnetze werdenunterstützt. Die EC2-Classic-Plattform wird nicht unterstützt.

• Hadoop, Spark und Livy müssen auf dem Cluster installiert sein. Andere Anwendungen könneninstalliert werden, aber EMR-Notebooks unterstützt derzeit nur Spark-Cluster.

• Cluster mit Kerberos-Authentifizierung werden nicht unterstützt.• Mit AWS Lake Formation integrierte Cluster unterstützen nur die Installation von Notebook-

Bibliotheken. Die Installation von Kerneln und Bibliotheken auf dem Cluster wird nicht unterstützt.• Cluster mit mehreren Master-Knoten werden nicht unterstützt.

Unterschiede in den Funktionalitäten nach Cluster-Release-VersionEs wird dringend empfohlen, EMR-Notebooks mit Clustern zu verwenden, die mit Amazon EMR Version5.30.0 oder höher erstellt wurden, mit Ausnahme von 6.0.0. Bei diesen Versions-Clustern führt EMR-Notebooks Kernel auf den angefügten Amazon EMR-Clustern aus. Kernel und Bibliotheken können direktauf dem Cluster-Master-Knoten installiert werden. Die Verwendung von EMR-Notebooks mit diesenCluster-Versionen hat folgende Vorteile:

• Verbesserte Leistung – Notebook-Kernel werden auf Clustern mit von Ihnen ausgewählten EC2-Instance-Typen ausgeführt. Frühere Versionen führen Kernel auf einer spezialisierten Instance aus, die nicht inder Größe geändert, auf die nicht zugegriffen und die nicht angepasst werden kann.

• Möglichkeit zum Hinzufügen und Anpassen von Kernels – Sie können eine Verbindung mit dem Clusterherstellen, um Kernel-Pakete mit conda und pip zu installieren. Darüber hinaus wird die pip-Installationmithilfe von Terminalbefehlen innerhalb von Notebook-Zellen unterstützt. In früheren Versionen warennur vorinstallierte Kernel verfügbar (Python, PySpark, Spark und SparkR). Weitere Informationen findenSie im Installieren von Kernels und Python-Bibliotheken auf einem Cluster-Master-Knoten (p. 44).

• Möglichkeit zur Installation von Python-Bibliotheken – Sie können Python-Bibliotheken auf dem Cluster-Master-Knoten installieren (p. 44) mithilfe von conda und pip. Wir empfehlen die Verwendung vonconda. Bei früheren Versionen werden nur dedizierte Notebook-Bibliotheken (p. 44) für PySparkunterstützt.

27

Page 35: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideLimits für gleichzeitig angefügte Notebooks

Unterstützte EMR-Notebooks-Funktionen nach Cluster-Version

Cluster-Version Dedizierte Notebook-Bibliotheken für PySpark

Kernel-Installation aufdem Cluster

Installation der Python-Bibliothek auf Master-Knoten

Früher als 5.18.0 EMR-Notebooks nicht unterstützt

5.18.0 – 5.25.0 Nein Nein Nein

5.26.0 – 5.29.0 Ja (p. 44) Nein Nein

5.30.0 Ja (p. 44) Ja (p. 44) Ja (p. 44)

6.0.0 Nein Nein Nein

Limits für gleichzeitig angefügte NotebooksWenn Sie einen Cluster erstellen, der Notebooks unterstützt, beachten Sie den EC2-Instance-Typ desCluster-Master-Knotens. Die Anzahl der Notebooks, die gleichzeitig Code und Abfragen auf dem Clustergleichzeitig ausführen können, wird durch Speicherbeschränkungen dieser EC2-Instance bestimmt.

EC2-Instance-Typ des Master-Knotens Anzahl der Notebooks

*.medium 2

*.large 4

*.xlarge 8

*.2xlarge 16

*.4xlarge 24

*.8xlarge 24

*.16xlarge 24

Jupyter Notebook- und Python-VersionenEMR-Notebooks führt Jupyter Notebook Version 6.0.2 und Python 3.6.5 aus, unabhängig von der AmazonEMR-Version des angefügten Clusters.

Wenn Sie einen verschlüsselten Speicherort in Amazon S3 zum Speichern von Notebook-Dateienangeben, müssen Sie die Service Role for EMR-Notebooks (p. 235) als Schlüsselbenutzer einrichten. DieStandard-Servicerolle ist EMR_Notebooks_DefaultRole. Wenn Sie einen AWS KMS-Schlüssel für dieVerschlüsselung verwenden, finden Sie weitere Informationen unter Verwenden von Schlüsselrichtlinienin AWS KMS im AWS Key Management Service Developer Guide und im Support-Artikel zum Hinzufügenvon Schlüsselbenutzern.

Erstellen eines NotebookSie erstellen ein EMR-Notebook mithilfe der Amazon EMR-Konsole. Das Erstellen von Notebooks mithilfeder AWS CLI oder der Amazon EMR-API wird nicht unterstützt.

28

Page 36: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen eines Notebook

So erstellen Sie einen EMR-Notebook

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/.2. Wählen Sie Notebooks, Create notebook (Notebook erstellen).3. Geben Sie einen Notebook name (Notebook-Namen) und optional eine Notebook description

(Notebook-Beschreibung) ein.4. Wenn Sie einen aktiven Cluster haben, auf dem Hadoop, Spark und Livy ausgeführt werden und

an den Sie das Notebook anfügen möchten, behalten Sie die Standardeinstellung Choose anexisting cluster (Vorhandenen Cluster auswählen) bei und wählen Choose (Wählen) aus. WählenSie anschließend einen Cluster aus der Liste und Choose cluster (Cluster wählen) aus. Es werdennur Cluster aufgeführt, die diese Voraussetzungen erfüllen. Weitere Informationen finden Sie imÜberlegungen zur Verwendung von EMR-Notebooks (p. 26).

—–oder–—

Wählen Sie Create a cluster (Cluster erstellen), geben Sie einen Clusternamen ein und wählen SieOptionen gemäß den folgenden Richtlinien aus. Der Cluster wird unter Verwendung von On-Demand-Instances in der Standard-VPC für das Konto erstellt.

Einstellung Description (Beschreibung)

Clustername Der Anzeigename, der zum Identifizieren desClusters verwendet wird.

Veröffentlichung Kann nicht geändert werden. Standardmäßigwird die neueste Amazon EMR-Version (5.31.0)verwendet.

Anwendungen Kann nicht geändert werden. Listet dieAnwendungen auf, die auf dem Cluster installiertsind.

Instanz Geben Sie die Anzahl der Instances ein undwählen Sie den EC2-Instance-Typ aus. Genaueine Instance wird als Master-Knoten verwendet.Der Rest wird für Core-Knoten verwendet.Der Instance-Typ bestimmt die Anzahl derNotebooks, die gleichzeitig an den Clusterangefügt sein können. Weitere Informationenfinden Sie im Limits für gleichzeitig angefügteNotebooks (p. 28).

EMR role (EMR-Rolle) Behalten Sie die Standardeinstellung bei,oder wählen Sie den Link aus, um einebenutzerdefinierte Servicerolle für AmazonEMR anzugeben. Weitere Informationen findenSie im Service Role for Amazon EMR (EMRRole) (p. 228).

EC2 instance profile (EC2-Instance-Profile) Behalten Sie die Standardeinstellung bei,oder wählen Sie den Link aus, um einebenutzerdefinierte Servicerolle für EC2-Instancesanzugeben. Weitere Informationen finden Sieim Service Role for Cluster EC2 Instances (EC2Instance Profile) (p. 229).

29

Page 37: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Notebooks

Einstellung Description (Beschreibung)

EC2-Schlüsselpaar Wählen Sie ein EC2-Schlüsselpaar, um eineVerbindung zu Cluster-Instances herstellenzu können. Weitere Informationen finden Sieim Verbinden mit dem Master-Knoten überSSH (p. 385).

5. Wählen Sie unter Security groups (Sicherheitsgruppen) die Option Use default security groups(Standardsicherheitsgruppen verwenden). Alternativ können Sie Choose security groups(Sicherheitsgruppen auswählen) wählen und dann benutzerdefinierte Sicherheitsgruppen auswählen,die in der VPC des Clusters verfügbar sind. Sie wählen eine Sicherheitsgruppe für die Master-Instanceund eine andere für den Notebook-Service aus. Weitere Informationen finden Sie im the section called“Sicherheitsgruppen für EMR-Notebooks” (p. 326).

6. Behalten Sie für AWS Service Role (AWS-Servicerolle) die Standardeinstellung bei oder wählen Sieeine benutzerdefinierte Rolle aus der Liste aus. Die Client-Instance für das Notebook verwendet dieseRolle. Weitere Informationen finden Sie im Service Role for EMR-Notebooks (p. 235).

7. Wählen Sie unter Notebook location (Notebook-Speicherort) den Speicherort für die Notebook-Dateiin Amazon S3 aus oder geben Sie einen eigenen Speicherort an. Wenn der Bucket und Ordner nichtvorhanden sind, werden sie von Amazon EMR erstellt.

Amazon EMR erstellt einen Ordner mit der Notebook-ID als Ordnernamen und speichert dasNotebook in einer Datei mit dem Namen NotebookName.ipynb. Wenn Sie beispielsweise denAmazon S3-Speicherort s3://MyBucket/MyNotebooks für ein Notebook mit dem NamenMyFirstEMRManagedNotebook angeben, wird die Notebook-Datei in s3://MyBucket/MyNotebooks/NotebookID/MyFirstEMRManagedNotebook.ipynb gespeichert.

Wenn Sie einen verschlüsselten Speicherort in Amazon S3 angeben, müssen Sie Service Rolefor EMR-Notebooks (p. 235) als Schlüsselbenutzer einrichten. Die Standard-Servicerolle istEMR_Notebooks_DefaultRole. Wenn Sie einen AWS KMS-Schlüssel für die Verschlüsselungverwenden, finden Sie weitere Informationen unter Verwenden von Schlüsselrichtlinien in AWS KMSim AWS Key Management Service Developer Guide und im Support-Artikel zum Hinzufügen vonSchlüsselbenutzern.

8. (Optional) Wenn Sie ein Git-basiertes Repository zu Amazon EMR hinzugefügt haben, das Siemit diesem Notebook verknüpfen möchten, wählen Sie Git repository (Git-Repository), klicken Sieauf Choose repository (Repository auswählen) und wählen Sie dann ein Repository aus der Listeaus. Weitere Informationen finden Sie im Verknüpfen von Git-basierten Repositorys mit EMR-Notebooks (p. 45).

9. Wählen Sie optional Tags und fügen Sie dann alle zusätzlichen Schlüssel-Wert-Tags für das Notebookhinzu.

Important

Ein Standard-Tag mit der auf creatorUserID festgelegten Key (Schlüssel)-Zeichenfolgeund dem auf Ihre IAM-Benutzer-ID festgelegten Wert wird für Zugriffszwecke angewendet.Wir empfehlen, dieses Tag nicht zu ändern oder zu entfernen, da es für die Zugriffssteuerungverwendet werden kann. Weitere Informationen finden Sie im Verwenden Sie Cluster- undNotebook-Tags mit IAM-Richtlinien für die Zugriffskontrolle (p. 222).

10. Klicken Sie auf Create Notebook (Notebook erstellen).

Arbeiten mit NotebooksNach dem Erstellen eines EMR-Notebook dauert es einige Zeit, bis das Notebook gestartet wird. DerStatus in der Liste Notebooks zeigt Starting (Wird gestartet) an. Sie können ein Notebook öffnen, wenn der

30

Page 38: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideGrundlegendes zum Notebook-Status

Status Ready (Bereit) lautet. Es kann etwas länger dauern, bis ein Notebook den Status Ready (Bereit)anzeigt, wenn Sie einen Cluster mit diesem zusammen erstellt haben.

Tip

Aktualisieren Sie Ihren Browser oder wählen Sie das Aktualisierungssymbol über der Liste„Notebooks“, um den Notebookstatus zu aktualisieren.

Grundlegendes zum Notebook-StatusEin EMR-Notebook kann unter Status in der Liste Notebooks die folgenden Optionen anzeigen.

Status Bedeutung

Bereit Sie können das Notebook mithilfe des Notebook-Editors öffnen. Wenn ein Notebook den StatusReady (Bereit) aufweist, können Sie es anhaltenoder löschen. Um Cluster zu wechseln, müssenSie das Notebook zuerst anhalten. Wenn einNotebook mit dem Status Ready (Bereit) für einenlangen Zeitraum inaktiv ist, wird es automatischangehalten.

Starting Das Notebook wird erstellt und an den Clusterangehängt. Während ein Notebook gestartet wird,können Sie den Notebook-Editor nicht öffnen,anhalten oder löschen und Cluster nicht wechseln.

Ausstehend Das Notebook wurde erstellt und wartetdarauf, dass die Integration mit demCluster abgeschlossen ist. Der Cluster stelltmöglicherweise weiterhin Ressourcen bereit oderreagiert auf andere Anfragen. Sie können denNotebook-Editor mit dem Notebook im lokalenModus öffnen. Code, der von Cluster-Prozessenabhängt, wird nicht ausgeführt und schlägt fehl.

Stopping Das Notebook wird heruntergefahren oder derCluster, an den das Notebook angehängt ist, wirdbeendet. Während ein Notebook beendet wird,können Sie den Notebook-Editor nicht öffnen,anhalten oder löschen und Cluster nicht wechseln.

Angehaltene Das Notebook wurde heruntergefahren. Sie könnendas Notebook auf demselben Cluster starten,solange der Cluster noch ausgeführt wird. Siekönnen Cluster wechseln und den Cluster löschen.

Deleting (Löschvorgang läuft) Der Cluster wird aus der Liste der verfügbarenCluster entfernt. Die Notebook-DateiNotebookName.ipynb verbleibt in AmazonS3 und es fallen weiterhin Gebühren für dieSpeicherung an.

31

Page 39: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit dem Notebook-Editor

Arbeiten mit dem Notebook-EditorEin Vorteil der Verwendung eines EMR-Notebook besteht darin, dass Sie das Notebook in Jupyter oderJupyterLab direkt über die Konsole starten können.

Bei EMR-Notebooks ist der Notebook-Editor, auf den Sie über die Amazon EMR-Konsole zugreifen, dervertraute Open-Source-Jupyter-Notebook-Editor oder JupyterLab. Da der Notebook-Editor innerhalb derAmazon EMR-Konsole gestartet wird, ist es effizienter, den Zugriff als bei einem Notebook zu konfigurieren,das auf einem Amazon EMR-Cluster gehostet wird. Sie müssen den Client eines Benutzers nicht sokonfigurieren, dass er über Webzugriff über SSH, Sicherheitsgruppenregeln und Proxy-Konfigurationenverfügt. Wenn ein Benutzer über ausreichende Berechtigungen verfügt, kann er den Notebook-Editoreinfach innerhalb der Amazon EMR-Konsole öffnen.

Ein EMR-Notebook kann immer nur von einem Benutzer aus Amazon EMR geöffnet sein. Wenn einanderer Benutzer versucht, ein bereits geöffnetes EMR-Notebook zu öffnen, tritt ein Fehler auf.

Important

Amazon EMR erstellt eine eindeutige vorsignierte URL für jede Notebook-Editorsitzung, die nurfür kurze Zeit gültig ist. Wir empfehlen, dass Sie die Notebook-Editor-URL nicht freigeben. Diesstellt ein Sicherheitsrisiko dar, da Empfänger der URL Ihre Berechtigungen zur Bearbeitung desNotebooks übernehmen und Notebook-Code für die Lebensdauer der URL ausführen. Wennandere Benutzer Zugriff auf ein Notebook benötigen, legen Sie über BerechtigungsrichtlinienBerechtigungen für deren IAM-Benutzer fest und stellen Sie sicher, dass die Servicerolle für EMR-Notebooks Zugriff auf den Amazon S3-Speicherort hat. Weitere Informationen finden Sie unter thesection called “Sicherheit” (p. 43) und Service Role for EMR-Notebooks (p. 235).

So öffnen Sie den Notebook-Editor für ein EMR-Notebook

1. Wählen Sie einen Notebook mit dem Status Ready (Bereit) oder Pending (Ausstehend) in der ListeNotebooks aus.

2. Wählen Sie Open in JupyterLab oder Open in Jupyter aus.

Es wird eine neue Browser-Registerkarte für den JupyterLab- oder Jupyter-Notebook-Editor geöffnet.3. Wählen Sie im Menü Kernel die Option Change Kernel (Kernel ändern) und wählen Sie dann den

Kernel für Ihre Programmiersprache aus.

Sie können jetzt Code innerhalb des Notebook-Editors schreiben und ausführen.

Speichern der Inhalte eines NotebooksWenn Sie im Notebook-Editor arbeiten, werden die Inhalte von Notebook-Zellen und Ausgabenautomatisch regelmäßig in der Notebook-Datei in Amazon S3 gespeichert. Ein Notebook ohne Änderungenseit der letzten Bearbeitung von Zellen zeigt den Eintrag (autosaved) (automatisch gespeichert) neben demNotebook-Namen im Editor an. Wenn Änderungen noch nicht gespeichert wurden, wird unsaved changes(nicht gespeicherte Änderungen) angezeigt.

Sie können ein Notebook manuell speichern. Wählen Sie im Menü File (Datei) die Option Save andCheckpoint (Speichern und Prüfpunkt) aus oder drücken Sie STRG+S. Dadurch wird eine Dateimit dem Namen NotebookName.ipynb in einem Checkpoints-Ordner innerhalb des Notebook-Ordners in Amazon S3 erstellt. Beispiel: s3://MyBucket/MyNotebookFolder/NotebookID/checkpoints/NotebookName.ipynb. Nur die letzte Prüfpunktdatei wird an diesem Speicherortgespeichert.

32

Page 40: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideWechseln von Clustern

Wechseln von ClusternSie können den Cluster wechseln, an den ein EMR-Notebook angehängt ist, ohne die Inhalte desNotebooks selbst zu ändern. Sie können Cluster nur für Notebooks mit dem Status Stopped (Angehalten)wechseln.

So wechseln Sie den Cluster eines EMR-Notebook

1. Wenn das Notebook, das Sie wechseln möchten, ausgeführt wird, wählen Sie dieses in der ListeNotebooks und anschließend Stop (Anhalten) aus.

2. Wenn das Notebook den Status Stopped (Angehalten) aufweist, wählen Sie das Notebook in der ListeNotebooks und anschließend View details (Details anzeigen) aus.

3. Wählen Sie Change cluster (Cluster wechseln).4. Wenn Sie einen aktiven Cluster haben, auf dem Hadoop, Spark und Livy ausgeführt werden und

an den Sie das Notebook anfügen möchten, behalten Sie die Standardeinstellung bei und wählenSie einen Cluster aus der Liste aus. Es werden nur Cluster aufgeführt, die diesen Anforderungenentsprechen.

—–oder–

Wählen Sie Create a cluster (Cluster erstellen) und anschließend die Clusteroptionen. WeitereInformationen finden Sie im Cluster-Voraussetzungen (p. 27).

5. Wählen Sie eine Option für Security groups (Sicherheitsgruppen) und anschließend Change clusterand start notebook (Cluster wechseln und Notebook starten).

Löschen von Notebooks und Notebook-DateienWenn Sie ein EMR-Notebook mithilfe der Amazon EMR-Konsole löschen, löschen Sie das Notebook ausder Liste der verfügbaren Notebooks. Notebook-Dateien verbleiben jedoch in Amazon S3 und es fallenweiterhin Speicherkosten an.

So löschen Sie ein Notizbuch und entfernen die zugehörigen Dateien

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/.2. Wählen Sie Notebooks, wählen Sie Ihr Notebook aus der Liste und anschließend View details (Details

anzeigen) aus.3. Wählen Sie das Ordnersymbol neben Notebook location (Notebook-Speicherort) und kopieren Sie die

URL mit dem Muster s3://MyNotebookLocationPath/NotebookID/.4. Wählen Sie Delete.

Das Notebook wird aus der Liste entfernt und die Notebook-Details können nicht mehr angezeigtwerden.

5. Befolgen Sie die Anweisungen für Wie kann ich Ordner aus einem S3-Bucket löschen? imKonsolenbenutzerhandbuch für Amazon Simple Storage Service. Navigieren Sie zum Bucket undOrdner aus Schritt 3.

—–oder–

Wenn Sie die AWS CLI installiert haben, öffnen Sie eine Eingabeaufforderung und geben Sie denBefehl am Ende dieses Absatzes ein. Ersetzen Sie den Amazon S3-Speicherort mit dem obenkopierten Speicherort. Stellen Sie sicher, dass die AWS CLI mit den Zugriffsschlüsseln einesBenutzers mit Berechtigungen zum Löschen des Amazon S3-Speicherorts konfiguriert ist. WeitereInformationen finden Sie unter AWS CLI-Konfigurierung im Benutzerhandbuch für AWS CommandLine Interface.

33

Page 41: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideFreigeben von Notebook-Dateien

aws s3 rm s3://MyNotebookLocationPath/NotebookID

Freigeben von Notebook-DateienJeder EMR-Notebook wird in Amazon S3 als Datei mit dem Namen NotebookName.ipynb gespeichert.Solange eine Notebook-Datei mit derselben Version von Jupyter Notebook kompatibel ist, auf der EMR-Notebooks basiert, können Sie das Notebook als EMR-Notebook öffnen.

Die einfachste Möglichkeit, eine Notebook-Datei von einem anderen Benutzer zu öffnen, besteht darin,die *.ipynb-Datei von einem anderen Benutzer in Ihrem lokalen Dateisystem zu speichern und dann dieUpload-Funktion in den Jupyter- und JupyterLab-Editoren zu verwenden.

Mithilfe dieses Verfahrens können Sie von anderen Personen freigegebene EMR-Notebooks und in derJupyter-Community freigegebene Notebooks verwenden oder aus der Konsole gelöschte Notebookswiederherstellen, sofern die Notebook-Datei noch vorhanden ist.

So verwenden Sie eine andere Notebook-Datei als Basis für ein EMR-Notebook

1. Bevor Sie fortfahren, schließen Sie den Notebook-Editor für alle Notebooks, mit denen Sie arbeitenwerden, und halten Sie dann das Notebook an, wenn es sich um ein EMR-Notebook handelt.

2. Erstellen Sie ein EMR-Notebook und geben Sie einen Namen dafür ein. Der Name, den Sie für dasNotebook eingeben, wird der Name der Datei sein, die Sie ersetzen müssen. Der neue Dateinamemuss genau mit diesem Dateinamen übereinstimmen.

3. Notieren Sie sich den Speicherort in Amazon S3, den Sie für das Notebook wählen. Die Datei, die Sieersetzen, befindet sich in einem Ordner mit einem Pfad und Dateinamen wie dem folgenden Muster:s3://MyNotebookLocation/NotebookID/MyNotebookName.ipynb:

4. Halten Sie das Notebook an.5. Ersetzen Sie die alte Notebook-Datei im Amazon S3 -Speicherort mit der neuen Datei, die denselben

Namen trägt.

Der folgende AWS CLI-Befehl für Amazon S3 ersetzt eine Datei, die auf einem lokalen Computermit dem Namen SharedNotebook.ipynb für eine EMR-Notebook gespeichert ist, durch denNamen MyNotebook, eine ID von e-12A3BCDEFJHIJKLMNO45PQRST und erstellt mit MyBucket/MyNotebooksFolder, die in Amazon S3 angegeben ist. Weitere Informationen zur Verwendung derAmazon S3-Konsole zum Kopieren und Ersetzen von Dateien finden Sie unter Objekte hochladen,herunterladen und verwalten im Konsolenbenutzerhandbuch für Amazon Simple Storage Service.

aws s3 cp SharedNotebook.ipynb s3://MyBucket/MyNotebooksFolder/-12A3BCDEFJHIJKLMNO45PQRST/MyNotebook.ipynb

Beispielbefehle zur programmgesteuertenAusführung vonEMR-Notebooks

Die EMR-Notebook-Ausführung APIs ist verfügbar, um EMR-Notebooks über ein Skript oder eineBefehlszeile auszuführen. Die Möglichkeit, EMR-Notebook-Ausführungen ohne die AWS-Konsolezu starten, anzuhalten, aufzulisten und zu beschreiben, ermöglicht es Ihnen, ein EMR-Notebookprogrammgesteuert zu steuern. Mit einer parametrisierten Notebook-Zelle können Sie verschiedeneParameterwerte an ein Notebook übergeben, ohne für jeden neuen Satz von Parameterwerten eine Kopiedes Notebooks erstellen zu müssen. Siehe EMR-API-Aktionen.

34

Page 42: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCLI-Befehlsbeispiele

Die Ausführung von EMR-Notebooks kann mit AWS CloudWatch-Ereignissen und AWS Lambda geplantoder im Stapel verarbeitet werden. Weitere Informationen finden Sie unter Verwenden von AWS Lambdamit Amazon CloudWatch-Ereignissen.

Dieser Abschnitt enthält mehrere Beispiele für die programmgesteuerte Ausführung von EMR-Notebooksmit der AWS-CLI, dem Boto3-SDK (Python) und Ruby.

Beispiele für den CLI-Befehl der Notebook-Ausführung (p. 35)

Python-Beispiele für die Notebook-Ausführung (p. 38)

Ruby-Beispiele für die Notebook-Ausführung (p. 40)

Beispiele für den CLI-Befehl der Notebook-AusführungWeitere Informationen zu den EMR-API-NotebookExecution-Aktionen finden Sie unter EMR-API-Aktionen.

aws emr --region us-east-1 \start-notebook-execution \--editor-id e-BKTM2DIHXBEDRU44ANWRKIU8N \--notebook-params '{"input_param":"my-value", "good_superhero":["superman", "batman"]}' \--relative-path test.ipynb \--notebook-execution-name my-execution \--execution-engine '{"Id" : "j-2QMOV6JAX1TS2"}' \--service-role EMR_Notebooks_DefaultRole { "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE"}

Ausgabe des CLI-Befehls EMR-NotebookHier sehen Sie ein Beispiel für ein Ausgabe-Notebook. Zelle [3] zeigt die neu eingefügten Parameterwerte.

Beschreiben des CLI-Befehls für die Notebook-Ausführungaws emr --region us-east-1 \describe-notebook-execution --notebook-execution-id ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE

35

Page 43: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCLI-Befehlsbeispiele

{ "NotebookExecution": { "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "ExecutionEngine": { "Id": "j-2QMOV6JAX1TS2", "Type": "EMR", "MasterInstanceSecurityGroupId": "sg-05ce12e58cd4f715e" }, "NotebookExecutionName": "my-execution", "NotebookParams": "{\"input_param\":\"my-value\", \"good_superhero\":[\"superman\", \"batman\"]}", "Status": "FINISHED", "StartTime": 1593490857.009, "Arn": "arn:aws:elasticmapreduce:us-east-1:123456789012:notebook-execution/ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE", "LastStateChangeReason": "Execution is finished for cluster j-2QMOV6JAX1TS2.", "NotebookInstanceSecurityGroupId": "sg-0683b0a39966d4a6a", "Tags": [] }}

Anhalten des CLI-Befehls für die Notebook-Ausführung

# stop a running executionaws emr --region us-east-1 \stop-notebook-execution --notebook-execution-id ex-IZWZX78UVPAATC8LHJR129B1RBN4T # describe itaws emr --region us-east-1 \describe-notebook-execution --notebook-execution-id ex-IZWZX78UVPAATC8LHJR129B1RBN4T { "NotebookExecution": { "NotebookExecutionId": "ex-IZWZX78UVPAATC8LHJR129B1RBN4T", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "ExecutionEngine": { "Id": "j-2QMOV6JAX1TS2", "Type": "EMR" }, "NotebookExecutionName": "my-execution", "NotebookParams": "{\"input_param\":\"my-value\", \"good_superhero\":[\"superman\", \"batman\"]}", "Status": "STOPPED", "StartTime": 1593490876.241, "Arn": "arn:aws:elasticmapreduce:us-east-1:123456789012:editor-execution/ex-IZWZX78UVPAATC8LHJR129B1RBN4T", "LastStateChangeReason": "Execution is stopped for cluster j-2QMOV6JAX1TS2. Internal error", "Tags": [] }}

Auflisten der Notebook-Ausführung nach CLI-Befehl für dieStartzeit

# filter by start time aws emr --region us-east-1 \ list-notebook-executions --from 1593400000.000

36

Page 44: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCLI-Befehlsbeispiele

{ "NotebookExecutions": [ { "NotebookExecutionId": "ex-IZWZX78UVPAATC8LHJR129B1RBN4T", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "STOPPED", "StartTime": 1593490876.241 }, { "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "RUNNING", "StartTime": 1593490857.009 }, { "NotebookExecutionId": "ex-IZWZYRS0M14L5V95WZ9OQ399SKMNW", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "STOPPED", "StartTime": 1593490292.995 }, { "NotebookExecutionId": "ex-IZX009ZK83IVY5E33VH8MDMELVK8K", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "FINISHED", "StartTime": 1593489834.765 }, { "NotebookExecutionId": "ex-IZWZXOZF88JWDF9J09GJ91R57VI0N", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "FAILED", "StartTime": 1593488934.688 } ]}

Auflisten der Notebook-Ausführung nach Startzeit und Status-CLI-Befehl

# filter by start time and status aws emr --region us-east-1 \ list-notebook-executions --from 1593400000.000 --status FINISHED{ "NotebookExecutions": [ { "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "FINISHED", "StartTime": 1593490857.009 }, { "NotebookExecutionId": "ex-IZX009ZK83IVY5E33VH8MDMELVK8K", "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N", "NotebookExecutionName": "my-execution", "Status": "FINISHED", "StartTime": 1593489834.765 }

37

Page 45: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBoto3-SDK-Beispielskript

]}

Python-Beispiele für die Notebook-AusführungDas folgende Codebeispiel ist eine Boto3-Datei (Python AWS SDK) mit dem Namen demo.py, die dieNotebook-Ausführung APIs zeigt.

Weitere Informationen zu den EMR-API-NotebookExecution-Aktionen finden Sie unter EMR-API-Aktionen.

demo.py: import boto3,time emr = boto3.client( 'emr', region_name='us-west-1' ) start_resp = emr.start_notebook_execution( EditorId='e-40AC8ZO6EGGCPJ4DLO48KGGGI', RelativePath='boto3_demo.ipynb', ExecutionEngine={'Id':'j-1HYZS6JQKV11Q'}, ServiceRole='EMR_Notebooks_DefaultRole' ) execution_id = start_resp["NotebookExecutionId"] print(execution_id) print("\n") describe_response = emr.describe_notebook_execution(NotebookExecutionId=execution_id) print(describe_response) print("\n") list_response = emr.list_notebook_executions() print("Existing notebook executions:\n") for execution in list_response['NotebookExecutions']: print(execution) print("\n") print("Sleeping for 5 sec...") time.sleep(5) print("Stop execution " + execution_id) emr.stop_notebook_execution(NotebookExecutionId=execution_id) describe_response = emr.describe_notebook_execution(NotebookExecutionId=execution_id) print(describe_response) print("\n")

Hier sehen Sie die Ausgabe von der Ausführung von demo.py.

[ec2-user@ip-10-1-58-123 ~]$ python demo.py ex-IZX56YJDW1D29Q1PHR32WABU2SAPK

38

Page 46: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBoto3-SDK-Beispielskript

{'NotebookExecution': {'NotebookExecutionId': 'ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'ExecutionEngine': {'Id': 'j-1HYZS6JQKV11Q', 'Type': 'EMR'}, 'NotebookExecutionName': '', 'Status': 'STARTING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 49, 19, 418000, tzinfo=tzlocal()), 'Arn': 'arn:aws:elasticmapreduce:us-west-1:123456789012:notebook-execution/ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'LastStateChangeReason': 'Execution is starting for cluster j-1HYZS6JQKV11Q.', 'Tags': []}, 'ResponseMetadata': {'RequestId': '70f12c5f-1dda-45b7-adf6-964987d373b7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '70f12c5f-1dda-45b7-adf6-964987d373b7', 'content-type': 'application/x-amz-json-1.1', 'content-length': '448', 'date': 'Wed, 19 Aug 2020 00:49:22 GMT'}, 'RetryAttempts': 0}} Existing notebook executions: {'NotebookExecutionId': 'ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'STARTING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 49, 19, 418000, tzinfo=tzlocal())} {'NotebookExecutionId': 'ex-IZX5ABS5PR1E5AHMFYEMX3JJIORRB', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'RUNNING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 48, 36, 373000, tzinfo=tzlocal())} {'NotebookExecutionId': 'ex-IZX5GLVXIU1HNI8BWVW057F6MF4VE', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 45, 14, 646000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 46, 26, 543000, tzinfo=tzlocal())} {'NotebookExecutionId': 'ex-IZX5CV8YDUO8JAIWMXN2VH32RUIT1', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 43, 5, 807000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 44, 31, 632000, tzinfo=tzlocal())} {'NotebookExecutionId': 'ex-IZX5AS0PPW55CEDEURZ9NSOWSUJZ6', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 42, 29, 265000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 43, 48, 320000, tzinfo=tzlocal())} {'NotebookExecutionId': 'ex-IZX57YF5Q53BKWLR4I5QZ14HJ7DRS', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 38, 37, 81000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 40, 39, 646000, tzinfo=tzlocal())} Sleeping for 5 sec... Stop execution ex-IZX56YJDW1D29Q1PHR32WABU2SAPK {'NotebookExecution': {'NotebookExecutionId': 'ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'ExecutionEngine': {'Id': 'j-1HYZS6JQKV11Q', 'Type': 'EMR'}, 'NotebookExecutionName': '', 'Status': 'STOPPING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 49, 19, 418000, tzinfo=tzlocal()), 'Arn': 'arn:aws:elasticmapreduce:us-west-1:123456789012:notebook-execution/ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'LastStateChangeReason': 'Execution is being stopped for cluster j-1HYZS6JQKV11Q.', 'Tags': []}, 'ResponseMetadata': {'RequestId': '2a77ef73-c1c6-467c-a1d1-7204ab2f6a53', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '2a77ef73-c1c6-467c-a1d1-7204ab2f6a53', 'content-type': 'application/x-amz-json-1.1', 'content-length': '453', 'date': 'Wed, 19 Aug 2020 00:49:30 GMT'}, 'RetryAttempts': 0}}

39

Page 47: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRuby-Beispielskript

Ruby-Beispiele für die Notebook-AusführungDie folgenden Ruby-Codebeispiele veranschaulichen die Verwendung der Notebook-Ausführungs-API.

# prepare an EMR client

emr = Aws::EMR::Client.new( region: 'us-east-1', access_key_id: 'AKIA...JKPKA', secret_access_key: 'rLMeu...vU0OLrAC1',)

Starten der Notebook-Ausführung und Abrufen der Ausführungs-IDIn diesem Beispiel lauten der S3-Editor und das EMR-Notebook s3://mybucket/notebooks/e-EA8VGAA429FEQTC8HC9ZHWISK/test.ipynb.

Weitere Informationen zu den EMR-API-NotebookExecution-Aktionen finden Sie unter EMR-API-Aktionen.

start_response = emr.start_notebook_execution({ editor_id: "e-EA8VGAA429FEQTC8HC9ZHWISK", relative_path: "test.ipynb", execution_engine: {id: "j-3U82I95AMALGE"}, service_role: "EMR_Notebooks_DefaultRole",})

notebook_execution_id = start_resp.notebook_execution_id

Beschreiben der Notebook-Ausführung und Drucken der Details

describe_resp = emr.describe_notebook_execution({ notebook_execution_id: notebook_execution_id})puts describe_resp.notebook_execution

{:notebook_execution_id=>"ex-IZX3VTVZWVWPP27KUB90BZ7V9IEDG", :editor_id=>"e-EA8VGAA429FEQTC8HC9ZHWISK",:execution_engine=>{:id=>"j-3U82I95AMALGE", :type=>"EMR", :master_instance_security_group_id=>nil}, :notebook_execution_name=>"", :notebook_params=>nil, :status=>"STARTING", :start_time=>2020-07-23 15:07:07 -0700, :end_time=>nil, :arn=>"arn:aws:elasticmapreduce:us-east-1:123456789012:notebook-execution/ex-IZX3VTVZWVWPP27KUB90BZ7V9IEDG", :output_notebook_uri=>nil, :last_state_change_reason=>"Execution is starting for cluster j-3U82I95AMALGE.", :notebook_instance_security_group_id=>nil, :tags=>[]}

40

Page 48: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBenutzer-Identitätswechsel für Spark

Auflisten von Notebook-Ausführungenputs 'Listing executions:'list_resp = emr.list_notebook_executions({})puts list_resp

Notebook-Filter

"EditorId": "e-XXXX", [Optional]"From" : "1593400000.000", [Optional]"To" : "1598400000.500", [Optional] "Status": [Optional] "START_PENDING | STARTING | RUNNING | STOP_PENDING | STOPPING | FINISHING | FAILING | FINSHED | FAILED | STOPPED"

Ein EMR-Notebook kann angehalten werden, wenn es sich in einem der folgenden Zustände befindet:START_PENDING, STARTING, RUNNING:

Anhalten der Notebook-Ausführung

stop_resp = emr.stop_notebook_execution({ notebook_execution_id: notebook_execution_id})

Planen von Notebook-AusführungenEMR-Notebooks können wie folgt geplant werden:

• Ein Cron-Auftrag mit Bash-Skript• Ein AWS Cloudwatch-Ereignis, das ein AWS Lambda (Java/Python/Javascript) auslöst. Weitere

Informationen finden Sie unter Verwenden von AWS Lambda mit Amazon CloudWatch Events.

#!/bin/bashaws emr --region us-east-1 \start-notebook-execution \--editor-id e-EA8VGAA429FEQTC8HC9ZHWISK \--notebook-params '{"input_param":"my-value", "good_superhero":["superman", "batman"], "new_param":{"nest-key1":"nest-val1", "nest-key2":"nest-val2"}}' \--relative-path test.ipynb \--notebook-execution-name daily-job \--execution-engine '{"Id" : "j-3U82I95AMALGE"}' \--service-role EMR_Notebooks_DefaultRole

Aktivieren des Identitätswechsels zur Überwachungvon Spark-Benutzer- und -Aufgabenaktivitäten

EMR-Notebooks ermöglicht die Konfiguration von Benutzer-Identitätswechseln auf einem Spark-Cluster.Mit dieser Funktion können Sie die Auftragsaktivität nachverfolgen, die innerhalb des Notebook-Editors

41

Page 49: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideEinrichten des Spark-Benutzer-Identitätswechsels

initiiert wurde. Darüber hinaus verfügt EMR-Notebooks über ein integriertes Jupyter-Notebook-Widget zurAnzeige von Details zu Spark-Aufgaben zusammen mit der Abfrageausgabe im Notebook-Editor. DasWidget ist standardmäßig verfügbar und erfordert keine spezielle Konfiguration. Um die Verlaufsserveranzeigen zu können, muss Ihr Client jedoch so konfiguriert sein, dass Amazon EMR-Webschnittstellenangezeigt werden, die auf dem Master-Knoten gehostet werden.

Einrichten des Spark-Benutzer-IdentitätswechselsStandardmäßig stammen Spark-Aufträge, die Benutzer mit dem Notebook-Editor übermitteln, scheinbaraus einer unbestimmten livy-Benutzeridentität. Sie können einen Benutzer-Identitätswechsel für denCluster konfigurieren, damit diese Aufträge stattdessen mit der IAM-Benutzeridentität verknüpft werden,die den Code ausgeführt hat. HDFS-Benutzerverzeichnisse auf dem Master-Knoten werden für jedeBenutzeridentität erstellt, die Code im Notebook ausführt. Beispiel: Wenn der Benutzer NbUser1 Code ausdem Notebook-Editor ausführt, können Sie eine Verbindung mit dem Master-Knoten herstellen und sehen,dass hadoop fs -ls /user das Verzeichnis /user/user_NbUser1 zeigt.

Sie können diese Funktion aktivieren, indem Sie Eigenschaften in den Konfigurationsklassifizierungencore-site und livy-conf festlegen. Diese Funktion ist nicht standardmäßig verfügbar, wenn AmazonEMR einen Cluster zusammen mit einem Notebook erstellt. Weitere Informationen zur Verwendung vonKonfigurationsklassifizierungen zum Anpassen von Anwendungen finden Sie unter Konfigurieren vonAnwendungen im Amazon EMR-Versionshinweise.

Verwenden Sie die folgenden Konfigurationsklassifizierungen und Werte, um einen Benutzer-Identitätswechsel für EMR-Notebooks zu aktivieren:

[ { "Classification": "core-site", "Properties": { "hadoop.proxyuser.livy.groups": "*", "hadoop.proxyuser.livy.hosts": "*" } }, { "Classification": "livy-conf", "Properties": { "livy.impersonation.enabled": "true" } }]

Verwenden des Spark-Widgets für dieAuftragsüberwachungWenn Sie im Notebook-Editor Code ausführen, der Spark-Aufträge im EMR-Cluster ausführt, enthältdie Ausgabe ein Jupyter-Notebook-Widget für die Spark-Auftragsüberwachung. Das Widget stelltAuftragsdetails, nützliche Links zur Spark-Verlaufsserverseite und zur Hadoop-Auftragsverlaufsseite sowiepraktische Links zu Auftragsprotokollen in Amazon S3 für alle fehlgeschlagenen Aufträge bereit.

Um Verlaufsserverseiten auf dem Cluster-Master-Knoten anzuzeigen, müssen Sie einen SSH-Clientund einen Proxy nach Bedarf einrichten. Weitere Informationen finden Sie im Anzeigen von auf AmazonEMR-Clustern gehosteten Webschnittstellen (p. 390). Um Protokolle in Amazon S3 anzuzeigen, mussdie Cluster-Protokollierung aktiviert sein. Dies ist die Standardeinstellung für neue Cluster. WeitereInformationen finden Sie im View Log Files Archived to Amazon S3 (p. 351).

Nachstehend finden Sie ein Beispiel für das Spark-Widget für die Auftragsüberwachung.

42

Page 50: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSicherheit

Sicherheit und Zugriffskontrolle für EMR NotebooksEs sind verschiedene Funktionen verfügbar, mit denen Sie die Sicherheitslage von EMR-Notebooksanpassen können. Dadurch wird sichergestellt, dass nur autorisierte Benutzer Zugriff auf ein EMR-Notebook haben, mit Notebooks arbeiten und den Notebook-Editor zum Ausführen von Code auf demCluster verwenden können. Diese Funktionen arbeiten mit den für Amazon EMR und Amazon EMR-Clusterverfügbaren Sicherheitsfunktionen zusammen. Weitere Informationen finden Sie im Sicherheit in AmazonEMR (p. 185).

• Sie können AWS Identity and Access Management-Richtlinienanweisungen zusammen mitNotebook-Tags verwenden, um den Zugriff einzuschränken. Weitere Informationen finden Sie unterBedingungsschlüssel (p. 221) und Beispiel für identitätsbasierte Richtlinienanweisungen für EMR-Notebooks (p. 258).

• EC2-Sicherheitsgruppen fungieren als virtuelle Firewalls, die den Netzwerkdatenverkehr zwischen derMaster-Instance des Clusters und dem Notebook-Editor steuern. Sie können Standardwerte verwendenoder diese Sicherheitsgruppen anpassen. Weitere Informationen finden Sie im Angeben von EC2-Sicherheitsgruppen für EMR Notebooks (p. 326).

• Sie geben eine AWS-Servicerolle an, die die Berechtigungen eines EMR-Notebook für die Interaktionmit anderen AWS-Services festlegt. Weitere Informationen finden Sie im Service Role for EMR-Notebooks (p. 235).

43

Page 51: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideInstallieren und Verwenden von Kerneln und Bibliotheken

Installieren und Verwenden von Kerneln undBibliotheken

Jedes EMR-Notebook wird mit einer Reihe vorinstallierter Bibliotheken und Kernel ausgeliefert. Sie könnenin einem Amazon EMR-Cluster zusätzliche Bibliotheken und Kernel installieren, wenn der Cluster Zugriffauf das Repository hat, in dem sich die Kernel und Bibliotheken befinden. Für Cluster in privaten Subnetzenmüssen Sie beispielsweise möglicherweise die Network Address Translation (NAT) konfigurieren undeinen Pfad für den Cluster angeben, um auf das öffentliche PyPI-Repository zuzugreifen und eineBibliothek zu installieren. Weitere Informationen zum Konfigurieren des externen Zugriffs für verschiedeneNetzwerkkonfigurationen finden Sie unter Szenarien und Beispiele im Amazon VPC Benutzerhandbuch.

Installieren von Kernels und Python-Bibliotheken aufeinem Cluster-Master-KnotenMit Amazon EMR Version 5.30.0 und höher (außer Version 6.0.0) können Sie zusätzliche Python-Bibliotheken und Kernel auf dem Master-Knoten des Clusters installieren. Nach der Installation stehendiese Kernel und Bibliotheken allen Benutzern zur Verfügung, die ein an den Cluster angefügtes EMR-Notebook ausführen. Auf diese Weise installierte Python-Bibliotheken sind nur für Prozesse verfügbar, dieauf dem Master-Knoten ausgeführt werden. Die Bibliotheken werden nicht auf Core- oder Aufgabenknoteninstalliert und sind für Executors, die auf diesen Knoten ausgeführt werden, nicht verfügbar.

Sie können Kernel und Bibliotheken installieren, indem Sie pip oder conda in /emr/notebook-env/binauf dem Master-Knoten ausführen.

Sie können pip aus einer Notebook-Zelle als Terminalbefehl ausführen. Die Verwendung von condaerfordert sudo-Zugriff. Sie müssen über SSH eine Verbindung mit dem Master-Knoten herstellen und dannconda vom Terminal aus ausführen. Weitere Informationen finden Sie im Verbinden mit dem Master-Knoten über SSH (p. 385).

Das folgende Beispiel veranschaulicht die Installation von sas_kernel mithilfe eines Terminalbefehls auseiner EMR-Notebook-Zelle unter Verwendung des Python-Kernels:

/emr/notebook-env/bin/pip install sas_kernel

Verwenden von Bibliotheken im Notebook-Scoped-FormatDedizierte Notebook-Bibliotheken sind für Cluster verfügbar, die mit Amazon EMR Version 5.26.0 oderhöher erstellt wurden. Bibliotheken mit Notebook-Bereich sind nur für die Verwendung mit dem PySpark-Kernel vorgesehen. Jeder Benutzer kann zusätzliche dedizierte Notebook-Bibliotheken innerhalb einerNotebook-Zelle installieren. Diese Bibliotheken stehen diesem Notebook-Benutzer nur während genaueiner Notebook-Sitzung zur Verfügung. Wenn andere Benutzer dieselben Bibliotheken benötigen oderderselbe Benutzer dieselben Bibliotheken in einer anderen Sitzung benötigt, muss die Bibliothek neuinstalliert werden.

Überlegungen und EinschränkungenBeachten Sie bei der Verwendung von Bibliotheken im Format „Notebook-Scoped“ Folgendes:

• Sie können nur Bibliotheken deinstallieren, die mit der install_pypi_package-API installiert wurden.Sie können keine Bibliotheken deinstallieren, die auf dem Cluster vorinstalliert sind.

44

Page 52: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerknüpfen von Git-basierten

Repositorys mit EMR-Notebooks

• Wenn dieselben Bibliotheken mit unterschiedlichen Versionen auf dem Cluster und als Notebook-Bibliotheken installiert sind, überschreibt die Version der Notebook-Bibliothek die Version der Cluster-Bibliothek.

Arbeiten mit Notebook-BibliothekenUm Bibliotheken zu installieren, muss Ihr Amazon EMR-Cluster Zugriff auf das PyPI-Repository haben, indem sich die Bibliotheken befinden.

Die folgenden Beispiele zeigen einfache Befehle zum Auflisten, Installieren und Deinstallieren vonBibliotheken in einer Notebook-Zelle mithilfe des PySpark-Kernels und von APIs. Weitere Beispiele findenSie im Beitrag Install Python libraries on a running cluster with EMR Notebooks im AWS Big Data-Blog.

Example – Auflisten aktueller Bibliotheken

Der folgende Befehl listet die Python-Pakete auf, die für die aktuelle Spark-Notebook-Sitzung verfügbarsind. Hiermit werden Bibliotheken aufgelistet, die auf dem Cluster installiert sind, und Bibliotheken fürNotebook-Bereiche.

sc.list_packages()

Example – Installieren der Celery-Bibliothek

Mit dem folgenden Befehl wird die Celery-Bibliothek als Notebook-Bibliothek installiert.

sc.install_pypi_package("celery")

Nach der Installation der Bibliothek bestätigt der folgende Befehl, dass die Bibliothek auf dem Spark-Treiberund den Executors verfügbar ist.

import celerysc.range(1,10000,1,100).map(lambda x: celery.__version__).collect()

Example – Installieren der Pfeilbibliothek unter Angabe der Version und des Repositorys

Mit dem folgenden Befehl wird die Pfeilbibliothek als Bibliothek mit einem „Notebook-Scoped“-Format miteiner Spezifikation der Bibliotheksversion und der Repository-URL installiert.

sc.install_pypi_package("arrow==0.14.0", "https://pypi.org/simple")

Example – Deinstallieren einer Bibliothek

Der folgende Befehl deinstalliert die Pfeilbibliothek und entfernt sie als Notebook-Bibliothek aus deraktuellen Sitzung.

sc.uninstall_package("arrow")

Verknüpfen von Git-basierten Repositorys mit EMR-NotebooksSie können Git-basierte Repositorys mit Ihren Amazon EMR-Notebooks verknüpfen, um Ihre Notebooks ineiner versionskontrollierten Umgebung zu speichern. Sie können einem Notebook bis zu drei Repositoryszuordnen. Folgende Git-basierte Services werden unterstützt:

• AWS CodeCommit

45

Page 53: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerknüpfen von Git-basierten

Repositorys mit EMR-Notebooks

• GitHub• Bitbucket

Die Verknüpfung von Git-basierten Repositorys mit Ihrem Notebook hat folgende Vorteile:

• Versionskontrolle – Sie können Codeänderungen in einem Versionskontrollsystem aufzeichnen, damitSie den Verlauf Ihrer Änderungen überprüfen und selektiv rückgängig machen können.

• Zusammenarbeit – Kollegen, die in verschiedenen Notebooks arbeiten, können Code über Git-basierteRemote-Repositorys füreinander freigeben. Notebooks können Code aus Remote-Repositorys klonenoder zusammenführen und Änderungen in diese Remote-Repositorys zurückübertragen.

• Code reuse (Wiederverwenden von Code) – Viele Jupyter-Notebooks, die Datenanalyse- oder MachineLearning-Techniken demonstrieren, sind in öffentlich gehosteten Repositorys wie GitHub verfügbar. Siekönnen Ihre Notebooks einem Repository zuordnen, um die in einem Repository enthaltenen Jupyter-Notebooks wiederzuverwenden.

Um Git-basierte Repositorys mit EMR-Notebooks verwenden zu können, fügen Sie die Repositorys alsRessourcen in der Amazon EMR-Konsole hinzu, ordnen Sie Anmeldeinformationen für Repositorys zu,die eine Authentifizierung erfordern, und verknüpfen Sie sie mit Ihren Notebooks. In der Amazon EMR-Konsole können Sie eine Liste der Repositorys, die in Ihrem Konto gespeichert sind, sowie Details zu deneinzelnen Repositorys anzeigen. Sie können ein vorhandenes Git-basiertes Repository mit einem Notebookverknüpfen, wenn Sie es erstellen.

Themen• Voraussetzungen und Überlegungen (p. 46)• Hinzufügen eines Git-basierten Repositorys zu Amazon EMR (p. 47)• Aktualisieren oder Löschen eines Git-basierten Repositorys (p. 48)• Verknüpfen oder Aufheben der Verknüpfung eines Git-basierten Repositorys (p. 49)• Erstellen eines neuen Notebooks mit einem zugehörigen Git-Repository (p. 50)• Verwenden von Git-Repositorys in einem Notebook (p. 51)

Voraussetzungen und ÜberlegungenBerücksichtigen Sie Folgendes, wenn Sie ein Git-basiertes Repository in EMR-Notebooks integrierenmöchten.

AWS CodeCommit

Wenn Sie ein CodeCommit-Repository verwenden, müssen Sie Git-Anmeldeinformationen undHTTPS mit CodeCommit verwenden. SSH-Schlüssel und HTTPS mit dem AWS CLI-Hilfsprogrammfür Anmeldeinformationen werden nicht unterstützt. CodeCommit unterstützt keine persönlichenZugriffstoken (Personal Access Tokens, PATs). Weitere Informationen finden Sie unter Verwenden vonIAM mit CodeCommit:. Git-Anmeldeinformationen, SSH-Schlüssel und AWS-Zugriffsschlüssel im IAM-Benutzerhandbuch und Einrichtung für HTTPS-Benutzer, die Git-Anmeldeinformationen verwenden imAWS CodeCommit-Benutzerhandbuch.

Überlegungen zu Zugriff und Berechtigungen

Bevor Sie ein Repository mit Ihrem Notebook verknüpfen, müssen Sie sicherstellen, dass Ihr Cluster,Ihre IAM-Rolle für EMR-Notebooks und Ihre Sicherheitsgruppen über die richtigen Einstellungen undBerechtigungen verfügen.

• Zugriff auf das Internet erforderlich – Die Netzwerkschnittstelle, die gestartet wird, hat nur eine privateIP-Adresse. Das bedeutet, dass der Cluster, mit dem Ihr Notebook eine Verbindung herstellt, sich in

46

Page 54: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerknüpfen von Git-basierten

Repositorys mit EMR-Notebooks

einem privaten Subnetz mit einem NAT-Gateway (Network Address Translation) befinden oder über einVirtual Private Gateway auf das Internet zugreifen können muss. Weitere Informationen finden Sie unterAmazon VPC-Optionen.

Die Sicherheitsgruppen für Ihr Notebook müssen eine Regel für ausgehenden Datenverkehr enthalten,sodass das Notebook Datenverkehr vom Cluster an das Internet weiterleiten kann. Wir empfehlen,eigene Sicherheitsgruppen zu erstellen. Weitere Informationen finden Sie unter Angeben von EC2-Sicherheitsgruppen für EMR Notebooks.

Important

Wenn die Netzwerkschnittstelle in ein öffentliches Subnetz gestartet wird, kann sie nicht über einInternet-Gateway (IGW) mit dem Internet kommunizieren.

• Berechtigungen für AWS Secrets Manager – Wenn Sie Secrets Manager zum Speichern vonSecrets verwenden, die Sie für den Zugriff auf ein Repository verwenden, muss an die the sectioncalled “EMR-Notebooks Role” (p. 235) eine Berechtigungsrichtlinie angefügt sein, die die Aktionsecretsmanager:GetSecretValue zulässt.

Hinzufügen eines Git-basierten Repositorys zu Amazon EMRSo fügen Sie ein Git-basiertes Repository als Ressource in Ihrem Amazon EMR-Konto hinzu

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/.2. Wählen Sie Git repositories (Git-Repositorys) und dann Add repository (Repository hinzufügen) aus.3. Geben Sie unter Repository name (Repository-Name) einen Namen ein, der für das Repository in

Amazon EMR verwendet werden soll.

Namen dürfen nur alphanumerische Zeichen, Bindestriche (-) oder Unterstriche (_) enthalten.4. Geben Sie für Git repository URL (Git-Repository-URL) die URL für das Repository ein. Wenn Sie ein

CodeCommit-Repository verwenden, handelt es sich dabei um die URL, die kopiert wird, wenn Sie dieOption Clone URL (URL klonen) und dann Clone HTTPS (HTTPS klonen) wählen, z. B. https://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyCodeCommitRepoName.

5. Geben Sie für Branch (Verzweigung) einen Verzweigungsnamen ein.6. Wählen Sie Optionen für Git credentials (Git-Anmeldeinformationen) gemäß den folgenden Richtlinien.

Sie können einen Git-Benutzernamen und ein Passwort oder ein persönliches Zugriffstoken (PersonalAccess Token, PAT) verwenden, um sich bei Ihrem Repository zu authentifizieren. EMR-Notebooksverwendet in Secrets Manager gespeicherte Secrets, um auf Ihre Git-Anmeldeinformationenzuzugreifen.

Option Description (Beschreibung)

Verwenden eines vorhandenen AWS-Secrets Wählen Sie diese Option, wenn Sie IhreAnmeldeinformationen bereits als Secret inSecrets Manager gespeichert haben, und wählenSie dann den Namen des Secrets in der Listeaus.

Wenn Sie ein Secret auswählen, das miteinem Git-Benutzernamen und -Passwortverknüpft ist, muss das Secret das Format{"gitUsername": MyUserName,"gitPassword": MyPassword} aufweisen.

Erstellen eines neuen Secrets Wählen Sie diese Option, um vorhandeneGit-Anmeldeinformationen mit einem neuen

47

Page 55: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerknüpfen von Git-basierten

Repositorys mit EMR-Notebooks

Option Description (Beschreibung)Secret zu verknüpfen, das Sie in SecretsManager erstellen. Führen Sie basierend aufden Git-Anmeldeinformationen, die Sie für dasRepository verwenden, einen der folgendenSchritte aus.

Wenn Sie für den Zugriff auf das Repositoryeinen Git-Benutzernamen mit Passwortverwenden, wählen Sie Username and password(Benutzername und Passwort) aus, geben Sieden Secret name (Namen des Secrets) ein, dasin Secrets Manager verwendet werden soll, undgeben Sie dann den Username (Benutzernamen)und das Password (Passwort) ein, die mit demSecret verknüpft werden sollen.

–ODER–

Wenn Sie ein persönliches Zugriffstoken für denZugriff auf das Repository verwenden, wählenSie Personal access token (PAT) (PersönlichesZugriffstoken (PAT)) aus, geben Sie den Secretname (Namen des Secrets) ein, der in SecretsManager verwendet werden soll, und geben Siedann Ihr personal access token (persönlichesZugriffstoken) ein. Weitere Informationenfinden Sie unter Erstellen eines persönlichenZugriffstokens für die Befehlszeile für GitHubund Persönliche Zugriffstoken für Bitbucket.CodeCommit-Repositorys unterstützen dieseOption nicht.

Verwenden eines öffentlichen Repository ohneAnmeldeinformationen

Wählen Sie diese Option, um auf ein öffentlichesRepository zuzugreifen.

7. Wählen Sie Add repository (repository hinzufügen) aus.

Aktualisieren oder Löschen eines Git-basierten RepositorysSo aktualisieren Sie ein Git-basiertes Repository

1. Wählen Sie auf der Seite Git repositories (Git-Repositorys) das Repository aus, das Sie aktualisierenmöchten.

2. Wählen Sie auf der Repository-Seite Edit Repositiory (Repository bearbeiten).3. Aktualisieren Sie die Angaben unter Git credentials (Git-Anmeldeinformationen) auf der Repository-

Seite.

So löschen Sie ein Git-Repository

1. Wählen Sie auf der Seite Git repositories (Git-Repositorys) das Repository aus, das Sie löschenmöchten.

2. Wählen Sie auf der Repository-Seite alle Notebooks aus, die derzeit mit dem Repository verknüpftsind. Wählen Sie Unlink Notebook (Notebook-Verknüpfung aufheben).

3. Wählen Sie auf der Repository-Seite Delete (Löschen).

48

Page 56: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerknüpfen von Git-basierten

Repositorys mit EMR-Notebooks

Note

Um das lokale Git-Repository aus Amazon EMR löschen zu können, müssen Sie zuerst dieVerknüpfung aller Notebooks mit diesem Repository aufheben. Weitere Informationen finden Sieim Verknüpfen oder Aufheben der Verknüpfung eines Git-basierten Repositorys (p. 49). WennSie ein Git-Repository löschen, werden keine für das Repository erstellten Geheimnisse gelöscht.Sie können den geheimen Schlüssel in AWS Secrets Manager löschen.

Verknüpfen oder Aufheben der Verknüpfung eines Git-basiertenRepositorysSo verknüpfen Sie ein Git-basiertes Repository mit einem EMR-Notebook

Das Repository kann mit einem Notebook verknüpft werden, sobald der Status des Notebooks Ready(Bereit) lautet.

1. Wählen Sie in der Liste Notebooks das Notebook aus, das Sie aktualisieren möchten.2. Wählen Sie im Bereich Git repositories (Git-Repositorys) auf der Seite Notebook die Option Link new

repository (Neues Repository verknüpfen) aus.3. Wählen Sie in der Repository-Liste des Fensters Link Git repository to notebook (Git-Repository mit

Notebook verknüpfen) ein oder mehrere Repositorys aus, die Sie mit Ihrem Notebook verknüpfenmöchten, und klicken Sie dann auf Link repository (Repository verknüpfen).

Or

1. Wählen Sie auf der Seite Git repositories (Git-Repositorys) das Repository aus, das Sie mit IhremNotebook verknüpfen möchten.

2. Wählen Sie in der Liste EMR notebooks (EMR-Notebooks) die Option Link new notebook (NeuesNotebook verknüpfen) aus, um dieses Repository mit einem vorhandenen Notebook zu verknüpfen.

So heben Sie die Verknüpfung eines Git-Repositorys mit einem EMR-Notebook auf

1. Wählen Sie in der Liste Notebooks das Notebook aus, das Sie aktualisieren möchten.2. Wählen Sie in der Liste Git repositories (Git-Repositories) das Repository aus, dessen Verknüpfung

mit Ihrem Notebook Sie aufheben möchten, und wählen Sie dann Unlink repository (Verknüpfung desRepositorys aufheben).

Or

1. Wählen Sie auf der Seite Git repositories (Git-Repositorys) das Repository aus, an dem SieAktualisierungen vornehmen möchten.

2. Wählen Sie in der Liste EMR notebooks (EMR-Notebooks) das Notebook aus, dessen Verknüpfungmit dem Repository Sie aufheben möchten, und wählen Sie dann Unlink notebook (Verknüpfung desNotebooks aufheben).

Note

Wenn Sie ein Git-Repository mit einem Notebook verknüpfen, wird das Remote-Repositoryauf Ihrem lokalen Jupyter-Notebook geklont. Durch das Aufheben der Verknüpfung des Git-Repositorys mit einem Notebook wird das Notebook vom Remote-Repository getrennt, das lokaleGit-Repository aber nicht gelöscht.

49

Page 57: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerknüpfen von Git-basierten

Repositorys mit EMR-Notebooks

Grundlegendes zum Repository-StatusEin Git-Repository kann beliebige der folgenden Status in der Repository-Liste aufweisen. Für weitereInformationen zum Verknüpfen von EMR-Notebooks mit Git-Repositorys siehe Verknüpfen oder Aufhebender Verknüpfung eines Git-basierten Repositorys (p. 49).

Status Bedeutung

Verknüpfen Das Git-Repository wird mit dem Notebookverknüpft. Während der Status des RepositorysLinking (Verknüpfung wird hergestellt) lautet,können Sie das Notebook anhalten.

Verknüpft Das Git-Repository ist mit dem Notebook verknüpft.Solange das Repository den Status Linked(Verknüpft) aufweist, ist es mit dem Remote-Repository verbunden.

Verknüpfung fehlgeschlagen Das Git-Repository konnte nicht mit dem Notebookverknüpft werden. Sie können erneut versuchen, eszu verknüpfen.

Verknüpfung aufheben Die Verknüpfung des Git-Repositorys mit demNotebook wird aufgehoben. Während der Statusdes Repositorys Unlinking (Verknüpfung wirdaufgehoben) lautet, können Sie das Notebook nichtanhalten. Durch das Aufheben der Verknüpfungeines Git-Repositorys mit einem Notebook wirdnur die Verbindung mit dem Remote-Repositorygetrennt; es wird kein Code aus dem Notebookgelöscht.

Verknüpfung aufheben fehlgeschlagen Das Git-Repository konnte die Verknüpfung mitdem Notebook nicht aufheben. Sie können erneutversuchen, die Verknüpfung aufzuheben.

Erstellen eines neuen Notebooks mit einem zugehörigen Git-RepositorySo erstellen Sie ein Notebook und ordnen es Git-Repositorys in der AWS Management Console zu

1. Befolgen Sie die Anweisungen unter Erstellen eines Notebook (p. 28).2. Wählen Sie für Security group (Sicherheitsgruppe) die Option Use your own security group (Eigene

Sicherheitsgruppe verwenden) aus.Note

Die Sicherheitsgruppen für Ihr Notebook müssen eine Regel für ausgehenden Datenverkehrenthalten, sodass das Notebook Datenverkehr über den Cluster an das Internet weiterleitenkann. Es wird empfohlen, eigene Sicherheitsgruppen zu erstellen. Weitere Informationenfinden Sie unter Angeben von EC2-Sicherheitsgruppen für EMR Notebooks.

3. Wählen Sie für Git repositories (Git-Repositorys) unter Choose repository (Repository wählen) dasRepository aus, das dem Notebook zugeordnet werden soll.

1. Wählen Sie ein Repository aus, das als Ressource in Ihrem Konto gespeichert ist, und wählen Siedann Save (Speichern).

50

Page 58: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerknüpfen von Git-basierten

Repositorys mit EMR-Notebooks

2. Um ein neues Repository als Ressource in Ihrem Konto hinzuzufügen, wählen Sie add a newrepository (Neues Repository hinzufügen). Führen Sie den Workflow Add repository (Repositoryhinzufügen) in einem neuen Fenster durch.

Verwenden von Git-Repositorys in einem NotebookSie können Open in JupyterLab (In Jupyter öffnen) oder Open in Jupyter (In Jupyter öffnen) auswählen,wenn Sie ein Notebook öffnen.

Wenn Sie das Notebook in Jupyter öffnen, wird eine Liste erweiterbarer Dateien und Ordner im Notebookangezeigt. Sie können Git-Befehle wie die folgenden manuell in einer Notebook-Zelle ausführen.

!git pull origin master

Zum Öffnen der zusätzlichen Repositorys wechseln Sie in andere Ordner.

Wenn Sie das Notebook mit einer JupyterLab-Schnittstelle öffnen, wird die Jupyter-Git-Erweiterunginstalliert und kann verwendet werden. Weitere Informationen zur jupyter-git-Erweiterung für JupyterLabfinden Sie unter jupyterlab-git.

51

Page 59: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Cluster Location and Data Storage

Plan and Configure ClustersIn diesem Abschnitt werden die Konfigurationsoptionen und Anweisungen für das Planen, Konfigurierenund Starten von Clustern mit Amazon EMR beschrieben. Bevor Sie einen Cluster starten, treffen SieEntscheidungen hinsichtlich Ihres Systems auf der Grundlage der Daten, die Sie verarbeiten, und IhrerAnforderungen an Kosten, Geschwindigkeit, Kapazität, Verfügbarkeit, Sicherheit und Verwaltbarkeit. IhreEntscheidungen betreffen u. a. Folgendes:

• What region to run a cluster in, where and how to store data, and how to output results. See ConfigureCluster Location and Data Storage (p. 52).

• Whether you are running Amazon EMR clusters on Outposts or Lokale Zonen. See EMR-Cluster aufAWS Outposts (p. 81) or EMR-Cluster auf Lokale AWS-Zonen (p. 84).

• Whether a cluster is long-running or transient, and what software it runs. See Configuring a Cluster toAuto-Terminate or Continue (p. 117) and Configure Cluster Software (p. 132).

• Whether a cluster has a single master node or three master nodes. See Planen und Konfigurieren vonMaster-Knoten (p. 70).

• The hardware and networking options that optimize cost, performance, and availability for yourapplication. See Konfigurieren von Cluster-Hardware und Netzwerken (p. 136).

• How to set up clusters so you can manage them more easily, and monitor activity, performance, andhealth. See Configure Cluster Logging and Debugging (p. 174) and Tag Clusters (p. 179).

• How to authenticate and authorize access to cluster resources, and how to encrypt data. See Sicherheitin Amazon EMR (p. 185).

• How to integrate with other software and services. See Drivers and Third-Party ApplicationIntegration (p. 183).

Configure Cluster Location and Data StorageIn diesem Abschnitt wird beschrieben, wie Sie die Region für einen Cluster konfigurieren, welcheverschiedenen Dateisysteme mit Amazon EMR zur Verfügung stehen und wie sie verwendet werden.Außerdem wird erläutert, wie Sie Daten vorbereiten ober bei Bedarf in Amazon EMR hochladen und wieSie einen Ausgabespeicherort für Protokolldateien und andere Ausgabedatendateien, die Sie konfigurieren,vorbereiten.

Themen• Choose an AWS Region (p. 52)• Work with Storage and File Systems (p. 54)• Prepare Input Data (p. 56)• Configure an Output Location (p. 65)

Choose an AWS RegionAmazon Web Services wird auf Servern in Rechenzentren auf der ganzen Welt ausgeführt. DieRechenzentren sind nach geografischer Region organisiert. Wenn Sie einen Amazon EMR-Cluster starten,müssen Sie eine Region angeben. So können Sie eine Region auswählen, die die Latenz oder die Kostenverringert oder behördliche Vorschriften erfüllt. Die Liste der von Amazon EMR unterstützten Regionen undEndpunkte finden Sie unter Regionen und Endpunkte im Allgemeine Amazon Web Services-Referenz.

52

Page 60: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideChoose an AWS Region

Um eine optimale Leistung zu erzielen, sollten Sie den Cluster in derselben Region starten wie Ihre Daten.Wenn sich der Amazon S3-Bucket, in dem Ihre Eingabedaten gespeichert werden, beispielsweise in derRegion USA West (Oregon) befindet, sollten Sie Ihren Cluster in der Region USA West (Oregon) starten,um Gebühren für regionsübergreifende Datenübertragungen zu vermeiden. Wenn Sie einen Amazon S3-Bucket für den Empfang der Cluster-Ausgabe verwenden, sollten Sie diesen Bucket ebenfalls in der RegionUSA West (Oregon) erstellen.

Wenn Sie vorhaben, ein Amazon EC2-Schlüsselpaar mit dem Cluster zu verknüpfen (was für dieProtokollierung mit SSH auf dem Master-Knoten erforderlich ist), muss das Schlüsselpaar in der gleichenRegion erstellt werden wie der Cluster. Auch die Sicherheitsgruppen, die Amazon EMR zum Verwalten desClusters erstellt, müssen sich in der gleichen Region wie der Cluster befinden.

Wenn Sie sich am oder nach dem 17. Mai 2017 für ein AWS-Konto registriert haben, ist dieStandardregion, wenn Sie von der AWS Management Console aus auf eine Ressource zugreifen, USAOst (Ohio) (us-east-2). Bei älteren Konten ist die Standardregion entweder USA West (Oregon) (us-west-2)oder USA Ost (Nord-Virginia) (us-east-1). Weitere Informationen finden Sie unter Regionen und Endpunktevon AWS.

Einige AWS-Funktionen sind nur in bestimmten Regionen verfügbar. Cluster Compute-Instances sindbeispielsweise nur in der Region USA Ost (Nord-Virginia) verfügbar und die Region Asien-Pazifik (Sydney)unterstützt ausschließlich Hadoop 1.0.3 und höher. Prüfen Sie bei der Auswahl einer Region, dass dieFunktionen, die Sie verwenden möchten, in dieser Region unterstützt werden.

Um eine optimale Leistung zu erzielen, verwenden Sie dieselbe Region für alle Ihre AWS-Ressourcen,die mit dem Cluster genutzt werden. In der folgenden Tabelle werden die Regionsnamen den Serviceszugeordnet. Die Liste der Amazon EMR-Regionen finden Sie unter AWS-Regionen und -Endpunkte imAllgemeine Amazon Web Services-Referenz.

Choose a Region Using the ConsoleIhre Standardregion wird automatisch angezeigt.

So ändern Sie die Regionen mithilfe der Konsole

• Um zwischen Regionen zu wechseln, wählen Sie die Regionsliste rechts neben IhrenKontoinformationen auf der Navigationsleiste aus.

Specify a Region Using the AWS CLISie geben in der AWS CLI eine Standardregion an, indem Sie den Befehl aws configure oder dieUmgebungsvariable AWS_DEFAULT_REGION verwenden. Weitere Informationen finden Sie unterKonfigurieren der AWS-Region im Benutzerhandbuch für AWS Command Line Interface.

Choose a Region Using an SDK or the APIUm eine Region mit einem SDK auszuwählen, Sie Ihre Anwendung für die Verwendung des Endpunktsdieser Region. Wenn Sie eine Client-Anwendung mit einem AWS SDK erstellen, können Sie den Client-Endpunkt ändern, indem Sie setEndpoint wie im folgenden Beispiel gezeigt aufrufen:

client.setEndpoint("elasticmapreduce.us-west-2.amazonaws.com");

Nachdem Ihre Anwendung eine Region durch Festlegen des Endpunkts angegeben hat, könnenSie die Availability Zone für die EC2 Instances Ihres Clusters bestimmen. Availability Zones sindeindeutige geografische Standorte. Sie sollen vor Fehlern in anderen Availability Zones schützen undeine kostengünstige Netzwerkkonnektivität mit geringer Latenz zu anderen Availability Zones in dergleichen Region bereitstellen. Eine Region umfasst eine oder mehr Availability Zones. Um die Leistung

53

Page 61: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideWork with Storage and File Systems

zu optimieren und die Latenz zu verkürzen, sollten sich alle Ressourcen in derselben Availability Zonebefinden wie der Cluster, der sie verwendet.

Work with Storage and File SystemsAmazon EMR und Hadoop bieten eine Vielzahl von Dateisystemen an, die Sie bei der Verarbeitungvon Cluster-Schritten verwenden können. Sie geben über das Präfix des URI an, welches DateisystemSie nutzen möchten. Beispielsweise referenziert s3://DOC-EXAMPLE-BUCKET1/path einen AmazonS3-Bucket mittels EMRFS. In der folgenden Tabelle werden die verfügbaren Dateisysteme sowieEmpfehlungen zu ihrer Verwendung aufgeführt.

Amazon EMR und Hadoop verwenden bei der Ausführung eines Clusters normalerweise zwei oder mehrder folgenden Dateisysteme. HDFS und EMRFS sind zwei der wichtigsten mit Amazon EMR verwendetenDateisysteme.

Important

Ab Amazon EMR Version 5.22.0, verwendet Amazon EMR AWS Signature Version 4ausschließlich zur Authentifizierung von Anforderungen an Amazon S3. Frühere AmazonEMR Versionen verwenden in einigen Fällen AWS Signature Version 2, es sei denn, dieVersionshinweise besagen, dass ausschließlich Signature Version 4 verwendet wird. WeitereInformationen finden Sie im Abschnitt zur Authentifizierung von Anforderungen (AWS SignatureVersion 4) und im Abschnitt zur Authentifizierung von Anforderungen (AWS Signature Version 2)im Amazon Simple Storage Service-Entwicklerhandbuch.

Dateisystem Präfix Description (Beschreibung)

HDFS hdfs://(oder ohnePräfix)

HDFS ist ein verteiltes, skalierbares und portierbaresDateisystem für Hadoop. Ein Vorteil von HDFS ist, dass dieDaten für die Hadoop-Cluster-Knoten zur Verwaltung derCluster und die Hadoop-Cluster-Knoten für die Verwaltungder einzelnen Schritte bekannt sind. Weitere Informationenfinden Sie in der Hadoop-Dokumentation.

HDFS wird von den Master- und Core-Knoten verwendet.Ein Vorteil ist, dass es schneller ist. Ein Nachteil ist,dass es ein flüchtiger Speicher ist. Dieser wird beimBeenden des Clusters verworfen. Es eignet sich ambesten für die Zwischenspeicherung der Ergebnisse vonzwischengeschalteten Auftragsverlaufsschritten.

EMRFS s3:// EMRFS ist eine Implementierung des Hadoop-Dateisystems, die zum direkten Lesen und Schreibenregulärer Dateien aus Amazon EMR zu Amazon S3verwendet wird. EMRFS ermöglicht das Speichernpersistenter Daten in Amazon S3 zur Verwendung mitHadoop. Gleichzeitig sind Funktionen wie die serverseitigeAmazon S3-Verschlüsselung, Read-after-Write-Konsistenzund Listenkonsistenz verfügbar.

Note

Zuvor, Amazon EMR das S3 Native Dateisystemmit dem URI-Schema verwendet wird, s3n.Obwohl dies noch funktioniert, empfehlen wirIhnen, s3 URI-System für beste Leistung,Sicherheit und Zuverlässigkeit.

54

Page 62: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideWork with Storage and File Systems

Dateisystem Präfix Description (Beschreibung)

Lokales Dateisystem   Das lokale Dateisystem bezieht sich auf einen lokalverbundenen Datenträger. Wenn ein Hadoop-Clustererstellt wird, wird jeder Knoten aus einer EC2-Instanzerstellt, die mit einem vorkonfigurierten Block vonvormontiertem Festplattenspeicher geliefert wird, dasinstance store. Daten zum Instanzvolumen werden nurwährend der Lebensdauer seiner EC2-Instanz gespeichert.Instance-Speicher-Volumen eignen sich perfekt für dieSpeicherung von temporärer Daten, die sich ständigändern (z. B. Puffer, Caches, Arbeitsdaten und anderetemporäre Inhalte). Weitere Informationen finden Sie unterAmazon EC2-Instance-Speicher.

Amazon S3-Block-Dateisystem (veraltet)

s3bfs:// Das Amazon S3-Block-Dateisystem ist ein veraltetesDateispeichersystem. Es wird ausdrücklich von derVerwendung dieses Systems abgeraten.

Important

Wir empfehlen, dass Sie dieses Dateisystemnicht verwenden. Es kann dazu führen, dass derCluster ausfällt. Möglicherweise ist es jedoch fürältere Anwendungen erforderlich.

Note

Das s3a-Protokoll wird nicht unterstützt. Wir empfehlen, dass Sie s3 statt s3a verwenden.

Access File SystemsSie geben über das Präfix des URI (Uniform Resource Identifier) für den Zugriff auf die Daten an, welchesDateisystem Sie nutzen möchten. Die folgenden Verfahren veranschaulichen den Zugriff auf verschiedeneDateisystemarten.

So greifen Sie auf ein lokales HDFS zu

• Geben Sie das Präfix hdfs:/// im URI an. Amazon EMR löst Pfade ohne Präfix im URI zum lokalenHDFS auf. Beispielsweise führen die folgenden URIs zum selben Speicherort in HDFS.

hdfs:///path-to-data /path-to-data

So greifen Sie auf ein Remote-HDFS zu

• Fügen Sie, wie in den folgenden Beispielen dargestellt, die IP-Adresse des Master-Knotens zum URIhinzu.

hdfs://master-ip-address/path-to-data master-ip-address/path-to-data

55

Page 63: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePrepare Input Data

Zugriff auf Amazon S3

• Verwenden Sie den s3://-Präfix.

s3://bucket-name/path-to-file-in-bucket

So greifen Sie auf das Amazon S3-Block-Dateisystem zu

• Verwenden Sie dieses Dateisystem nur für ältere Anwendungen, die das Amazon S3-Block-Dateisystem benötigen. Für den Zugriff auf Daten mit diesem Dateisystem verwenden Sie dass3bfs://-Präfix im URI.

Das Amazon S3-Block-Dateisystem ist ein veraltetes Dateisystem, das für Uploads zu Amazon S3 miteiner Größe von mehr als 5 GB verwendet wurde. Mittels der Funktionalität für mehrteilige Uploads,die Amazon EMR über das AWS SDK für Java bereitstellt, können Sie Dateien mit einer Größe von biszu 5 TB zum nativen Dateisystem von Amazon S3 hochladen. Das Amazon S3-Block-Dateisystem istdaher veraltet.

Warning

Da dieses veraltete Dateisystem zu Beschädigungen führen kann, sollten Sie es vermeiden.Verwenden Sie stattdessen EMRFS.

s3bfs://bucket-name/path-to-file-in-bucket

Prepare Input DataDie meisten Clustern laden Eingabedaten und verarbeitet diese anschließend. Zum Laden von Datenmüssen diese sich an einem Speicherort befinden, auf den der Cluster zugreifen kann und der ein Formathat, das der Cluster verarbeiten kann. Das häufigste Szenario besteht im Hochladen von Eingabedaten zuAmazon S3. Amazon EMR stellt Tools bereit, mit denen Ihr Cluster Daten aus Amazon S3 importieren oderlesen kann.

Das Standardeingabeformat in Hadoop sind Textdateien. Sie können Hadoop jedoch anpassen und Toolszum Importieren von Daten in anderen Formaten verwenden.

Themen• Types of Input Amazon EMR Can Accept (p. 56)• How to Get Data Into Amazon EMR (p. 57)

Types of Input Amazon EMR Can AcceptDas Standardeingabeformat für einen Cluster sind Textdateien, bei denen jede Zeile durch einZeilenvorschubzeichen (\ n) getrennt ist. Dies ist das am häufigsten verwendete Eingabeformat.

Wenn Ihre Eingabedaten in einem anderen Format geschrieben werden müssen als Standardtextdateien,können Sie die Hadoop-Benutzeroberfläche InputFormat verwenden, um andere Eingabetypen

56

Page 64: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePrepare Input Data

anzugeben. Sie können auch eine Unterklasse der FileInputFormat-Klasse für den Umgangmit benutzerdefinierten Datentypen verwenden. Weitere Informationen finden Sie unter http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/InputFormat.html.

Wenn Sie Hive verwenden, können Sie einen Serializer/Deserializer (SerDe) verwenden, um Datenin einem bestimmten Format in HDFS einzulesen. Weitere Informationen finden Sie unter https://cwiki.apache.org/confluence/display/Hive/SerDe.

How to Get Data Into Amazon EMRAmazon EMR bietet mehrere Möglichkeiten, um Daten auf einen Cluster zu laden. Die häufigste Methodebesteht im Hochladen der Daten zu Amazon S3 und der Verwendung der integrierten Funktionen vonAmazon EMR, um die Daten in Ihren Cluster zu laden. Sie können auch die Hadoop-Funktion für denverteilten Cache verwenden, um Dateien von einem verteilten Dateisystem in das lokale Dateisystem zuübertragen. Die von Amazon EMR bereitgestellte Hive-Implementierung (Hive-Version 0.7.1.1 und höher)enthält Funktionen, die Sie zum Importieren und Exportieren von Daten zwischen DynamoDB und einenAmazon EMR-Cluster verwenden können. Wenn Sie große Datenmengen vor Ort verarbeiten müssen,kann der AWS Direct Connect Service nützlich sein.

Themen• Upload Data to Amazon S3 (p. 57)• Import files with Distributed Cache (p. 61)• How to Process Compressed Files (p. 64)• Import DynamoDB Data into Hive (p. 65)• Connect to Data with AWS DirectConnect (p. 65)• Upload Large Amounts of Data with AWS Import/Export (p. 65)

Upload Data to Amazon S3

Informationen zum Hochladen von Objekten in Amazon S3, siehe Objekt zu Ihrem Bucket hinzufügen imAmazon Simple Storage Service Handbuch Erste Schritte. Weitere Informationen zur Verwendung vonAmazon S3 mit Hadoop, siehe http://wiki.apache.org/hadoop/AmazonS3.

Themen• Create and Configure an Amazon S3 Bucket (p. 57)• Configure Multipart Upload for Amazon S3 (p. 58)• Best Practices (p. 60)

Create and Configure an Amazon S3 Bucket

Amazon EMR verwendet die AWS SDK for Java mit Amazon S3 um Eingabedaten, Protokolldateien undAusgabedaten zu speichern. Amazon S3 bezieht sich auf diese Speicherorte als buckets. Eimer habenbestimmte Einschränkungen und Einschränkungen, um Amazon S3 und DNS-Anforderungen. WeitereInformationen finden Sie im https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.htmlunter Entwicklerhandbuch für Amazon Simple Storage ServiceBucket Restrictions and Limitations.

In diesem Abschnitt wird die Verwendung der Amazon S3 AWS Management Console zur Erstellungvon Amazon S3-Buckets und zur Festlegung von Berechtigungen für diese gezeigt. Sie könnenBerechtigungen für einen Amazon S3-Bucket auch über die Amazon S3-API oder die AWS CLI erstellenund festlegen. Sie können Curl auch zusammen mit einer Änderung verwenden, um die entsprechendenAuthentifizierungsparameter für Amazon S3 zu übergeben.

Weitere Informationen finden Sie in den folgenden Ressourcen:

57

Page 65: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePrepare Input Data

• To create a bucket using the console, see Create a Bucket in the Konsolenbenutzerhandbuch fürAmazon Simple Storage Service.

• To create and work with buckets using the AWS CLI, see Using High-Level S3 Commands with the AWSCommand Line Interface in the Konsolenbenutzerhandbuch für Amazon Simple Storage Service.

• To create a bucket using an SDK, see Examples of Creating a Bucket in the Entwicklerhandbuch fürAmazon Simple Storage Service.

• To work with buckets using Curl, see Amazon S3 Authentication Tool for Curl.• For more information on specifying Region-specific buckets, see Accessing a Bucket in the

Entwicklerhandbuch für Amazon Simple Storage Service.

Note

Wenn Sie für einen Bucket eine Protokollierung aktivieren, werden ausschließlich Bucket-Zugriffsprotokolle, keine Amazon EMR Cluster-Protokolle aktiviert.

Während der Bucket-Erstellung oder danach können Sie die entsprechenden Berechtigungen für denZugriff auf den Bucket festlegen, abhängig von Ihrer Anwendung. Hierbei sollten Sie sich selbst (alsEigentümer) Lese- und Schreibzugriff und anderen autorisierten Benutzern Lesezugriff erteilen.

Die erforderliche Amazon S3-Buckets müssen vorhanden sein, bevor Sie einen Cluster erstellen können.Sie müssen alle erforderlichen Skripts oder Daten zu Amazon S3 hochladen, auf die im Cluster verwiesenwird. In der folgenden Tabelle werden Beispiele für Speicherorte für Daten, Skripts und Protokolldateienbeschrieben.

Configure Multipart Upload for Amazon S3

Amazon EMR unterstützt mehrteilige Uploads zu Amazon S3 über das AWS SDK for Java. Mit demmehrteiligen Upload können Sie ein einzelnes Objekt in mehreren Teilen hochladen. Sie können dieseObjektteile und unabhängig und in beliebiger Reihenfolge hochladen. Wenn die Übertragung eines Teilsfehlschlägt, können Sie das Teil erneut übertragen, ohne dass dies Auswirkungen auf andere Teile hat.Nachdem alle Teile Ihres Objekts hochgeladen sind, baut Amazon S3 die Teile zusammen und erstellt dasObjekt.

Weitere Informationen finden Sie unter Überblick Multipart Upload im Entwicklerhandbuch für AmazonSimple Storage Service.

Darüber hinaus stellt Amazon EMR Eigenschaften bereit, mit denen Sie die Bereinigung fehlgeschlagenermehrteiliger Uploads genauer steuern können.

In der folgenden Tabelle werden die Amazon EMR-Konfigurationsparameter für mehrteilige Uploadsbeschrieben. Sie können diese mit der Konfigurationsklassifizierung core-site konfigurieren. WeitereInformationen finden Sie unter Konfigurieren von Anwendungen im Amazon EMR-Versionshinweise.

Name desKonfigurationsparameters

Standardwert Description (Beschreibung)

fs.s3n.multipart.uploads.enabledtrue Dieser Boolesche Typ gibt an, ob mehrteiligeUploads aktiviert werden sollen. Wenn EMRFSKonsistente Ansicht (p. 89) aktiviert ist, sindmehrteilige Uploads standardmäßig aktiviert.Eine Festlegung dieses Werts auf false wirdignoriert.

fs.s3n.multipart.uploads.split.size134217728 Gibt die maximale Größe eines Teils in Bytean, bevor EMRFS einen neuen Teil-Uploadstartet, wenn die Funktion für mehrteilige

58

Page 66: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePrepare Input Data

Name desKonfigurationsparameters

Standardwert Description (Beschreibung)

Uploads aktiviert ist. Der Mindestwert ist5242880 (5 MB). Wenn ein kleinerer Wertangegeben wird, wird 5242880 verwendet.Der Höchstwert ist 5368709120 (5 GB).Wenn ein größerer Wert angegeben wird, wird5368709120 verwendet.

Wenn die clientseitige EMRFS-Verschlüsselung und der Amazon S3Optimized Committer deaktiviert sind, steuertdieser Wert auch die maximale Größe, dieeine Datendatei erreichen kann, bis EMRFSzum Hochladen der Datei anstelle einerPutObject-Anfrage mehrteilige Uploadsverwendet. Weitere Informationen finden Sieim .

fs.s3n.ssl.enabled true Dieser Boolesche Typ gibt an, ob HTTP oderHTTPS verwendet werden soll.

fs.s3.buckets.create.enabledfalse Ein boolescher Typ, der angibt, ob ein Bucketerstellt werden soll, wenn er nicht vorhandenist. Wenn Sie dies auf false festlegen,wird eine Ausnahme für CreateBucket-Operationen ausgelöst.

fs.s3.multipart.clean.enabledfalse Ein boolescher Typ, der angibt, obunvollständige mehrteilige Uploads regelmäßigim Hintergrund bereinigt werden sollen.

fs.s3.multipart.clean.age.threshold604800 Ein long-Typ, der das Mindestalter einesmehrteiligen Uploads in Sekunden angibt,bevor er zur Bereinigung vorgesehen wird. DieStandardeinstellung ist eine Woche.

fs.s3.multipart.clean.jitter.max10000 Eine integer-Typ, der den maximalen Betragfür zufällige Jitter-Verzögerungen in Sekundenangibt, die der festen Verzögerung von15 Minuten hinzugefügt werden, bevor dienächste Bereinigung geplant wird.

Disable Multipart Upload Using the Amazon EMR Console

Dieses Verfahren beschreibt die Deaktivierung der Funktion für mehrteilige Uploads über die AmazonEMR-Konsole beim Erstellen eines Clusters.

So deaktivieren Sie mehrteilige Uploads

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create Cluster (Cluster erstellen) und Go to advanced options (Erweiterte Optionen

aufrufen) aus.3. Geben Sie in Edit software settings (Softwareeinstellungen bearbeiten) die folgende Konfiguration ein:

classification=core-site,properties=[fs.s3.multipart.uploads.enabled=false].4. Fahren Sie mit der Erstellung des Clusters fort.

59

Page 67: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePrepare Input Data

Disable Multipart Upload Using the AWS CLI

In diesem Verfahren wird erläutert, wie Sie mehrteilige Uploads mithilfe der AWS CLI deaktivieren. Ummehrteilige Uploads zu deaktivieren, geben Sie den Befehl create-cluster mit dem Parameter --bootstrap-actions ein.

So deaktivieren Sie mehrteilige Uploads mit der AWS CLI

1. Erstellen Sie eine Datei mit dem Namen myConfig.json und dem folgenden Inhalt und speichernSie sie in dem Verzeichnis, in dem Sie den Befehl ausführen:

[ { "Classification": "core-site", "Properties": { "fs.s3n.multipart.uploads.enabled": "false" } }]

2. Geben Sie den folgenden Befehl ein und ersetzen Sie ihn myKey mit dem Namen Ihres EC2-Schlüsselpaars.

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws emr create-cluster --name "Test cluster" \--release-label emr-5.31.0 --applications Name=Hive Name=Pig \--use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \--instance-count 3 --configurations file://myConfig.json

Disable Multipart Upload Using the API

Informationen zur programmgesteuerten Verwendung mehrteiliger Uploads in Amazon S3 finden Sie unterVerwenden des AWS SDK for Java für mehrteilige Uploads im Entwicklerhandbuch für Amazon SimpleStorage Service.

Weitere Informationen zum AWS SDK for Java finden Sie unter AWS SDK for Java.

Best Practices

Nachfolgend sind die Empfehlungen für die Nutzung von Amazon S3-Buckets mit EMR-Clustern aufgeführt.

Enable Versioning

Versioning ist eine empfohlene Konfiguration für Ihre Amazon S3-Buckets. Durch das Aktivieren vonVersioning stellen Sie sicher, dass Sie auch versehentlich gelöschte oder überschriebene Datenwiederhergestellt werden können. Weitere Informationen finden Sie unter Verwenden von Versioning imEntwicklerhandbuch für Amazon Simple Storage Service.

Clean Up Failed Multipart Uploads

EMR-Clusterkomponenten verwenden standardmäßig mehrteilige Uploads über den AWS SDK forJava mit Amazon S3-APIs zum Schreiben von Protokolldateien und Ausgabedaten zu Amazon S3.Informationen zum Ändern von Eigenschaften im Zusammenhang mit dieser Konfiguration über AmazonEMR finden Sie unter Configure Multipart Upload for Amazon S3 (p. 58). Es kann vorkommen, dass das

60

Page 68: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePrepare Input Data

Hochladen einer großen Datei zu einem unvollständigen mehrteiligen Upload in Amazon S3 führt. Wennein mehrteiliger Upload nicht erfolgreich abgeschlossen werden kann, belegt der laufende Vorgang IhrenBucket und es fallen Speichergebühren an. Wir empfehlen die folgenden Optionen, um eine übermäßigeDateispeicherung zu vermeiden:

• For buckets that you use with Amazon EMR, use a lifecycle configuration rule in Amazon S3 to removeincomplete multipart uploads three days after the upload initiation date. Lifecycle configuration rulesallow you to control the storage class and lifetime of objects. For more information, see Object LifecycleManagement, and Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

• Enable Amazon EMR's multipart cleanup feature by setting fs.s3.multipart.clean.enabled toTRUE and tuning other cleanup parameters. This feature is useful at high volume, large scale, and withclusters that have limited uptime. In this case, the DaysAfterIntitiation parameter of a lifecycleconfiguration rule may be too long, even if set to its minimum, causing spikes in Amazon S3 storage.Amazon EMR's multipart cleanup allows more precise control. For more information, see ConfigureMultipart Upload for Amazon S3 (p. 58).

Manage Version Markers

Sie sollten eine Lebenszyklus-Konfigurationsregel in Amazon S3 aktivieren, um abgelaufeneObjektlöschmarkierungen für versionierte Buckets, die Sie mit Amazon EMR verwenden, zu entfernen.Beim Löschen eines Objekts in einem versionierten Bucket wird eine Löschmarkierung erstellt.Wenn anschließend alle vorherigen Versionen des Objekts ablaufen, verbleibt eine Löschmarkierungfür abgelaufene Objekte im Bucket. Löschmarkierungen werden Ihnen zwar nicht berechnet, dieEntfernung abgelaufener Löschmarkierungen kann jedoch die Leistung von LIST-Anfragen verbessern.Weitere Informationen finden Sie unter Lebenszykluskonfiguration für einen Bucket mit Versioning imKonsolenbenutzerhandbuch für Amazon Simple Storage Service.

Performance best practices

Je nach Workloads können bestimmte Nutzungsarten von EMR-Clustern und Anwendungen in diesenClustern zu einer hohe Anzahl von Anfragen an einen Bucket führen. Weitere Informationen finden Sieunter Überlegungen zur Anfragerate und Leistung im Entwicklerhandbuch für Amazon Simple StorageService.

Import files with Distributed Cache

Themen• Supported File Types (p. 62)• Location of Cached Files (p. 62)• Access Cached Files From Streaming Applications (p. 62)• Access Cached Files From Streaming Applications Using the Amazon EMR Console (p. 62)• Access Cached Files From Streaming Applications Using the AWS CLI (p. 63)

Beim verteilten Cache handelt es sich um eine Hadoop-Funktion, die die Effizienz erhöhen kann, wenneine Map- oder Reduce-Aufgabe Zugriff auf allgemeine Daten benötigt. Wenn Ihr Cluster von vorhandenenAnwendungen oder Binärdateien abhängt, die bei der Erstellung des Clusters nicht installiert sind, könnenSie den verteilten Cache zum Importieren dieser Dateien verwenden. Mit dieser Funktion kann ein Cluster-Knoten die importierten Dateien aus seinem lokalen Dateisystem lesen, anstatt die Dateien von anderenCluster-Knoten abzurufen.

Weitere Informationen finden Sie unter http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/filecache/DistributedCache.html.

Sie rufen den verteilten Cache beim Erstellen des Clusters auf. Die Dateien werden vor dem Starten desHadoop-Auftrags nur für die Dauer des Auftrags im Cache zwischengespeichert. Sie können Dateien, die

61

Page 69: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePrepare Input Data

in einem beliebigen Hadoop-kompatiblen Dateisystem wie HDFS oder Amazon S3 gespeichert sind, imCache zwischenspeichern. Die Standardgröße des Datei-Caches ist 10 GB. Zum Ändern der Größe desCaches konfigurieren Sie den Hadoop-Parameter local.cache.size mithilfe der Bootstrap-Aktion neu.Weitere Informationen finden Sie im Create Bootstrap Actions to Install Additional Software (p. 132).

Supported File Types

Der verteilte Cache lässt sowohl einzelne Dateien als auch Archive zu. Einzelne Dateienwerden schreibgeschützt zwischengespeichert. Für ausführbare und Binärdateien werdenAusführungsberechtigungen festgelegt.

Archive sind eine oder mehrere Dateien, die mit einem Dienstprogramm verpackt sind, wie z. B. gzip.Distributed Cache leitet die komprimierten Dateien an jeden Kernknoten weiter und dekomprimiert dasArchiv als Teil des Caching. Der verteilte Cache unterstützt die folgenden Komprimierungsformate:

• zip• tgz• tar.gz• tar• jar

Location of Cached Files

Der verteilte Cache kopiert Dateien ausschließlich zu Core-Knoten. Wenn es im Cluster keine Core-Knotengibt, kopiert der verteilte Cache die Dateien zum Master-Knoten.

Der verteilte Cache weist die Cache-Dateien dem aktuellen Arbeitsverzeichnis des Mappers und Reducersmithilfe von symbolischen Links zu. Ein symbolischer Link (symlink) ist ein Alias für einen Dateispeicherort,nicht der tatsächliche Speicherort. Der Wert des Parameters, yarn.nodemanager.local-dirs inyarn-site.xml, gibt den Ort der temporären Dateien an. Amazon EMR setzt diesen Parameter auf /mnt/mapred, oder einige Variation basierend auf Instanztyp und EMR-Version. Eine Einstellung kanndie Werte /mnt/mapred und /mnt1/mapred haben, da der Instance-Typ über zwei flüchtige Volumesverfügt. Cache-Dateien befinden sich in einem Unterverzeichnis des Speicherorts für temporäre Dateienunter /mnt/mapred/taskTracker/archive.

Wenn Sie eine einzelne Datei zwischenspeichern wird sie über den verteilten Cache im Verzeichnisarchive abgelegt. Wenn Sie ein Archiv zwischenspeichern, wird sie vom verteilten Cache dekomprimiertund es wird ein Unterverzeichnis in /archive mit demselben Namen wie das Archiv erstellt. Die einzelnenDateien befinden sich im neuen Unterverzeichnis.

Sie können den verteilten Cache nur bei Verwendung von Streaming verwenden.

Access Cached Files From Streaming Applications

Um aus Ihren Mapper- oder Reducer-Anwendungen auf die zwischengespeicherten Dateien zugreifenzu können, müssen Sie Ihrem Anwendungspfad das aktuelle Arbeitsverzeichnis (./) hinzufügen und diezwischengespeicherten Dateien so referenzieren, als würden sie sich im aktuellen Arbeitsverzeichnisbefinden.

Access Cached Files From Streaming Applications Using the Amazon EMR Console

Sie können die Amazon EMR-Konsole zum Erstellen von Clustern verwenden, die den verteilten Cachenutzen.

So geben Sie verteilte Cache-Dateien mithilfe der Konsole an

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.

62

Page 70: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePrepare Input Data

2. Wählen Sie Create cluster aus.3. Wählen Sie Step execution (Schrittausführung) als Startmodus aus.4. Wählen Sie im Abschnitt Steps (Schritte) im Feld Add step (Schritt hinzufügen) in der Liste die Option

Streaming program (Streaming-Programm) aus. Klicken Sie anschließend auf Configure and add(Konfigurieren und hinzufügen).

5. Geben Sie im Feld Arguments (Argumente) die Dateien und Archive an, die im Cache gespeichertwerden sollen. Klicken Sie anschließend auf Add (Hinzufügen).

Die Größe der Datei (oder Gesamtgröße der Dateien in einer Archivdatei) muss geringer sein als diezugewiesene Cachegröße.

WennSie …

Aktion: , Beispiel.

HinzufügeneinereinzelnenDateizumverteiltenCache

Geben Sie -cacheFilegefolgt von demNamen und Speicherortder Datei, demRautenzeichen (#) unddann dem Namen an,den Sie der Datei gebenmöchten, wenn sie imlokalen Cache abgelegtwird.

–cacheFile \s3://bucket_name/file_name#cache_file_name

HinzufügeneinerArchivdateizumverteiltenCache

Geben Sie -cacheArchive gefolgtvom Speicherort derDateien in Amazon S3,dem Rautenzeichen(#) und dann demNamen ein, den Sie derSammlung von Dateienim lokalen Cache gebenmöchten.

–cacheArchive \s3://bucket_name/archive_name#cache_archive_name

6. Fahren Sie mit dem Konfigurieren und Starten Ihres Clusters fort. Vor der Verarbeitung von Cluster-Schritten kopiert Ihr Cluster die Dateien in den Cache-Standort.

Access Cached Files From Streaming Applications Using the AWS CLI

Sie können die CLI zum Erstellen von Clustern verwenden, die den verteilten Cache nutzen.

So geben Sie verteilte Cache-Dateien mithilfe der AWS CLI an

• Um einen Streaming-Schritt beim Erstellen eines Clusters zu senden, geben Sie den Befehl create-cluster mit dem Parameter --steps ein. Um verteilte Cache-Dateien mit der AWS CLI anzugeben,legen Sie die entsprechenden Argumente beim Senden eines Streaming-Schritts fest.

Wenn Sie … Hinzufügen des folgenden Parameters zum Cluster ...

Hinzufügen einer einzelnenDatei zum verteilten Cache

Geben Sie -cacheFile gefolgt von dem Namen und Speicherort derDatei, dem Rautenzeichen (#) und dann dem Namen an, den Sie derDatei geben möchten, wenn sie im lokalen Cache abgelegt wird.

63

Page 71: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePrepare Input Data

Wenn Sie … Hinzufügen des folgenden Parameters zum Cluster ...

Hinzufügen einerArchivdatei zum verteiltenCache

Geben Sie -cacheArchive gefolgt vom Speicherort der Dateien inAmazon S3, dem Rautenzeichen (#) und dann dem Namen ein, denSie der Sammlung von Dateien im lokalen Cache geben möchten.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Example 1.

Geben Sie den folgenden Befehl zum Starten eines Clusters und zum Senden eines Streaming-Schritts ein,der -cacheFile zum Hinzufügen einer Datei, sample_dataset_cached.dat, zum Cache verwendet.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheFile","s3://my_bucket/sample_dataset.dat#sample_dataset_cached.dat"]

Wenn Sie die Instance-Anzahl ohne den Parameter --instance-groups angeben, wird ein einzelnerMaster-Knoten gestartet. Die verbleibenden Instances werden dabei als Core-Knoten gestartet. Alle Knotenverwenden den im Befehl angegebenen Instance-Typ.

Wenn Sie zuvor nicht die standardmäßige EMR-Servicerolle und das EC2-Instance-Profil erstellt haben,geben Sie "aws emr create-default-roles" ein, um sie zu erstellen, bevor Sie den Unterbefehlcreate-cluster eingeben.

Example 2.

Der folgende Befehl erstellt einen Streaming-Cluster und verwendet -cacheArchive, um dem Cache einDateiarchiv hinzuzufügen.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --steps Type=STREAMING,Name="Streaming program",ActionOnFailure=CONTINUE,Args=["--files","s3://my_bucket/my_mapper.py s3://my_bucket/my_reducer.py","-mapper","my_mapper.py","-reducer","my_reducer.py,"-input","s3://my_bucket/my_input","-output","s3://my_bucket/my_output", "-cacheArchive","s3://my_bucket/sample_dataset.tgz#sample_dataset_cached"]

Wenn Sie die Instance-Anzahl ohne den Parameter --instance-groups angeben, wird ein einzelnerMaster-Knoten gestartet. Die verbleibenden Instances werden dabei als Core-Knoten gestartet. Alle Knotenverwenden den im Befehl angegebenen Instance-Typ.

Wenn Sie zuvor nicht die standardmäßige EMR-Servicerolle und das EC2-Instance-Profil erstellt haben,geben Sie "aws emr create-default-roles" ein, um sie zu erstellen, bevor Sie den Unterbefehlcreate-cluster eingeben.

How to Process Compressed FilesHadoop überprüft die Dateierweiterung zur Erkennung von komprimierten Dateien. FolgendeKomprimierungstypen werden von Hadoop unterstützt: gzip, bzip2 und LZO. Sie müssen keine zusätzlichenSchritte ausführen, um Dateien dieser Komprimierungstypen zu extrahieren, da Hadoop diesen Vorgang fürSie erledigt.

64

Page 72: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure an Output Location

Zum Indizieren von LZO-Dateien können Sie die Hadoop-lzo-Bibliothek verwenden, die Sie unter https://github.com/kevinweil/hadoop-lzoherunterladen können. Beachten Sie, dass es sich um eine Drittanbieter-Bibliothek handelt. Amazon EMR bietet daher keinen Developer-Support zur Verwendung dieses Tools.Informationen zur Nutzung finden Sie in der Readme-Datei für hadoop-lzo.

Import DynamoDB Data into Hive

Die von Amazon EMR bereitgestellte Hive-Implementierung enthält Funktionalität, die Sie zum Importierenund Exportieren von Daten zwischen DynamoDB und einem Amazon EMR-Cluster verwenden können.Dies ist nützlich, wenn Ihre Eingabedaten in DynamoDB gespeichert sind. Weitere Informationen finden Sieunter Exportieren, Importieren, Abfragen und Verknüpfen von Tabellen in DynamoDB mit Amazon EMR.

Connect to Data with AWS DirectConnect

AWS Direct Connect ist ein Service, den Sie verwenden können, um eine private, dedizierteNetzwerkverbindung mit AWS von Ihrem Rechenzentrum, Büro oder einer Co-Location-Umgebungherzustellen. Bei großen Eingabedatenmengen können Sie mit AWS Direct Connect Netzwerkkostenreduzieren und den Bandbreitendurchsatz steigern. Außerdem entsteht dadurch eine konsistentereNetzwerkfunktionalität als mit internetbasierten Verbindungen. Weitere Informationen finden Sie unter AWSDirect Connect-Benutzerhandbuch.

Upload Large Amounts of Data with AWS Import/Export

AWS Import/Export ist ein Service für die Übertragung großer Mengen von Daten aus physischenSpeichergeräten zu AWS. Sie senden Ihre portablen Speichergeräte an AWS. Anschließendüberträgt AWS Import/Export die Daten direkt von Ihren Speichergeräten über das interneHochgeschwindigkeitsnetzwerk von Amazon. Das Laden Ihrer Daten beginnt nach Eingang IhresSpeichergeräts bei AWS in der Regel am nächsten Geschäftstag. Nach Abschluss des Datenim-oder -exports senden wir Ihnen Ihr Speichergerät zurück. Bei großen Datenmengen ist die AWS-Datenübertragung oftmals wesentlich schneller als die Übertragung per Internet und kostengünstiger alseine Beschleunigung Ihrer Internetverbindung. Weitere Informationen finden Sie unter AWS Import/ExportDeveloper Guide.

Configure an Output LocationDas häufigste Ausgabeformat eines Amazon EMR-Clusters sind Textdateien, und zwar entwederkomprimiert oder nicht komprimiert. Diese Dateien werden in der Regel in einen Amazon S3-Bucketgeschrieben. Dieser Bucket muss erstellt werden, bevor Sie den Cluster starten. Sie geben den S3-Bucketals Ausgabespeicherort an, wenn Sie den Cluster starten.

Mit AWS können Sie Gesundheitsdaten, darunter geschützte patientenbezogene Daten (protected healthinformation, PHI), im Rahmen eines abgeschlossenen Geschäftspartnervertrags (Business AssociateAgreement, BAA) speichern.

Themen• Create and Configure an Amazon S3 Bucket (p. 65)• What formats can Amazon EMR return? (p. 67)• So schreiben Sie Daten in einen Amazon S3-Bucket, für den Sie keine Rechte haben (p. 67)• Compress the Output of your Cluster (p. 69)

Create and Configure an Amazon S3 BucketAmazon EMR (Amazon EMR) verwendet Amazon S3, um Eingabedaten, Log-Dateien und Ausgabedatenzu speichern. Amazon S3 bezeichnet diese Speicherorte als Buckets. Buckets haben in Übereinstimmungmit den Amazon S3- und DNS-Anforderungen bestimmte Einschränkungen und Bedingungen. Weitere

65

Page 73: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure an Output Location

Informationen finden Sie unter Bucket-Einschränkungen und -Limits im Amazon Simple Storage Service-Entwicklerhandbuch.

In diesem Abschnitt wird die Verwendung der Amazon S3-AWS Management Console zur Erstellung vonAmazon S3-Buckets und zur Festlegung von Berechtigungen für diese gezeigt. Sie können jedoch auch dieAmazon S3-API oder das Curl-Befehlszeilen-Tool eines Drittanbieters verwenden, um Berechtigungen fürAmazon S3-Buckets zu erstellen und festzulegen. Weitere Informationen zur Erstellung und Konfigurationvon Amazon S3-Buckets mithilfe von Amazon S3-API finden Sie unter Amazon Simple Storage Service APIReference.

Erstellen Sie einen Amazon S3 Bucket mithilfe der Konsole wie folgt:

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon S3-Konsole unterhttps://console.aws.amazon.com/s3/.

2. Klicken Sie auf Create Bucket.

Das Dialogfeld Create a Bucket (Bucket erstellen) wird angezeigt.3. Geben Sie einen Bucket-Namen ein, beispielsweise DOC-EXAMPLE-BUCKET1.

Dieser Name sollte einzigartig sein, und nicht gleichzeitig für einen anderen Bucket verwendet werden.4. Wählen Sie die Region für den Bucket aus. Um regionsübergreifende Bandbreitengebühren zu

vermeiden, sollten Sie den Amazon S3-Bucket in derselben Region wie Ihren Cluster erstellen.

Eine Anleitung zur Auswahl von Regionen finden Sie unter Choose an AWS Region (p. 52).5. Wählen Sie Create aus.

Sie haben einen Bucket mit dem URI s3n://DOC-EXAMPLE-BUCKET1/ erstellt.Note

Wenn Sie im Create a Bucket (Bucket erstellen)-Assistenten das Protokollieren aktivieren, werdennur Bucket-Zugriffsprotokolle aktiviert, keine Cluster-Protokolle.Note

Weitere Informationen zur Angabe regionsspezifischer Buckets finden Sie unter Buckets undRegionen im Amazon Simple Storage Service-Entwicklerhandbuch und unter VerfügbareRegionsendpunkte für die AWS-SDKs.

Nachdem Sie Ihren Bucket erstellt haben, können Sie die entsprechenden Zugriffsberechtigungenhierzu einrichten. Hierbei sollten Sie sich selbst (als Eigentümer) Lese- und Schreibzugriff und anderenautorisierten Benutzern Lesezugriff erteilen.

Einrichten von Zugriffsberechtigungen für einen Amazon S3-Bucket mithilfe der Konsole

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon S3-Konsole unterhttps://console.aws.amazon.com/s3/.

2. Klicken Sie im Bereich Buckets mit der rechten Maustaste auf den Bucket, den Sie zuvor erstellthaben.

3. Wählen Sie Properties (Eigenschaften) aus.4. Wählen Sie im Bereich Properties (Eigenschaften) die Registerkarte Permissions

(Zugriffsberechtigungen) aus.5. Wählen Sie Add more permissions (Mehr Zugriffsberechtigungen hinzufügen) aus.6. Wählen Sie im Feld Grantee (Berechtigter) die Option Authenticated Users (Authentifizierte Benutzer)

aus.7. Wählen Sie rechts neben der Dropdown-Liste Grantee (Berechtigter) die Option List (Auflisten) aus.8. Wählen Sie Save aus.

66

Page 74: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure an Output Location

Sie haben einen Bucket erstellt und den Zugriff auf authentifizierte Benutzer beschränkt.

Erforderliche Amazon S3-Buckets müssen vorhanden sein, bevor Sie einen Cluster erstellen können. Siemüssen alle erforderlichen Skripte und Daten auf Amazon S3 hochladen, auf die im Cluster verwiesenwird. In der folgenden Tabelle werden Beispiele für Speicherorte für Daten, Skripte und Log-Dateienbeschrieben.

Informationen Beispiel-Speicherort auf Amazon S3

Skript oderProgramm

s3://DOC-EXAMPLE-BUCKET1/script/MapperScript.py

Log-Dateien s3://DOC-EXAMPLE-BUCKET1/logs

Eingabedaten s3://DOC-EXAMPLE-BUCKET1/input

Ausgabedaten s3://DOC-EXAMPLE-BUCKET1/output

What formats can Amazon EMR return?Das Standardausgabeformat für einen Cluster ist Text mit Schlüssel-Wert-Paaren, die in einzelne Zeilender Textdateien geschrieben werden. Dies ist das am häufigsten verwendete Ausgabeformat.

Wenn Ihre Ausgabedaten in einem anderen Format geschrieben werden müssen als Standardtextdateien,können Sie die Hadoop-Benutzeroberfläche OutputFormat verwenden, um andere Ausgabetypenanzugeben. Sie können auch eine Unterklasse der FileOutputFormat-Klasse für den Umgangmit benutzerdefinierten Datentypen verwenden. Weitere Informationen finden Sie unter http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/OutputFormat.html.

Wenn Sie einen Hive-Cluster starten, können Sie einen Serializer/Deserializer (SerDe) verwenden, umDaten von HDFS in einem bestimmten Format auszugeben. Weitere Informationen finden Sie unter https://cwiki.apache.org/confluence/display/Hive/SerDe.

So schreiben Sie Daten in einen Amazon S3-Bucket, für den Siekeine Rechte habenWenn Sie eine Datei in einen Amazon Simple Storage Service (Amazon S3)-Bucket schreiben, könnenstandardmäßig nur Sie die Datei lesen. Es wird davon ausgegangen, dass Sie Dateien in Ihre Bucketsschreiben. Diese Standardeinstellung dient dem Schutz Ihrer Dateien.

Wenn Sie jedoch einen Cluster ausführen und die Ausgabe in den Amazon S3-Bucket eines anderenAWS-Benutzers schreiben und dieser AWS-Benutzer diese Ausgaben lesen können soll, müssen Sie zweiVorgänge ausführen:

• Der andere AWS-Benutzer muss Ihnen Schreibberechtigungen für den Amazon S3-Bucket erteilen.Der Cluster, den Sie starten, wird unter Ihren AWS-Anmeldeinformationen ausgeführt. Somit kann jederCluster, den Sie starten, ebenfalls in den Bucket des anderen AWS-Benutzers schreiben.

• Legen Sie die Leseberechtigungen für die Dateien, die Sie oder die Cluster in den Amazon S3-Bucketschreiben, für andere AWS-Benutzer fest. Diese Leseberechtigungen können Sie am einfachstenfestlegen, indem Sie vordefinierte Zugriffskontrolllisten (Access Control Lists, ACLs), also Sätze vonvordefinierten Zugriffsrichtlinien verwenden, die von Amazon S3 festgelegt werden.

Weitere Informationen dazu, wie andere AWS-Benutzer Ihnen Berechtigungen zum Schreiben von Dateienzu ihren Amazon S3-Buckets erteilen können, finden Sie unter Bearbeiten von Bucket-Berechtigungen imKonsolenbenutzerhandbuch für Amazon Simple Storage Service.

67

Page 75: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure an Output Location

Damit Ihr Cluster beim Schreiben von Dateien in Amazon S3 vordefinierte ACLs verwendet, legen Sie dieCluster-Konfigurationsoption fs.s3.canned.acl auf die vordefinierte ACL fest, die verwendet werdensoll. In der folgenden Tabelle sind die derzeit festgelegten vordefinierten ACLs aufgeführt.

Vordefinierte ACL Description (Beschreibung)

AuthenticatedRead Gibt an, dass dem Eigentümer Permission.FullControlund dem Berechtigungsempfänger der GruppeGroupGrantee.AuthenticatedUsers der ZugriffPermission.Read gewährt wird.

BucketOwnerFullControl Gibt an, dass der Eigentümer des Buckets gewährt wirdPermission.FullControl. Der Eigentümer des Bucketsist nicht unbedingt identisch mit dem Eigentümer des Objekts.

BucketOwnerRead Gibt an, dass der Eigentümer des Buckets gewährt wirdPermission.Read. Der Eigentümer des Buckets ist nichtunbedingt identisch mit dem Eigentümer des Objekts.

LogDeliveryWrite Gibt an, dass dem Eigentümer Permission.FullControlund dem Berechtigungsempfänger der GruppeGroupGrantee.LogDelivery der ZugriffPermission.Write gewährt wird, damit Zugriffsprotokollebereitgestellt werden können.

Private Gibt an, dass dem Eigentümer Permission.FullControlgewährt wird.

PublicRead Gibt an, dass dem Eigentümer Permission.FullControlund dem Berechtigungsempfänger der GruppeGroupGrantee.AllUsers der Zugriff Permission.Readgewährt wird.

PublicReadWrite Gibt an, dass dem Eigentümer Permission.FullControlund dem Berechtigungsempfänger der GruppeGroupGrantee.AllUsers die ZugriffsberechtigungenPermission.Read und Permission.Write gewährt wird.

Die Cluster-Konfigurationsoptionen können auf vielfältige Weise festgelegt werden, je nach Typ desausgeführten Clusters. Die folgenden Verfahren zeigen die Festlegung der Option für allgemeineAnwendungsfälle.

So schreiben Sie Dateien mithilfe vorgefertigter ACLs in Hive

• Legen Sie in der Hive-Eingabeaufforderung die Konfigurationsoption fs.s3.canned.acl auf dievordefinierte ACL fest, die der Cluster für zu Amazon S3 geschriebene Dateien festlegen soll. StellenSie für den Zugriff auf die Hive-Eingabeaufforderung eine Verbindung mit dem Master-Knoten überSSH her und geben Sie an der Hadoop-Eingabeaufforderung "Hive" ein. Weitere Informationen findenSie im Verbinden mit dem Master-Knoten über SSH (p. 385).

Im folgenden Beispiel wird die Konfigurationsoption fs.s3.canned.acl aufBucketOwnerFullControl festgelegt. Dadurch erhält der Eigentümer des Amazon S3-Bucketsvollständige Kontrolle über die Datei. Beachten Sie: Der Festlegungsbefehl erfordert die Beachtung derGroß- und Kleinschreibung und enthält keine Anführungszeichen oder Leerzeichen.

hive> set fs.s3.canned.acl=BucketOwnerFullControl;

68

Page 76: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure an Output Location

create table acl (n int) location 's3://acltestbucket/acl/'; insert overwrite table acl select count(*) from acl;

Die beiden letzten Zeilen des Beispiels erstellen eine Tabelle, die in Amazon S3 gespeichert wird, undschreiben Daten in die Tabelle.

So schreiben Sie Dateien mithilfe vorgefertigter ACLs in Pig

• Legen Sie in der Pig-Eingabeaufforderung die Konfigurationsoption fs.s3.canned.acl auf dievordefinierte ACL fest, die der Cluster für zu Amazon S3 geschriebene Dateien festlegen soll. StellenSie für den Zugriff auf die Pig-Eingabeaufforderung eine Verbindung mit dem Master-Knoten über SSHher und geben Sie an der Hadoop-Eingabeaufforderung "Pig" ein. Weitere Informationen finden Sie imVerbinden mit dem Master-Knoten über SSH (p. 385).

Im folgenden Beispiel wird die Konfigurationsoption fs.s3.canned.acl auf BucketOwnerFullControlfestgelegt. Dadurch erhält der Eigentümer des Amazon S3-Buckets vollständige Kontrolle über dieDatei. Beachten Sie: Der Festlegungsbefehl enthält ein Leerzeichen vor dem Namen der vordefiniertenACL und keine Anführungszeichen.

pig> set fs.s3.canned.acl BucketOwnerFullControl; store some data into 's3://acltestbucket/pig/acl';

So schreiben Sie Dateien mithilfe vorgefertigter ACLs in eine Custom JAR

• Legen Sie mit Hadoop die Konfigurationsoption fs.s3.canned.acl mit -D-Flag fest. Das wird imBeispiel unten veranschaulicht.

hadoop jar hadoop-examples.jar wordcount -Dfs.s3.canned.acl=BucketOwnerFullControl s3://mybucket/input s3://mybucket/output

Compress the Output of your ClusterThemen

• Output Data Compression (p. 69)• Intermediate Data Compression (p. 70)• Using the Snappy Library with Amazon EMR (p. 70)

Output Data CompressionDies komprimiert die Ausgabe Ihres Hadoop-Auftrags. Wenn Sie "TextOutputFormat" verwenden, ist dasErgebnis eine im gzip-Format komprimierte Textdatei. Wenn Sie nach "SequenceFiles" schreiben, istdas Ergebnis eine "SequenceFile", die intern komprimiert wird. Dies kann aktiviert werden, indem Sie dieKonfigurationseinstellung "mapred.output.compress" auf "true" setzen.

Wenn Sie einen Streaming-Auftrag ausführen, können Sie dies aktivieren, indem Sie dem Streaming-Auftrag diese Argumente übergeben.

69

Page 77: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuidePlanen und Konfigurieren von Master-Knoten

-jobconf mapred.output.compress=true

Sie können auch mit einer Bootstrap-Aktion alle Auftragsausgaben automatisch komprimieren. So könnenSie dies mit dem Ruby-Client ausführen:

--bootstrap-actions s3://elasticmapreduce/bootstrap-actions/configure-hadoop \--args "-s,mapred.output.compress=true"

Wenn Sie eine Custom Jar schreiben, können Sie die Ausgabekompression mit folgender Zeile bei derErstellung Ihres Auftrags aktivieren:

FileOutputFormat.setCompressOutput(conf, true);

Intermediate Data CompressionWenn Ihr Auftrag eine erhebliche Menge Daten von den Mappern zu den Reducern verlagert, könnenSie eine Leistungsverbesserung durch Aktivierung der intermediären Kompression feststellen. Siekomprimieren die Zuweisungsausgabe und dekomprimieren sie, wenn sie auf dem Core-Knoten eingeht.Die Konfigurationseinstellung ist "mapred.compress.map.output". Sie können sie ähnlich wie dieAusgabekompression aktivieren.

Wenn Sie eine Custom Jar schreiben, verwenden Sie den folgenden Befehl:

conf.setCompressMapOutput(true);

Using the Snappy Library with Amazon EMRSnappy ist eine Komprimierungs- und Dekomprimierungsbibliothek, die für höhere Geschwindigkeitoptimiert ist. Es ist in Amazon EMR-AMI-Version 2.0 und höher verfügbar und wird standardmäßig fürdie intermediäre Kompression verwendet. Weitere Informationen zu Snappy finden Sie unter http://code.google.com/p/snappy/.

Planen und Konfigurieren von Master-KnotenWenn Sie einen Amazon EMR-Cluster starten, können Sie einen oder drei Master-Knoten in Ihrem Clusterhaben. Das Starten eines Clusters mit drei Master-Knoten wird nur von Amazon EMR Version 5.23.0und höher unterstützt. EMR kann EC2-Platzierungsgruppen nutzen, um sicherzustellen, dass mehrereMaster-Knoten auf unterschiedlicher zugrunde liegender Hardware platziert werden, um die Cluster-Verfügbarkeit weiter zu verbessern. Weitere Informationen finden Sie im EMR-Integration mit EC2-Platzierungsgruppen (p. 78).

Ein EMR-Cluster mit mehreren Masterknoten bietet die folgenden wichtigen Vorteile:

• Der Master-Knoten ist nicht länger eine einzelne Fehlerquelle. Wenn ein Master-Knoten ausfällt,verwendet der Cluster die beiden anderen Master-Knoten und wird ohne Unterbrechung weiterausgeführt. In der Zwischenzeit ersetzt Amazon EMR den ausgefallenen Master-Knoten automatischdurch einen neuen Master-Knoten mit derselben Konfiguration und denselben Bootstrap-Aktionen.

• EMR ermöglicht die Hadoop-Funktionen für hohe Verfügbarkeit von HDFS NameNode und YARNResourceManager und unterstützt die hohe Verfügbarkeit für einige andere Open-Source-Anwendungen.

70

Page 78: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUnterstützte Anwendungen und Funktionen

Weitere Informationen dazu, wie ein EMR-Cluster mit mehreren Masterknoten Open-Source-Anwendungen und weitere EMR-Funktionen unterstützt, finden Sie unter Unterstützte Anwendungen undFunktionen (p. 71).

Note

Der Cluster kann sich nur in einer einzigen Availability Zone oder einem einzigen Subnetzbefinden.

Dieser Abschnitt enthält Informationen zu den unterstützten Anwendungen und Funktionen eines EMR-Cluster mit mehreren Masterknoten sowie Konfigurationsdetails, bewährte Methoden und Überlegungenzum Starten des Clusters.

Themen• Unterstützte Anwendungen und Funktionen (p. 71)• Starten von EMR-Clustern mit mehreren Master-Knoten (p. 76)• EMR-Integration mit EC2-Platzierungsgruppen (p. 78)• Überlegungen und bewährte Methoden (p. 81)

Unterstützte Anwendungen und FunktionenIn diesem Thema finden Sie Informationen zu den Hadoop-Funktionen für hohe Verfügbarkeit von HDFSNameNode und YARN ResourceManager in einem EMR-Cluster sowie zur Funktionsweise der Funktionenfür hohe Verfügbarkeit mit Open-Source-Anwendungen und anderen EMR-Funktionen.

Hohe Verfügbarkeit – HDFSEin EMR-Cluster mit mehreren Masterknoten aktiviert die HDFS-NameNode-Hochverfügbarkeitsfunktion inHadoop. Weitere Informationen finden Sie unter HDFS – hohe Verfügbarkeit.

In einem EMR-Cluster wird NameNode nur auf zwei der drei Master-Knoten ausgeführt. Ein NameNodebefindet sich in einem active-Zustand und das andere in einem standby-Zustand. Wenn der Master-Knoten mit active NameNode ausfällt, startet EMR einen automatischen HDFS-Failover-Prozess. DerMaster-Knoten mit standby NameNode wird zu active und übernimmt alle Client-Operationen imCluster. EMR ersetzt den ausgefallenen Master-Knoten durch einen neuen Master-Knoten mit dem Zustandstandby.

Wenn Sie herausfinden müssen, welche NameNode ist, können Sie sich über SSH mit einem beliebigenMaster-Knoten im Cluster verbinden und den folgenden Befehl ausführen:active

hdfs haadmin -getAllServiceState

Die Ausgabe listet die beiden Knoten auf, auf denen NameNode installiert ist, und deren Status. EinBeispiel:

ip-##-#-#-##1.ec2.internal:8020 activeip-##-#-#-##2.ec2.internal:8020 standby

Hohe Verfügbarkeit YARN ResourceManagerEin EMR-Cluster mit mehreren Masterknoten aktiviert die Funktion für hohe Verfügbarkeit von YARNResourceManager in Hadoop. Weitere Informationen finden Sie unter ResourceManagerHoheVerfügbarkeit.

71

Page 79: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUnterstützte Anwendungen und Funktionen

In einer EMR-Cluster mit mehreren Masterknoten wird YARN ResourceManager auf allen drei Master-Knoten ausgeführt. Ein ResourceManager befindet sich im Status active und die anderen beidenbefinden sich im Status standby. Wenn der Master-Knoten mit active ResourceManager ausfällt, startetEMR einen automatischen Failover-Prozess. Ein Master-Knoten mit einem standby ResourceManagerübernimmt alle Operationen. EMR ersetzt den ausgefallenen Master-Knoten durch einen neuen Master-Knoten, der dann wieder dem ResourceManager-Quorum als standby beitritt.

Sie können eine Verbindung mit "http://" herstellen.master-public-dns-name:8088/Cluster“ für jedenMaster-Knoten aus, der Sie automatisch zum active-Ressourcenmanager weiterleitet. Um zu ermitteln,welcher ResourceManager den Zustand active hat, verwenden Sie SSH, um eine Verbindung mit einemMaster-Knoten im Cluster herzustellen. Führen Sie anschließend den folgenden Befehl aus, um die Listeder drei Master-Knoten und deren Status abzurufen:

yarn rmadmin -getAllServiceState

Unterstützte Anwendungen in einem EMR-Cluster mit mehrerenMaster-KnotenSie können auf einem EMR-Cluster mit mehreren Masterknoten die folgenden Anwendungen installierenund ausführen. Für jede Anwendung variiert der Failover-Prozess des Master-Knotens.

Anwendung Verfügbarkeit während Failoverfür den Master-Knoten

Hinweise

Flink Verfügbarkeit nicht nicht durchFailover für den Master-Knotenbetroffen

Flink-Aufträge auf Amazon EMR werden als YARN-Anwendungen ausgeführt. Die JobManagers vonFlink werden als ApplicationMasters von YARNauf Core-Knoten ausgeführt. Der Failover-Prozessfür den Master-Knoten wirkt sich nicht auf dieJobManager aus.

Wenn Sie Amazon EMR Version 5.27.0 oderfrüher verwenden, ist JobManager eine einzelneFehlerquelle. Wenn der JobManager fehlschlägt,gehen alle Auftragsstatus verloren und dielaufenden Aufträge werden nicht fortgesetzt.Sie können die hohe Verfügbarkeit vonJobManager aktivieren, indem Sie die Anzahlder Anwendungsversuche sowie Checkpointingkonfigurieren und ZooKeeper als Zustandsspeicherfür Flink aktivieren. Weitere Informationen findenSie unter Konfigurieren von Flink auf einem EMR-Cluster mit mehreren Masterknoten.

Ab Amazon EMR-Version 5.28.0 ist keinemanuelle Konfiguration erforderlich, um die hoheVerfügbarkeit von JobManager zu ermöglichen.

Ganglia Verfügbarkeit nicht nicht durchFailover für den Master-Knotenbetroffen

Ganglia ist auf allen Master-Knoten verfügbar.Daher kann Ganglia während des Failover-Prozesses für den Master-Knoten weiter ausgeführtwerden.

Hadoop Hohe Verfügbarkeit HDFS NameNode und YARN ResourceManagerführen automatisch einen Failover auf den

72

Page 80: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUnterstützte Anwendungen und Funktionen

Anwendung Verfügbarkeit während Failoverfür den Master-Knoten

Hinweise

Standby-Knoten durch, wenn der aktive Master-Knoten ausfällt.

HBase Hohe Verfügbarkeit HBase führt automatisch einen Failover auf denStandby-Knoten durch, wenn der aktive Master-Knoten ausfällt.

Wenn Sie eine Verbindung mit HBase über einenREST- oder Thrift-Server herstellen, müssen Sie zueinem anderen Master-Knoten wechseln, wenn deraktive Master-Knoten ausfällt.

HCatalog Verfügbarkeit nicht nicht durchFailover für den Master-Knotenbetroffen

HCatalog basiert auf dem Hive-Metastore, der sichaußerhalb des Clusters befindet. HCatalog bleibtwährend des Failover-Prozesses für den Master-Knoten verfügbar.

JupyterHub Hohe Verfügbarkeit JupyterHub ist auf allen drei Master-Instancesinstalliert. Es wird dringend empfohlen, dieNotebook-Persistenz zu konfigurieren, umNotebookverlust bei einem Ausfall des Master-Knotens zu verhindern. Weitere Informationenfinden Sie unter Konfigurieren von Persistenz fürNotebooks in Amazon S3.

Livy Hohe Verfügbarkeit Livy wird auf allen drei Master-Knoten installiert.Bei einem Ausfall des aktiven Master-Knotensverlieren Sie den Zugriff auf die aktuelle Livy-Sitzung und müssen eine neue Livy-Sitzung aufeinem anderen Master-Knoten oder auf dem neuenErsatzknoten erstellen.

Mahout Verfügbarkeit nicht nicht durchFailover für den Master-Knotenbetroffen

Da Mahout keinen Daemon besitzt, hat derFailover-Prozess für den Master-Knoten keineAuswirkungen.

MXNet Verfügbarkeit nicht nicht durchFailover für den Master-Knotenbetroffen

Da MXNet keinen Daemon besitzt, hat derFailover-Prozess für den Master-Knoten keineAuswirkungen.

Phoenix Hohe Verfügbarkeit Phoenix' QueryServer wird nur auf einem derdrei Master-Knoten ausgeführt. Phoenix ist aufallen drei Mastern konfiguriert, um die Phoenix-QueryServer zu verbinden. Sie können die privateIP des Phoenix-Abfrageservers mithilfe der Datei /etc/phoenix/conf/phoenix-env.sh suchen.

Pig Verfügbarkeit nicht nicht durchFailover für den Master-Knotenbetroffen

Da Pig keinen Daemon besitzt, hat derFailover-Prozess für den Master-Knoten keineAuswirkungen.

Spark Hohe Verfügbarkeit Alle Spark-Anwendungen werden in YARN-Containern ausgeführt und reagieren aufden Failover-Prozess für einen Master-Knoten auf die gleiche Weise wie YARN-Hochverfügbarkeitsfunktionen.

73

Page 81: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUnterstützte Anwendungen und Funktionen

Anwendung Verfügbarkeit während Failoverfür den Master-Knoten

Hinweise

Sqoop Hohe Verfügbarkeit Standardmäßig speichern sqoop-job und sqoop-metastore Daten (Auftragsbeschreibungen) aufder lokalen Festplatte des Masters, der den Befehlausführt. Wenn Sie Metastore-Daten in einerexternen Datenbank speichern möchten, schlagenSie bitte in der Apache Sqoop-Dokumentationnach.

Tez Hohe Verfügbarkeit Da Tez Container auf YARN ausgeführt werden,verhält sich Tez während des Failover-Prozessesfür den Master-Knoten wie YARN.

TensorFlow Verfügbarkeit nicht nicht durchFailover für den Master-Knotenbetroffen

Da TensorFlow keinen Daemon besitzt, hat derFailover-Prozess für den Master-Knoten keineAuswirkungen.

Zeppelin Hohe Verfügbarkeit Zeppelin wird auf allen drei Master-Knoteninstalliert. Zeppelin speichert Notizen undInterpreterkonfigurationen standardmäßigin HDFS, um Datenverlust zu verhindern.Interpretersitzungen sind über alle drei Master-Instances vollständig isoliert. Sitzungsdaten gehenbeim Master-Ausfall verloren. Es wird empfohlen,dieselbe Notiz nicht gleichzeitig auf verschiedenenMaster-Instances zu ändern.

ZooKeeper Hohe Verfügbarkeit ZooKeeper bildet die Grundlage der automatischenHDFS-Failover-Funktion. ZooKeeper bietet einenhochverfügbaren Service für die Verwaltung undKoordination von Daten, die Benachrichtigung vonClients über Änderungen an diesen Daten unddie Überwachung von Clients auf Fehler. WeitereInformationen finden Sie unter HDFS-Funktion fürautomatische Failover.

Um die folgenden Anwendungen in einem EMR-Cluster mit mehreren Master-Knoten auszuführen,müssen Sie eine externe Datenbank konfigurieren. Die externe Datenbank befindet sich außerhalb desClusters. Daher sind Daten während des Failover-Prozesses für den Master-Knoten persistent. Für diefolgenden Anwendungen werden die Servicekomponenten während des Master-Knoten-Failoverprozessesautomatisch wiederhergestellt, aktive Aufträge können jedoch fehlschlagen und müssen erneut versuchtwerden.

Anwendung Verfügbarkeit während Failoverfür den Master-Knoten

Hinweise

Hive Hohe Verfügbarkeit, jedochausschließlich für Service-Komponenten

Ein externer Metastore für Hive ist erforderlich.Weiter Informationen finden Sie unter Konfiguriereneines externen Metastores für Hive.

Hue Hohe Verfügbarkeit, jedochausschließlich für Service-Komponenten

Eine externe Datenbank für Hue ist erforderlich.Weitere Informationen finden Sie unter Verwendenvon Hue mit einer Remote-Datenbank in AmazonRDS.

74

Page 82: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUnterstützte Anwendungen und Funktionen

Anwendung Verfügbarkeit während Failoverfür den Master-Knoten

Hinweise

Oozie Hohe Verfügbarkeit, jedochausschließlich für Service-Komponenten

Eine externe Datenbank für Oozie ist erforderlich.Weitere Informationen finden Sie unter Verwendenvon Oozie mit einer Remote-Datenbank in AmazonRDS.

oozie-server wird auf nur einem Master-Knoteninstalliert, während oozie-client auf allen dreiMaster-Knoten installiert wird. Die oozie-clientssind so konfiguriert, dass sie standardmäßigeine Verbindung mit dem richtigen oozie-serverherstellen. Sie können den privaten DNS-Namendes Master-Knotens finden, auf dem oozie-serverinstalliert ist, indem Sie die Variable OOZIE_URLauf einem beliebigen Master-Knoten in der Datei/etc/oozie/conf.dist/oozie-client-env.sh überprüfen.

PrestoDB–oder–PrestoSQL

Hohe Verfügbarkeit, jedochausschließlich für Service-Komponenten

Ein externer Hive-Metastore für PrestoDB (oderfür PrestoSQL auf emr-6.1.0 und höher) isterforderlich. Sie können Presto mit dem AWS Glue-Datenkatalog oder eine externe MySQL-Datenbankfür Hive verwenden.

Note

Beim Ausfall eines Master-Knotens wird die Verbindung Ihrer Java Database Connectivity (JDBC)oder Open Database Connectivity (ODBC) mit dem Master-Knoten beendet. Sie können eineVerbindung mit einem der verbleibenden Master-Knoten herstellen und Ihre Arbeit fortsetzen, dader Hive-Metastore-Daemon auf allen Master-Knoten ausgeführt wird. Sie können auch warten,bis der ausgefallene Master-Knoten ersetzt wird.

So funktionieren EMR-Funktionen in einem Cluster mit mehrerenMaster-KnotenHerstellen von Verbindungen mit Master-Knoten über SSH

Sie können mit jedem der drei Master-Knoten in einem EMR-Cluster auf die gleiche Art Verbindungenüber SSH herstellen, wie Sie Verbindungen mit einem einzelnen Master-Knoten herstellen. WeitereInformationen finden Sie unter Verbinden mit dem Master-Knoten über SSH.

Beim Ausfall eines Master-Knotens wird Ihre Verbindung mit diesem Master-Knoten beendet. Um IhreArbeit fortzusetzen, können Sie eine Verbindung mit einem der beiden anderen Master-Knoten herstellen.Alternativ können Sie auf den neuen Master-Knoten zugreifen, nachdem EMR den ausgefallenen Master-Knoten durch einen neuen Master-Knoten ersetzt hat.

Note

Die private IP-Adresse des ersetzenden Master-Knotens ist mit der privaten IP-Adresse desvorherigen Master-Knotens identisch. Die öffentliche IP-Adresse des ersetzenden Master-Knotenswird möglicherweise geändert. Sie können die neue IP-Adressen in der Konsole oder über denBefehl describe-cluster in der AWS-CLI abrufen.NameNode läuft nur auf zwei der Master-Knoten. Sie können jedoch hdfs-CLI-Befehle ausführenund Aufgaben ausführen, um auf allen drei Master-Knoten auf HDFS zuzugreifen.

75

Page 83: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStarten von EMR-Clustern mit mehreren Master-Knoten

Arbeiten mit Schritten in einem EMR-Cluster mit mehreren Master-KnotenSie können auf die gleiche Weise, wie Sie in einem Cluster mit einem einzelnen Master-Knoten mitSchritten arbeiten, Schritte an einen EMR-Cluster mit mehreren Masterknoten übermitteln. WeitereInformationen finden Sie unter Übermitteln von Aufträgen an einen Cluster.

Im Folgenden finden Sie Überlegungen für das Arbeiten mit Schritten in einem EMR-Cluster mit mehrerenMasterknoten:

• Beim Ausfall eines Master-Knotens werden die Schritte, die auf dem Master-Knoten ausgeführt werden,als FAILED (fehlgeschlagen) markiert. Alle lokal geschriebenen Daten gehen verloren. Der StatusFAILED gibt jedoch möglicherweise nicht den tatsächlichen Zustand der Schritte wider.

• Wenn ein Schritt, der ausgeführt wurde, als der Master-Knoten ausfiel, eine YARN-Anwendung gestartethatte, kann der Schritt aufgrund des automatischen Failover-Prozesses für den Master-Knoten weiterausgeführt und erfolgreich abgeschlossen werden.

• Sie sollten den Status von Schritten anhand der Ausgaben der Aufgaben überprüfen. Beispielsweiseverwenden MapReduce-Aufträge eine _SUCCESS-Datei, um festzustellen, ob der Auftrag erfolgreichabgeschlossen wurde.

• Es wird empfohlen, den Parameter ActionOnFailure auf CONTINUE oder CANCEL_AND_WAIT anstellevon TERMINATE_JOB_FLOW oder TERMINATE_CLUSTER festzulegen.

Nicht unterstützte Anwendungen in einem EMR-Cluster mit mehreren Master-KnotenDie folgenden EMR-Funktionen sind zurzeit nicht in einem EMR-Cluster mit mehreren Masterknotenverfügbar:

• EMR-Notebooks• Instance-Flotten• Zugriff auf den permanenten Spark History Server mit nur einem Klick• Persistente Anwendungsbenutzeroberflächen

Note

Um in Ihrem Cluster Kerberos-Authentifizierung zu verwenden, müssen Sie einen externen KDCkonfigurieren.Ab Amazon EMR-Version 5.27.0 können Sie die HDFS Transparent-Verschlüsselung auf einemEMR-Cluster mit mehreren Masterknoten konfigurieren. Weitere Informationen finden Sie unterTransparente Verschlüsselung in HDFS in Amazon EMR.

Starten von EMR-Clustern mit mehreren Master-KnotenDieses Thema enthält Konfigurationsdetails und Beispiele für das Starten von EMR-Cluster mit mehrerenMasterknoten.

Prerequisites• Sie können einen EMR-Cluster mit mehreren Masterknoten in öffentlichen und privaten VPC-Subnetzen

starten. EC2-Classic wird nicht unterstützt. Um eine EMR-Cluster mit mehreren Masterknoten in einemöffentlichen Subnetz zu starten, müssen Sie die Instances in diesem Subnetz aktivieren, um eineöffentliche IP-Adresse zu erhalten, indem Sie Auto-assign IPv4 (Automatisch zuweisen) in der Konsoleauswählen oder den folgenden Befehl ausführen. Ersetzen 22XXXX01 durch Ihre Subnetz-ID.

76

Page 84: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStarten von EMR-Clustern mit mehreren Master-Knoten

aws ec2 modify-subnet-attribute --subnet-id subnet-22XXXX01 --map-public-ip-on-launch

• Um Hive, Hue oder Oozie auf einem EMR-Cluster mit mehreren Masterknoten auszuführen, müssen Sieeinen externen Metastore für Hive erstellen. Weitere Informationen finden Sie unter Konfigurieren einesexternen Metastores für Hive, Verwenden von Hue mit einer Remote-Datenbank in Amazon RDS oderApache Oozie.

• Um in Ihrem Cluster Kerberos-Authentifizierung zu verwenden, müssen Sie einen externen KDCkonfigurieren. Weitere Informationen finden Sie unter Konfigurieren von Kerberos auf Amazon EMR.

Starten von EMR-Clustern mit mehreren Master-KnotenSie müssen für die Instance-Gruppe des Master-Knotens den Wert „drei“ für die Zahl der Instancesangeben, wenn Sie einen EMR-Cluster mit mehreren Masterknoten starten. Die folgenden Beispielezeigen, wie Sie den Cluster mit einem Standard- oder benutzerdefinierten AMI starten.

Note

Sie müssen die Subnetz-ID angeben, wenn Sie einen EMR-Cluster mit mehreren Masterknotenmithilfe der AWS CLI starten. Ersetzen 22XXXX01 mit Ihrer Subnetz-ID in den folgendenBeispielen.

Example – Starten einer EMR-Cluster mit mehreren Masterknoten mit einem Standard-AMI

aws emr create-cluster \--name "ha-cluster" \--release-label emr-5.31.0 \--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \--service-role EMR_DefaultRole \--applications Name=Hadoop Name=Spark

Example – Starten einer EMR-Cluster mit mehreren Masterknoten mit einem benutzerdefiniertenAMI

aws emr create-cluster \--name "custom-ami-ha-cluster" \--release-label emr-5.31.0 \--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \--service-role EMR_DefaultRole \--applications Name=Hadoop Name=Spark \--custom-ami-id ami-MyAmiID

Example – Starten einer EMR-Cluster mit mehreren Masterknoten mit einem externen Hive-Metastore

Um Hive auf einem EMR-Cluster mit mehreren Masterknoten auszuführen, müssen Sie einen externenMetastore für Hive angeben wieim folgenden Beispiel gezeigt.

1. Erstellen Sie eine temporäre hiveConfiguration.json-Datei, die Anmeldeinformationen für Ihren Hive-Metastore enthält.

77

Page 85: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideEMR-Integration mit EC2-Platzierungsgruppen

[ { "Classification": "hive-site", "Properties": { "javax.jdo.option.ConnectionURL": "jdbc:mysql:\/\/hostname:3306\/hive?createDatabaseIfNotExist=true", "javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver", "javax.jdo.option.ConnectionUserName": "username", "javax.jdo.option.ConnectionPassword": "password" } }]

2. Starten Sie den Cluster mit dem Hive-Metastore.

aws emr create-cluster \--name "ha-cluster-with-hive-metastore" \--release-label emr-5.31.0 \--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \--service-role EMR_DefaultRole \--applications Name=Hadoop Name= Spark Name=Hive \--configurations ./hiveConfiguration.json

Beenden von EMR-Clustern mit mehreren Master-KnotenUm einen EMR-Cluster mit mehreren Masterknoten zu beenden, müssen Sie vor dem Beendendes Clusters den Beendigungsschutz deaktivieren wie im folgenden Beispiel gezeigt. Ersetzenj-3KVTXXXXXX7UG mit Ihrer Cluster-ID.

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protectedaws emr terminate-clusters --cluster-id j-3KVTXXXXXX7UG

EMR-Integration mit EC2-PlatzierungsgruppenWenn Sie einen Amazon EMR-Cluster mit mehreren Master-Knoten in Amazon EC2 starten, verwendenSie Platzierungsgruppen, um anzugeben, wie Instances bereitgestellt werden sollen, um Schutz vor denAuswirkungen von Hardwareausfällen zu bieten.

Die Platzierungsgruppenfunktion wird für Amazon EMR-Versionen ab 5.23.0 als Option für mehrere Master-Knoten-Cluster unterstützt. Derzeit werden nur Master-Knoten-Typen von der Platzierungsgruppenfunktionunterstützt und die SPREAD-Strategie wird auf diese Master-Knoten angewendet. Die SPREAD-Strategieplatziert eine kleine Gruppe von Instances auf separater zugrunde liegender Hardware, um sich vordem Verlust mehrerer Master-Knoten im Falle eines Hardwareausfalls zu schützen. Beachten Sie,dass eine Instance-Startanforderung fehlschlagen kann, wenn nicht genügend eindeutige Hardwarevorhanden ist, um die Anforderung zu erfüllen. Weitere Informationen zu EC2-Platzierungsstrategien und -Einschränkungen finden Sie unter Platzierungsgruppen im EC2-Benutzerhandbuch für Linux-Instances.

Es gibt ein anfängliches Limit von 500 Platzierungsgruppen, die pro AWS-Konto gestartet werden können.Wenden Sie sich an den AWS Support, um eine Erhöhung der Anzahl der zulässigen Platzierungsgruppenanzufordern. Sie können EC2-Platzierungsgruppen identifizieren, die EMR erstellt, indem Sie die Schlüssel-Wert-Paar-Tags verfolgen, die dem Cluster und der Instance-Gruppe hinzugefügt wurden, die der EMR-Platzierungsgruppe zugeordnet sind. Weitere Informationen zu EC2-Cluster-Instance-Tags finden Sie unterView Cluster Instances in Amazon EC2 (p. 353).

78

Page 86: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideEMR-Integration mit EC2-Platzierungsgruppen

Starten eines EC2-Clusters mit PlatzierungsgruppenstrategieUm einen Amazon EMR-Multi-Master-Cluster innerhalb einer Platzierungsgruppe zu starten, müssen Siebeide der folgenden Schritte ausführen:

• Fügen Sie die verwaltete Richtlinie für die Platzierungsgruppe an die EMR-Rolle an. WeitereInformationen finden Sie im Anfügen der verwalteten Richtlinie für die Platzierungsgruppe an die EMR-Rolle (p. 79).

• Starten Sie einen Amazon EMR-Multi-Master-Cluster mit dem Parameter placement-group-configsüber die EMR-API oder -CLI. Weitere Informationen finden Sie im Verwenden der EMR-API oder CLIzum Aktivieren der Platzierungsgruppenfunktion (p. 79).

Anfügen der verwalteten Richtlinie für die Platzierungsgruppe andie EMR-RolleDie Platzierungsgruppenfunktion erfordert eine verwaltete Richtlinie namensAmazonElasticMapReducePlacementGroupPolicy, damit Amazon EMR Platzierungsgruppen inEC2 erstellen, löschen und beschreiben kann. Die verwaltete Richtlinie muss an die EMR-Rolle angefügtwerden, bevor Sie den Amazon EMR-Cluster starten. Weitere Informationen finden Sie im Service Role forAmazon EMR (EMR Role) (p. 228).

Die von AmazonElasticMapReducePlacementGroupPolicy verwaltete Richtlinie ist der folgende vonAmazon EMR erstellte und verwaltete JSON-Text.

Note

Da die verwaltete Richtlinie AmazonElasticMapReducePlacementGroupPolicy automatischaktualisiert wird, kann die hier gezeigte Richtlinie veraltet sein. Verwenden Sie die AWS-Managementkonsole, um die aktuelle Richtlinie anzuzeigen.

{ "Version": "2012-10-17", "Statement": [ { "Resource": "*", "Effect": "Allow", "Action": [ "ec2:DeletePlacementGroup", "ec2:DescribePlacementGroups" ] }, { "Resource": "arn:aws:ec2:*:*:placement-group/EMR_*", "Effect": "Allow", "Action": [ "ec2:CreatePlacementGroup" ] } ]}

Verwenden der EMR-API oder CLI zum Aktivieren derPlatzierungsgruppenfunktionDiese Beispiele zeigen, wie Sie mit der AWS-CLI oder -API Master-Knoten eines HA-Clusters innerhalbeiner Platzierungsgruppe starten.

79

Page 87: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideEMR-Integration mit EC2-Platzierungsgruppen

Example – Starten eines EMR-Clusters mit einer Platzierungsgruppe mithilfe der EMR CLI.

Das folgende Codebeispiel zeigt die CLI-Befehle zum Starten eines EMR-Clusters mit einerPlatzierungsgruppe.

aws emr create-cluster \--name "ha-cluster" \--placement-group-configs InstanceRole=MASTER \--release-label emr-5.30.1 \--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \--service-role EMR_DefaultRole \--applications Name=Hadoop Name=Spark

• Ersetzen subnet-22XXXX01 durch Ihre Subnetz-ID.• Ersetzen des ec2_key_pair_name durch den Namen Ihres EC2-Schlüsselpaars für diesen Cluster.

Das EC2-Schlüsselpaar ist optional und nur erforderlich, wenn Sie für den Zugriff auf Ihren Cluster SSHverwenden möchten.

• Ersetzen ha-cluster durch den Namen Ihres hochverfügbaren Clusters.

Example – Starten eines EMR-Clusters mit Platzierungsgruppenstrategie unter Verwendung derEMR-API.

Wenn Sie die Aktion RunJobFlow verwenden, um einen Multi-Master-Cluster zu erstellen, setzen Sie dieEigenschaft PlacementGroupConfigs auf Folgendes. Derzeit verwendet die MASTER-Instance-Rolleautomatisch SPREAD als Platzierungsgruppenstrategie.

{ "Name": "ha-cluster", "PlacementGroupConfigs": [{"InstanceRole": "MASTER"}], "ReleaseLabel": "emr-5.30.1", "Instances": { "ec2SubnetId": "subnet-22XXXX01", "ec2KeyName": "ec2_key_pair_name", "InstanceGroups": [{ "InstanceCount": 3, "InstanceRole": "MASTER", "InstanceType": "m5.xlarge" }, { "InstanceCount": 4, "InstanceRole": "CORE", "InstanceType": "m5.xlarge" } ] }, "JobFlowRole": "EMR_EC2_DefaultRole", "ServiceRole": "EMR_DefaultRole"}

• Ersetzen subnet-22XXXX01 durch Ihre Subnetz-ID.• Ersetzen des ec2_key_pair_name durch den Namen Ihres EC2-Schlüsselpaars für diesen Cluster.

Das EC2-Schlüsselpaar ist optional und nur erforderlich, wenn Sie für den Zugriff auf Ihren Cluster SSHverwenden möchten.

• Ersetzen ha-cluster durch den Namen Ihres hochverfügbaren Clusters.

80

Page 88: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜberlegungen und bewährte Methoden

Überlegungen und bewährte MethodenEinschränkungen für einen EMR-Cluster mit mehreren Masterknoten

• Wenn zwei Master-Knoten gleichzeitig ausfallen, kann EMR den Cluster nicht wiederherstellen.• EMR-Cluster mit mehreren Master-Knoten sind gegenüber Ausfällen von Availability Zones nicht tolerant.

Beim Ausfall einer Availability Zone verlieren Sie den Zugriff auf den EMR-Cluster.• EMR garantiert keine Hochverfügbarkeitsfunktionen von Open-Source-Anwendungen, die nicht in

Unterstützte Anwendungen in einem EMR-Cluster mit mehreren Master-Knoten (p. 72) angegebensind.

Überlegungen für das Konfigurieren von Subnetzen:

• Ein EMR-Cluster mit mehreren Masterknoten kann sich jeweils nur in einer einzigen Availability Zoneoder einem einzigen Subnetz befinden. EMR kann einen ausgefallenen Master-Knoten nicht ersetzen,wenn das Subnetz zum Zeitpunkt des Failover-Prozesses vollständig ausgelastet oder überabonniertist. Um dieses Szenario zu vermeiden, sollten Sie für einen Amazon EMR-Cluster ein vollständigesSubnetz reservieren. Darüber hinaus sollten Sie sicherstellen, dass im Subnetz eine ausreichende Zahlvon privaten IP-Adressen verfügbar ist.

Überlegungen für das Konfigurieren von Core-Knoten:

• Um sicherzustellen, dass die Core-Knoten-Instance-Gruppe ebenfalls hoch verfügbar ist, sollten Siemindestens vier Core-Knoten starten. Wenn Sie einen kleineren Cluster mit drei oder weniger Core-Knoten starten möchten, sollten Sie HDFS mit einer ausreichenden DFS-Replikation konfigurieren, indemSie dfs.replication parameter mindestens auf 2 festlegen. Weitere Informationen finden Sie unterHDFS-Konfiguration.

Überlegungen zum Einrichten von Alarmen für Metriken:

• EMR stellt zurzeit keine anwendungsspezifischen Metriken zu HDFS oder YARN bereit. Sie solltenAlarme einrichten, um die Instance-Zahl der Master-Knoten zu überwachen. Sie können die Alarme mitden folgenden CloudWatch-Metriken konfigurieren: MultiMasterInstanceGroupNodesRunning, MultiMasterInstanceGroupNodesRunningPercentage oderMultiMasterInstanceGroupNodesRequested. Sie werden im Falle eines Ausfalls und Ersatzes desMaster-Knotens benachrichtigt. Ein Beispiel:• Wenn MultiMasterInstanceGroupNodesRunningPercentage kleiner als 1,0 und größer als 0,5

ist, ist im Cluster möglicherweise ein Master-Knoten ausgefallen. In diesem Fall versucht EMR, einenMaster-Knoten zu ersetzen.

• Wenn MultiMasterInstanceGroupNodesRunningPercentage kleiner als 0,5 ist, sind im Clustermöglicherweise zwei Master-Knoten ausgefallen. In diesem Fall ist das Quorum verloren und derCluster kann nicht wiederhergestellt werden. Es sind manuelle Eingriffe erforderlich, um Daten ausdiesem Cluster zu migrieren.

Weitere Informationen finden Sie unter Einrichten von Alarmen für Metriken.

EMR-Cluster auf AWS OutpostsAb Amazon EMR Version 5.28.0 können Sie EMR-Cluster erstellen und auf AWS Outposts ausführen.AWS Outposts ermöglicht native AWS-Services, -Infrastrukturen und -Betriebsmodelle in lokalenEinrichtungen. In AWS Outposts-Umgebungen können Sie dieselben AWS-APIs, -Tools und -Infrastrukturverwenden, die Sie in der AWS-Cloud nutzen. Amazon EMR auf AWS Outposts ist ideal für Workloads

81

Page 89: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVoraussetzungen

mit niedriger Latenz, die in unmittelbarer Nähe zu lokalen Daten und Anwendungen ausgeführt werdenmüssen. Weitere Informationen zu AWS Outposts finden Sie im AWS Outposts-Benutzerhandbuch.

VoraussetzungenIm Folgenden sind die Voraussetzungen für die Verwendung von Amazon EMR auf AWS Outpostsaufgeführt:

• AWS Outposts muss in Ihrem lokalen Rechenzentrum installiert und konfiguriert sein.• Sie müssen über eine zuverlässige Netzwerkverbindung zwischen Ihrer Outpost-Umgebung und einer

AWS-Region verfügen.• Sie müssen über ausreichende Kapazität für EMR-unterstützte Instance-Typen in Ihren Outpost

verfügen.

EinschränkungenIm Folgenden sind die Einschränkungen für die Verwendung von Amazon EMR auf AWS Outpostsaufgeführt.

• On-Demand-Instances sind die einzige unterstützte Option für Amazon EC2-Instances. Spot-Instancessind für Amazon EMR auf AWS Outposts nicht verfügbar.

• Wenn Sie zusätzliche Amazon EBS-Speichervolumes benötigen, wird nur GP2 (General Purpose SSD)unterstützt.

• Nur die folgenden Instance-Typen werden von Amazon EMR auf AWS Outposts unterstützt:

Instance-Klasse Instance-Typen

Allgemeine Zwecke m5.xlarge | m5.2xlarge | m5.4xlarge | m5.12xlarge | m5.24xlarge| m5d.xlarge | m5d.2xlarge | m5d.4xlarge | m5d.12xlarge |m5d.24xlarge

Für Datenverarbeitung optimiert c5.xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.18xlarge |c5d.xlarge | c5d.2xlarge | c5d.4xlarge| c5d.9xlarge | c5d.18xlarge

RAM-optimiert r5.xlarge | r5.2xlarge | r5.4xlarge | r5.12xlarge | r5d.xlarge |r5d.2xlarge | r5d.4xlarge | r5d.12xlarge | r5d.24xlarge

Speicheroptimiert i3en.xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge |i3en.12xlarge | i3en.24xlarge

Überlegungen zur Netzwerkkonnektivität• Wenn die Netzwerkverbindung zwischen Ihrem Outpost und seiner AWS-Region verloren geht, werden

Ihre Cluster weiterhin ausgeführt. Sie können jedoch keine neuen Cluster erstellen oder neue Aktionenfür vorhandene Cluster ausführen, bis die Verbindung wiederhergestellt wurde. Bei Instance-Fehlernwird die Instance nicht automatisch ersetzt. Zudem werden Aktionen wie das Hinzufügen von Schrittenzu einem ausgeführten Cluster, das Überprüfen des Schrittausführungsstatus und das Senden vonCloudWatch-Metriken und -Ereignissen verzögert.

• Wir empfehlen, dass Sie für eine zuverlässige und hochverfügbare Netzwerkkonnektivität zwischenIhrem Outpost und der AWS-Region sorgen. Wenn die Netzwerkkonnektivität zwischen Ihrem Outpostund seiner AWS-Region länger als ein paar Stunden unterbrochen wird, werden Cluster mit aktiviertemBeendigungsschutz weiter ausgeführt und Cluster mit deaktiviertem Beendigungsschutz beendet.

82

Page 90: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen eines Amazon EMR-Clusters auf AWS Outposts

• Falls die Netzwerkkonnektivität aufgrund einer routinemäßigen Wartung beeinträchtigt wird, empfehlenwir die proaktive Aktivierung des Beendigungsschutzes. Generell bedeutet die Unterbrechung derKonnektivität, dass externe Abhängigkeiten, die nicht lokal im Outpost oder Kundennetzwerk sind, nichtzugänglich sind. Dazu gehören Amazon S3, DynamoDB mit der EMRFS-Konsistenzansicht und AmazonRDS, wenn eine regionale Instance für einen EMR-Cluster mit mehreren Masterknoten verwendet wird.

Erstellen eines Amazon EMR-Clusters auf AWSOutpostsDas Erstellen eines Amazon EMR-Clusters auf AWS Outposts ähnelt dem Erstellen eines Amazon EMR-Clusters in der AWS-Cloud. Wenn Sie einen Amazon EMR-Cluster auf AWS Outposts erstellen, müssenSie ein Amazon EC2-Subnetz angeben, das Ihrem Outpost zugeordnet ist.

Eine Amazon VPC kann sich über alle Availability Zones in einer AWS-Region erstrecken. AWS Outpostssind Erweiterungen von Availability Zones und Sie können eine Amazon VPC in einem Konto auf mehrereAvailability Zones und zugeordnete Outpost-Standorte erweitern. Wenn Sie Ihren Outpost konfigurieren,ordnen Sie ihm ein Subnetz zu, um Ihre regionale VPC-Umgebung auf Ihre lokale Einrichtung zu erweitern.Outpost-Instances und verwandte Services werden als Teil Ihrer regionalen VPC angezeigt, ähnlicheiner Availability Zone mit zugeordneten Subnetzen. Weitere Informationen finden Sie im AWS Outposts-Benutzerhandbuch.

Konsole

Um mit der AWS Management Console einen neuen Amazon EMR-Cluster auf AWS Outposts zu erstellen,geben Sie ein Amazon EC2-Subnetz an, das Ihrem Outpost zugeordnet ist.

1. Öffnen Sie die Amazon EMR-Konsole.2. Wählen Sie Create cluster aus.3. Wählen Sie Go to advanced options (Zu erweiterten Optionen navigieren) aus.4. Wählen Sie unter Software Configuration (Softwarekonfiguration) für Release (Version) 5.28.0 oder

höher aus.5. Wählen Sie unter Hardware Configuration (Hardwarekonfiguration) für EC2 Subnet (EC2-Subnetz) ein

EC2-Subnetz mit einer Outpost-ID im folgenden Format aus: op-123456789.6. Wählen Sie den Instance-Typ aus oder fügen Sie Amazon EBS-Speichervolumes für einheitliche

Instance-Gruppen oder Instance-Flotten hinzu. Begrenzte Amazon EBS-Volume- und -Instance-Typenwerden für Amazon EMR auf AWS Outposts unterstützt.

AWS CLI

Um mit der AWS CLI einen neuen Amazon EMR-Cluster auf AWS Outposts zu erstellen, geben Sie einEC2-Subnetz an, das Ihrem Outpost zugeordnet ist.

Im folgenden Beispiel wird ein Amazon EMR-Cluster auf einem Outpost erstellt. Ersetzen Siesubnet-22XXXX01 durch ein EC2-Subnetz, das Ihrem Outpost zugeordnet ist.

aws emr create-cluster \--name "Outpost cluster" \--release-label emr-5.31.0 \--applications Name=Spark \--ec2-attributes KeyName=myKey SubnetId=subnet-22XXXX01 \--instance-type m5.xlarge --instance-count 3 --use-default-roles

83

Page 91: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideEMR-Cluster auf Lokale AWS-Zonen

EMR-Cluster auf Lokale AWS-ZonenAb Amazon EMR Version 5.28.0 können Sie Amazon EMR-Cluster in einem Lokale AWS-Zonen-Subnetzals logische Erweiterung einer Lokale Zonen unterstützenden AWS-Region erstellen und ausführen. Durcheine Lokale Zone können sich Amazon EMR-Funktionen und eine Teilmenge von AWS-Services, wieDatenverarbeitungs- und Speicher-Services, näher am Benutzer befinden, um bei vor Ort ausgeführtenAnwendungen einen Zugriff mit sehr niedriger Latenz zu ermöglichen. Eine Liste der verfügbaren LokaleZonen finden Sie unter Lokale AWS-Zonen. Informationen zum Zugriff auf verfügbare Lokale AWS-Zonenfinden Sie unter Regionen, Availability Zones und Local Zones.

Unterstützte Instance-TypenDie folgenden Instance-Typen sind für Amazon EMR-Cluster auf Lokale Zonen verfügbar. Die Verfügbarkeitdes Instance-Typs kann je nach Region variieren.

Instance-Klasse Instance-Typen

Allgemeine Zwecke m5.xlarge | m5.2xlarge | m5.4xlarge | m5.12xlarge | m5.24xlarge| m5d.xlarge | m5d.2xlarge | m5d.4xlarge | m5d.12xlarge |m5d.24xlarge

Für Datenverarbeitung optimiert c5.xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.18xlarge |c5d.xlarge | c5d.2xlarge | c5d.4xlarge| c5d.9xlarge | c5d.18xlarge

RAM-optimiert r5.xlarge | r5.2xlarge | r5.4xlarge | r5.12xlarge | r5d.xlarge |r5d.2xlarge | r5d.4xlarge | r5d.12xlarge | r5d.24xlarge

Speicheroptimiert i3en.xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.12xlarge| i3en.24xlarge

Erstellen eines Amazon EMR-Clusters auf LokaleZonenErstellen Sie einen Amazon EMR-Cluster auf Lokale AWS-Zonen, indem Sie den Amazon EMR-Cluster ineinem Amazon VPC-Subnetz starten, das einer Lokale Zone zugewiesen ist. Sie können auf den Clustermit dem Lokale Zone-Namen zugreifen, z. B. us-west-2-lax-1a in der USA West (Oregon)-Konsole.

Local Zones unterstützen derzeit keine Amazon EMR-Notebooks oder direkte Verbindungen mit AmazonEMR mittels der VPC-Endpunkt-Schnittstelle (AWS PrivateLink).

Erstellen Sie einen EMR-Cluster mithilfe der Amazon EMR-Konsole auf einer Lokale Zone

Wenn Sie mit der AWS Management Console einen neuen Amazon EMR-Cluster auf Lokale Zonenerstellen möchten, geben Sie ein Amazon EC2-Subnetz an, das Ihrem Lokale Zone zugeordnet ist.

1. Öffnen Sie die Amazon EMR-Konsole.2. Wählen Sie Create cluster aus.3. Wählen Sie Go to advanced options (Zu erweiterten Optionen navigieren) aus.4. Wählen Sie unter Software Configuration (Softwarekonfiguration) für Release (Version) 5.28.0 oder

höher aus.5. Wählen Sie unter Hardware Configuration (Hardwarekonfiguration) für EC2 Subnet (EC2-Subnetz) ein

Subnetz mit einer Lokale Zone-ID im folgenden Format aus: subnet 123abc | us-west-2-lax-1a.

84

Page 92: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideDocker konfigurieren

6. Fügen Sie Amazon EBS-Speichervolumes für einheitliche Instance-Gruppen oder Instance-Flottenhinzu und wählen Sie einen Instance-Typ aus.

So erstellen Sie einen Amazon EMR-Cluster in einer Lokale Zone mithilfe der AWS CLI

Verwenden Sie den Befehl „create-cluster“ zusammen mit der SubnetzID für die Lokale Zone, wie imfolgenden Beispiel gezeigt. Ersetzen Sie subnet-22XXXX1234567 durch die Lokale Zone-SubnetzID undersetzen Sie ggf. andere Optionen. Weitere Informationen finden Sie unter https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html.

aws emr create-cluster \--name "Local Zones cluster" \--release-label emr-5.29.0 \--applications Name=Spark \--ec2-attributes KeyName=myKey,SubnetId=subnet-22XXXX1234567 \--instance-type m5.xlarge --instance-count 3 --use-default-roles

Docker konfigurierenAmazon EMR 6.x unterstützt Hadoop 3, was es dem YARN NodeManager ermöglicht, Containerentweder direkt auf dem EMR-Cluster-Host oder innerhalb eines Docker-Containers. Docker-Containerbieten benutzerdefinierte Ausführungsumgebungen, in denen Anwendungscode ausgeführt wird. Diebenutzerdefinierte Ausführungsumgebung wird von der Ausführungsumgebung vom YARN NodeManagerund anderer Anwendungen isoliert.

Docker-Container können spezielle Bibliotheken enthalten, die von der Anwendung verwendetwerden, und sie können verschiedene Versionen von systemeigenen Tools und Bibliotheken wie Rund Python bereitstellen. Sie können die vertrauten Docker-Tools verwenden, um Bibliotheken undLaufzeitabhängigkeiten für Ihre Anwendungen zu definieren.

Amazon EMR 6.x-Cluster sind standardmäßig so konfiguriert, dass YARN-Anwendungen wie Spark mitDocker-Containern ausgeführt werden können. Um die Containerkonfiguration anzupassen, bearbeitenSie die Docker-Unterstützungsoptionen, die in den im /etc/hadoop/conf-Verzeichnis verfügbarenDateien „yarn-site.xml“ und „container-executor.cfg“ definiert sind. Weitere Informationen zuden einzelnen Konfigurationsoptionen und deren Verwendung finden Sie unter Starten von Anwendungenmithilfe von Docker-Containern.

Sie können Docker verwenden, wenn Sie eine Aufgabe absenden. Verwenden Sie die folgenden Variablen,um die Docker-Laufzeit und das Docker-Image anzugeben.

• YARN_CONTAINER_RUNTIME_TYPE=docker

• YARN_CONTAINER_RUNTIME_DOCKER_IMAGE={DOCKER_IMAGE_NAME}

Wenn Sie Docker-Container verwenden, um Ihre YARN-Anwendungen auszuführen, lädt YARN dasDocker-Image herunter, das Sie beim Absenden der Aufgabe angeben. Damit YARN dieses Docker-Imageauflösen kann, muss es mit einer Docker-Registrierung konfiguriert werden. Die Konfigurationsoptionen füreine Docker-Registrierung hängen davon ab, ob Sie den Cluster über ein öffentliches oder privates Subnetzbereitstellen.

Docker-RegistrierungenEine Docker-Registrierung ist ein Speicher- und Verteilungssystem für Docker-Images. Für Amazon EMR6.x können die folgenden Docker-Registrierungen konfiguriert werden:

85

Page 93: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Docker-Registrierungen

• Docker Hub – eine öffentliche Docker-Registrierung mit über 100.000 beliebten Docker-Images.• Amazon ECR – eine vollständig verwaltete Docker-Container-Registry, mit der Sie eigene

benutzerdefinierte Images erstellen und diese in einer hoch verfügbaren und skalierbaren Architekturhosten können.

Überlegungen zur Bereitstellung

Für Docker-Registrierungen ist Netzwerkzugriff von jedem Host im Cluster erforderlich. Dies liegt daran,dass jeder Host Images aus der Docker-Registrierung herunterlädt, wenn Ihre YARN-Anwendung aufdem Cluster ausgeführt wird. Diese Anforderungen an die Netzwerkkonnektivität können die Auswahl derDocker-Registrierung einschränken, je nachdem, ob Sie Ihren Amazon EMR-Cluster in einem öffentlichenoder privaten Subnetz bereitstellen.

Öffentliches Subnetz

Wenn EMR-Cluster in einem öffentlichen Subnetz bereitgestellt werden, können die Knoten, auf denenYARN NodeManager ausgeführt wird, direkt auf jede beliebige Registrierung zugreifen, die über dasInternet verfügbar ist, einschließlich Docker Hub, wie im Folgenden gezeigt Diagramm.

Privates Subnetz

Wenn EMR-Cluster in einem privaten Subnetz bereitgestellt werden, haben die Knoten, auf denen YARNNodeManager ausgeführt wird, keinen direkten Zugriff auf das Internet. Docker-Images können in AmazonECR gehostet und über AWS PrivateLink kann darauf zugegriffen werden, wie im folgenden Diagrammdargestellt.

Weitere Informationen dazu, wie Sie mit AWS PrivateLink in einem privaten Subnetzszenario den Zugriffauf Amazon ECR zulassen, finden Sie unter Einrichten von AWS PrivateLink für Amazon ECS und AmazonECR.

Konfigurieren von Docker-RegistrierungenUm Docker-Registrierungen mit Amazon EMR verwenden zu können, müssen Sie Docker so konfigurieren,dass sie der spezifischen Registrierung vertrauen, die Sie zum Auflösen von Docker-Images verwendenmöchten. Die Standardvertrauensregistrierungen sind „local“ (privat) und „centos“ (im öffentlichenDocker-Hub). Wenn Sie andere öffentliche Repositorys oder Amazon ECR verwenden möchten,können Sie docker.trusted.registries-Einstellungen in /etc/hadoop/conf/container-executor.cfg außer Kraft setzen, indem Sie die EMR-Klassifikations-API mit dem container-executor-Klassifizierungsschlüssel verwenden.

86

Page 94: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von YARN für den Zugriff auf

Amazon ECR auf EMR 6.0.0 und früher

Das folgende Beispiel zeigt, wie Sie den Cluster so konfigurieren, dass er einem öffentlichenRepository mit dem Namen vertraut. your-public-repound einem ECR-Register-Endpunkt,123456789123.dkr.ecr.us-east-1.amazonaws.com. (z. B.. Wenn Sie ECR verwenden, ersetzenSie diesen Endpunkt durch Ihren spezifischen ECR-Endpunkt. Wenn Sie Docker Hub verwenden, ersetzenSie diesen Repository-Namen durch Ihren Repository-Namen.

[ { "Classification": "container-executor", "Configurations": [ { "Classification": "docker", "Properties": { "docker.trusted.registries": "local,centos,your-public-repo,123456789123.dkr.ecr.us-east-1.amazonaws.com", "docker.privileged-containers.registries": "local,centos,your-public-repo,123456789123.dkr.ecr.us-east-1.amazonaws.com" } } ] }]

So starten Sie eine Amazon EMR 6.0.0-Cluster mit dieser Konfiguration mithilfe der AWS Command LineInterface (AWS CLI), erstellen Sie eine Datei mit dem Namen container-executor.json mit demInhalt des vorhergehenden Container-Ausführer JSON-Konfiguration. Verwenden Sie dann die folgendenBefehle, um den Cluster zu starten.

export KEYPAIR=<Name of your Amazon EC2 key-pair>export SUBNET_ID=<ID of the subnet to which to deploy the cluster>export INSTANCE_TYPE=<Name of the instance type to use>export REGION=<Region to which to deploy the cluster>

aws emr create-cluster \ --name "EMR-6.0.0" \ --region $REGION \ --release-label emr-6.0.0 \ --applications Name=Hadoop Name=Spark \ --service-role EMR_DefaultRole \ --ec2-attributes KeyName=$KEYPAIR,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=$SUBNET_ID \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=$INSTANCE_TYPE InstanceGroupType=CORE,InstanceCount=2,InstanceType=$INSTANCE_TYPE \ --configuration file://container-executor.json

Konfigurieren von YARN für den Zugriff auf AmazonECR auf EMR 6.0.0 und früherWenn Sie neu bei Amazon ECR, folgen Sie den Anweisungen in Erste Schritte mit Amazon ECR undüberprüfen Sie, ob Sie Zugriff auf Amazon ECR von jeder Instanz in Ihrem Amazon EMR -Cluster.

Für EMR 6.0.0 und früher, um auf Amazon ECR mit dem Docker-Befehl müssen Siezuerst Anmeldeinformationen generieren. So überprüfen Sie, ob YARN auf Bilderzugreifen kann von Amazon ECRverwenden Sie die Container-UmgebungsvariableYARN_CONTAINER_RUNTIME_DOCKER_CLIENT_CONFIG um einen Verweis auf die von Ihnen generiertenAnmeldeinformationen zu übergeben.

Führen Sie den folgenden Befehl auf einem der Core-Knoten aus, um die Anmeldezeile für Ihr ECR-Kontozu erhalten.

87

Page 95: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von YARN für den Zugriff auf

Amazon ECR auf EMR 6.0.0 und früher

aws ecr get-login --region us-east-1 --no-include-email

Der get-login-Befehl generiert den korrekten Docker-CLI-Befehl zum Erstellen vonAnmeldeinformationen. Kopieren Sie die Ausgabe von get-login und führen Sie sie aus.

sudo docker login -u AWS -p <password> https://<account-id>.dkr.ecr.us-east-1.amazonaws.com

Mit diesem Befehl wird eine config.json-Datei im /root/.docker-Ordner generiert. Kopieren Siediese Datei in HDFS, damit Aufträge, die an den Cluster gesendet werden, sie zur Authentifizierung beiverwenden können Amazon ECR.

Führen Sie die folgenden Befehle aus, um die config.json-Datei in Ihr Startverzeichnis zu kopieren.

mkdir -p ~/.dockersudo cp /root/.docker/config.json ~/.docker/config.jsonsudo chmod 644 ~/.docker/config.json

Führen Sie die folgenden Befehle aus, um die config.json-Datei in HDFS festzulegen, damit sie vonAufgaben verwendet werden kann, die auf dem Cluster ausgeführt werden.

hadoop fs -put ~/.docker/config.json /user/hadoop/

YARN kann auf ECR als Docker-Image-Registrierung zugreifen und Container während derAufgabenausführung abrufen.

Nachdem Sie Docker-Registrierungen und YARN konfiguriert haben, können Sie YARN-Anwendungen mitDocker-Containern ausführen. Weitere Informationen finden Sie unter Ausführen von Spark-Anwendungenmit Docker mithilfe von Amazon EMR 6.0.0.

In EMR 6.1.0 und höher müssen Sie die Authentifizierung nicht manuell auf Amazon ECR. Wenn einAmazon ECR Registrierung in der container-executor Klassifizierungsschlüssel, die Amazon ECRDie automatische Authentifizierungsfunktion aktiviert und YARN übernimmt den Authentifizierungsprozess,wenn Sie einen Spark-Auftrag mit einem ECR-Image senden. Sie können bestätigen, ob automatischeAuthentifizierung ist aktiviert durch Prüfung yarn.nodemanager.runtime.linux.docker.ecr-auto-authentication.enabled in Garn-Stelle. Die automatische Authentifizierung ist aktiviert und die YARN-Authentifizierungseinstellung ist eingestellt auf true wenn die docker.trusted.registries enthälteine ECR-Registrierungs-URL.

Voraussetzungen für die Verwendung der automatischen Authentifizierung Amazon ECR

• EMR Version 6.1.0 oder höher• Die in der Konfiguration enthaltene ECR-Registrierung befindet sich in derselben Region wie der Cluster• IAM-Rolle mit Berechtigungen zum Abrufen von Autorisierungstoken und Abrufen eines beliebigen

Abbilds

Siehe Einrichten mit Amazon ECR um weitere Informationen zu erhalten.

So aktivieren Sie automatische Authentifizierung

Folgen Sie Konfigurieren von Docker-Registrierungen (p. 86) um einen Amazon ECR alsvertrauenswürdiges Register und stellen Sie sicher, dass die Amazon ECR -Repository und der Clusterbefinden sich in derselben Region.

Um diese Funktion auch dann zu aktivieren, wenn die ECR-Registrierung nicht in dervertrauenswürdigen Registrierung festgelegt ist, verwenden Sie die Konfigurationsklassifizierung, um

88

Page 96: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR File System (EMRFS)

yarn.nodemanager.runtime.linux.docker.ecr-auto-authentication.enabled um zu sehen,true.

Deaktivieren automatische Authentifizierung

Standardmäßig automatische Authentifizierung ist deaktiviert, wenn nein Amazon ECR Registrierung in dervertrauenswürdigen Registrierung erkannt.

So deaktivieren Sie automatische Authentifizierung, auch wenn die Amazon ECR Registrierung in dervertrauenswürdigen Registrierung festgelegt ist, verwenden Sie die Konfigurationsklassifizierung, umyarn.nodemanager.runtime.linux.docker.ecr-auto-authentication.enabled um zu sehen,false.

Wie man überprüft, ob automatische Authentifizierung ist aktiviert auf einem bündeln

Verwenden Sie auf dem Master-Knoten einen Texteditor wie vi um den Inhalt der Datei anzuzeigen:vi /etc/hadoop/conf.empty/yarn-site.xml. (z. B.. Überprüfen Sie den Wert vonyarn.nodemanager.runtime.linux.docker.ecr-auto-authentication.enabled.

Verwenden von EMR File System (EMRFS)Das EMR File System (EMRFS) ist eine HDFS-Implementierung, die von allen Amazon EMR-Clusternverwendet wird, um reguläre Dateien von Amazon EMR direkt zu Amazon S3 zu lesen und zu schreiben.EMRFS bietet die praktische Möglichkeit der Speicherung von persistenten Daten in Amazon S3zur Nutzung mit Hadoop. Gleichzeitig stehen Funktionen wie eine konsistente Anzeige und dieDatenverschlüsselung zur Verfügung.

Die konsistente Ansicht bietet Prüfungen für die Listen- und Read-After-Write-Konsistenz (für neuePut-Anforderungen) für Objekte in Amazon S3. Die Datenverschlüsselung ermöglicht Ihnen dasVerschlüsseln von Objekten, die EMRFS zu Amazon S3 schreibt, und ermöglicht EMRFS das Arbeiten mitverschlüsselten Objekten in Amazon S3. Wenn Sie die Amazon EMR-Version 4.8.0 oder höher verwenden,können Sie Sicherheitskonfigurationen für die Einrichtung der Verschlüsselung von EMRFS-Objekten inAmazon S3 verwenden, zusammen mit anderen Verschlüsselungseinstellungen. Weitere Informationenfinden Sie im Verschlüsselungsoptionen (p. 207). Wenn Sie eine ältere Version von Amazon EMRverwenden, können Sie Verschlüsselungseinstellungen manuell konfigurieren. Weitere Informationenfinden Sie im Angeben der Amazon S3-Verschlüsselung mit EMRFS-Eigenschaften (p. 108).

Wenn Sie die Amazon EMR-Version 5.10.0 oder höher verwenden, können Sie verschiedene IAM-Rollenfür EMRFS-Anfragen an Amazon S3 verwenden, basierend auf Cluster-Benutzern oder -Gruppen oder aufdem Speicherort von EMRFS-Daten in Amazon S3. Weitere Informationen finden Sie im Configure IAMRoles for EMRFS Requests to Amazon S3 (p. 244).

Themen• Konsistente Ansicht (p. 89)• Zugriff auf EMRFS-Daten in Amazon S3 genehmigen (p. 107)• Angeben der Amazon S3-Verschlüsselung mit EMRFS-Eigenschaften (p. 108)

Konsistente AnsichtDie konsistente Ansicht von EMRFS ist eine optionale Funktion, die ab Amazon EMR Version 3.2.1oder höher zur Verfügung steht. Die Konsistente Ansicht gestattet EMR-Clustern die Listen- und Lesen-nach-Schreiben-Konsistent für Amazon S3-Objekte zu überprüfen, die mit EMRFS geschrieben odersynchronisiert wurden. Die konsistente Ansicht bietet eine Lösung für ein Problem, das aufgrund desAmazon S3-Datenkonsistenzmodells entstehen kann. Wenn Sie z. B. in einer Operation Objekte zuAmazon S3 hinzufügen und dann in einer nachfolgenden Operation sofort Objekte auflisten, können dieListe und die Menge der bearbeiteten Objekte unvollständig sein. Dies ist häufiger ein Problem für Cluster,

89

Page 97: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

die schnelle, sequenzielle Schritte unter Verwendung von Amazon S3 als Datenspeicher verwenden, z. B.Pipelines für die Datenverarbeitung mit Extrahieren-Transformieren-Laden (ETL) in mehreren Schritten.

Wenn Sie einen Cluster mit aktivierter konsistenter Ansicht erstellen, verwendet Amazon EMR eineAmazon DynamoDB-Datenbank, um Objektmetadaten zu speichern und die Konsistenz mit Amazon S3nachzuverfolgen. Sie müssen EMRFS-Rolle Berechtigungen für den Zugriff auf DynamoDB erteilen. Wenneine konsistente Ansicht feststellt, dass Amazon S3 während einer Dateisystem-Operation inkonsistent ist,wiederholt es diese Operation entsprechend den Regeln, die Sie definieren können. Standardmäßig hat dieDynamoDB-Datenbank eine Lesekapazität von 400 und eine Schreibkapazität von 100. Sie können Lese-/Schreib- Einstellungen abhängig von der Anzahl der Objekte konfigurieren, die EMRFS verfolgt, sowie vonder Anzahl der Knoten, die die Metadaten gleichzeitig verwenden. Sie können auch andere Datenbank-und Betriebsparameter konfigurieren. Die Verwendung der konsistenten Ansicht führt zusätzlich zu denGebühren für Amazon EMR zu DynamoDB-Gebühren, die in der Regel gering sind. Weitere Informationenfinden Sie unter Amazon DynamoDB-Preise.

Bei aktivierter konsistenter Ansicht gibt EMRFS die Objekte zurück, die in einem EMRFS-Metadatenspeicher aufgeführt sind, sowie diejenigen, die direkt von Amazon S3 für einen bestimmtenPfad zurückgegeben wurden. Da Amazon S3 nach wie vor die autoritative Quelle für die Objekte in einemPfad ist, stellt EMRFS sicher, dass alle Elemente im angegebenen Amazon S3-Pfad verarbeitet werden,unabhängig davon, ob sie in den Metadaten nachverfolgt werden. Die konsistente EMRFS-Ansicht stelltjedoch nur sicher, dass die Objekte in den Ordnern, die Sie verfolgen, auf Konsistenz überprüft werden.

Sie können das EMRFS-Dienstprogramm (emrfs) über die Befehlszeile des Master-Knotens verwenden,um Operationen für Amazon S3-Objekte auszuführen, die von der konsistenten Ansicht nachverfolgtwerden. Sie können beispielsweise Amazon S3-Objekte mit dem EMRFS-Metadatenspeicher importieren,löschen und synchronisieren. Weitere Informationen zum Dienstprogramm EMRFS-CLI finden Sie unterEMRFS-CLI – Referenz (p. 99).

Wenn Sie Objekte direkt von Amazon S3 löschen, die in EMRFS-Metadaten nachverfolgt werden,behandelt EMRFS das Objekt als inkonsistent und wirft eine Ausnahme auf, nachdem es alleWiederholungen ausgeschöpft hat. Verwenden Sie EMRFS zum Löschen von Objekten in Amazon S3,die unter Verwendung der konsistenten Ansicht nachverfolgt werden. Alternativ können Sie über dieemrfs-Befehlszeile Metadateneinträge für Objekte entfernen, die direkt gelöscht wurden. Sie können diekonsistente Ansicht auch sofort mit Amazon S3 synchronisieren, nachdem Sie die Objekte gelöscht haben.

Note

 Es wird empfohlen, TTL (Time to Live) für die von EMRFS erstellte DynamoDB-Tabelle zuaktivieren. Der Standard-Tabellenname ist EmrFSMetadata. TTL kann Kosten sparen, indem esgespeicherte Datenvolumes löscht, die nicht mehr benötigt werden. Weitere Informationen findenSie unter Aktivieren von Time to Live (TTL).

Themen• Aktivieren der konsistenten Ansicht (p. 90)• Verstehen, wie mit der konsistenten Ansicht von EMRFS Objekte in Amazon S3 nachverfolgt

werden (p. 92)• Logik für Wiederholversuche (p. 92)• Konsistente Ansicht der Metadaten in EMRFS (p. 93)• Konfigurieren von Konsistenzbenachrichtigungen für CloudWatch und Amazon SQS (p. 95)• Konfigurieren der konsistenten Ansicht (p. 96)• EMRFS-CLI – Referenz (p. 99)

Aktivieren der konsistenten AnsichtSie können die serverseitige Amazon S3-Verschlüsselung oder konsistente Ansicht für EMRFS mithilfe derAWS Management Console, AWS CLI oder der emrfs-site-Konfigurationsklassifizierung aktivieren..

90

Page 98: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

So konfigurieren Sie die konsistente Ansicht mit der Konsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create Cluster (Cluster erstellen) und Go to advanced options (Erweiterte Optionen

aufrufen) aus.3. Wählen Sie die Einstellungen für Schritt 1: aus. Software und Schritte und Schritt 2: -Hardware.4. Für Schritt 3: General Cluster Settings unter Additional Options die Option EMRFS consistent view

aus.5. Geben Sie in EMRFS Metadata store (EMRFS-Metadatenspeicher) den Namen Ihres

Metadatenspeichers ein. Der Standardwert ist EmrFSMetadata. Wenn die EmrFSMetadata-Tabellenicht vorhanden ist, wird sie für Sie in DynamoDB erstellt.

Note

Amazon EMR entfernt die EMRFS-Metadaten nicht automatisch aus DynamoDB, wenn derCluster beendet wird.

6. Geben Sie in Number of retries (Anzahl der Wiederholungen) einen Ganzzahlwert ein. Wenn eineInkonsistenz erkannt wird, versucht EMRFS, Amazon S3 so oft aufzurufen. Der Standardwert ist 5.

7. Geben Sie in Retry period (in seconds) (Wiederholungszeitraum (in Sekunden)) einen Ganzzahlwertein. Dies ist die Zeitspanne, die EMRFS zwischen Wiederholungsversuchen wartet. Der Standardwertist 10.

Note

Bei nachfolgenden Wiederholversuchen wird ein exponentielles Backoff verwendet.

So starten Sie einen Cluster mit aktivierter konsistenter Ansicht über die AWS CLI

Es wird empfohlen, die aktuelle Version der AWS CLI zu installieren. Sie können die jeweils aktuelleVersion unter https://aws.amazon.com//cli/ herunterladen.

• Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws emr create-cluster --instance-type m5.xlarge --instance-count 3 --emrfs Consistent=true \--release-label emr-5.31.0 --ec2-attributes KeyName=myKey

So prüfen Sie mithilfe der AWS Management Console, ob die konsistente Ansicht aktiviert ist

• Um in der Konsole zu überprüfen, ob die konsistente Ansicht aktiviert ist, navigieren Sie zu ClusterList (Cluster-Liste) und wählen den Namen Ihres Clusters aus, um die Cluster Details (Cluster-Details)anzuzeigen. Das Feld "EMRFS consistent view" hat den Wert Enabled oder Disabled.

So prüfen Sie durch Untersuchen der Datei emrfs-site.xml, ob die konsistente Ansicht aktiviertist

• Sie können überprüfen, ob die Konsistenz aktiviert ist, indem Sie die Konfigurationsdateiemrfs-site.xml auf dem Master-Knoten des Clusters prüfen. Wenn der boolesche Wert fürfs.s3.consistent auf true festgelegt ist, ist die konsistente Ansicht für Dateisystem-Operationenaktiviert, an denen Amazon S3 beteiligt ist.

91

Page 99: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Verstehen, wie mit der konsistenten Ansicht von EMRFS Objektein Amazon S3 nachverfolgt werdenEMRFS erstellt eine konsistente Ansicht der Objekte in Amazon S3, indem es Informationen über dieseObjekte zu den EMRFS-Metadaten hinzufügt. EMRFS fügt diese Listen seinen Metadaten hinzu, wennFolgendes zutrifft:

• Ein Objekt wird von EMRFS im Laufe eines Amazon EMR-Auftrags geschrieben.• Ein Objekt wird unter Verwendung der EMRFS-CLI mit EMRFS-Metadaten synchronisiert bzw. in die

EMRFS-Metadaten importiert.

Objekte, die von EMRFS gelesen werden, werden nicht automatisch zu den Metadaten hinzugefügt. WennEMRFS ein Objekt löscht, verbleibt eine Liste in den Metadaten mit dem Status „Gelöscht“, bis dieseAuflistung über die EMRFS-CLI bereinigt wird. Weitere Informationen zur CLI finden Sie unter EMRFS-CLI – Referenz (p. 99). Weitere Informationen zum Bereinigen von Listen in den EMRFS-Metadatenfinden Sie unter Konsistente Ansicht der Metadaten in EMRFS (p. 93).

Für jede Amazon S3-Operation überprüft EMRFS die Metadaten auf Informationen über die Objekte inder konsistenten Ansicht. Wenn EMRFS feststellt, dass Amazon S3 während einer dieser Operationeninkonsistent ist, wird die Operation entsprechend den in den emrfs-site-Konfigurationseigenschaftendefinierten Parametern wiederholt. Nachdem EMRFS alle Wiederholversuche ausgeschöpft hat, wirft esentweder eine ConsistencyException auf, oder es protokolliert die Ausnahme und setzt den Workflowfort. Weitere Informationen zur Wiederholungslogik finden Sie unter Logik für Wiederholversuche (p. 92).Sie finden die ConsistencyExceptions in Ihren Protokollen, zum Beispiel:

• listStatus: Kein Amazon S3-Objekt für Metadatenelement /S3_bucket/dir/object• getFileStatus: Schlüssel dir/file ist in Metadaten vorhanden, aber nicht Amazon S3.

Wenn Sie ein mit der konsistenten Ansicht von EMRFS nachverfolgtes Objekt direkt in Amazon S3 löschen,behandelt EMRFS dieses Objekt als inkonsistent, da es weiterhin in den Metadaten als in Amazon S3vorhanden angezeigt wird. Wenn Ihre Metadaten nicht mehr mit den Objekten synchronisiert sind, dieEMRFS in Amazon S3 nachverfolgt, können Sie den Unterbefehl sync der EMRFS-CLI ausführen, um dieMetadaten zurückzusetzen, sodass sie den aktuellen Stand in Amazon S3 reflektieren. Um Abweichungenzwischen Metadaten und Amazon S3 zu erkennen, verwenden Sie den diff. EMRFS verfügt nur über einekonsistente Ansicht der Objekte, auf die in den Metadaten verwiesen wird. Es können andere Objekte imselben Amazon S3-Pfad vorhanden sein, die nicht verfolgt werden. Wenn EMRFS die Objekte in einemAmazon S3-Pfad auflistet, wird die Gesamtmenge der Objekte zurückgegeben, die in den Metadatennachverfolgt werden und im Amazon S3-Pfad vorhanden sind.

Logik für WiederholversucheEMRFS versucht mit einer bestimmten Anzahl an Wiederholversuchen, die Listenkonsistenz fürObjekte zu überprüfen, die in den Metadaten verfolgt werden. Der Standardwert ist 5. Wenn dieAnzahl der Wiederholversuche überschritten wird, gibt der ursprüngliche Auftrag einen Fehlerzurück, es sei denn, fs.s3.consistent.throwExceptionOnInconsistency ist auffalse festgelegt, sodass die Objekte lediglich protokolliert werden, die als inkonsistent verfolgtwurden. EMRFS verwendet standardmäßig eine Wiederholungsrichtlinie mit exponentiellemBackoff, Sie können jedoch auch eine feste Richtlinie verwenden. Möglicherweise möchtendie Benutzer ihre Versuche für einen bestimmten Zeitraum wiederholen, bevor sie denrestlichen Auftrag ausführen, ohne dass eine Ausnahme ausgelöst wird. Sie können dieserreichen, indem sie fs.s3.consistent.throwExceptionOnInconsistency auf false,fs.s3.consistent.retryPolicyType auf fixed und fs.s3.consistent.retryPeriodSecondsauf den gewünschten Wert festlegen. Im folgenden Beispiel wird ein Cluster mit aktivierter Konsistenzerstellt. Dabei werden Inkonsistenzen protokolliert und es wird ein festes Wiederholungsintervall von 10Sekunden festgelegt:

92

Page 100: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Example Festlegen des Wiederholungszeitraums auf einen festen Wert

aws emr create-cluster --release-label emr-5.31.0 \--instance-type m5.xlarge --instance-count 1 \--emrfs Consistent=true,Args=[fs.s3.consistent.throwExceptionOnInconsistency=false, fs.s3.consistent.retryPolicyType=fixed,fs.s3.consistent.retryPeriodSeconds=10] --ec2-attributes KeyName=myKey

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie können entwederentfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichen unter Windowsdurch ein Caret-Zeichen (^).

Weitere Informationen finden Sie im Konsistente Ansicht (p. 89).

Konsistente Ansicht der Metadaten in EMRFSDie konsistente Ansicht von EMRFS verfolgt die Konsistenz unter Verwendung einer DynamoDB-Tabellenach, um Objekte in Amazon S3 nachzuverfolgen, die mit EMRFS synchronisiert oder erstellt wurden.Mithilfe dieser Metadaten werden alle Operationen (Lesen, Schreiben, Aktualisieren und Kopieren) verfolgt.Sie enthalten keine tatsächlichen Inhalte. Anhand der Metadaten wird überprüft, ob die Objekte oderMetadaten, die von Amazon S3 eingehen, den erwarteten Werten entsprechen. Diese Bestätigung bietetEMRFS die Möglichkeit, die Listenkonsistenz und Read-After-Write-Konsistenz für neue Objekte zuüberprüfen, die EMRFS in Amazon S3 schreibt, oder für Objekte, die mit EMRFS synchronisiert werden.Mehrere Cluster können dieselben Metadaten verwenden.

So fügen Sie Einträge zu den Metadaten hinzu

Sie können die Unterbefehle sync oder import verwenden, um Einträge zu Metadaten hinzuzufügen.sync gibt den Status der Amazon S3-Objekte in einem Pfad wieder, während import ausschließlichverwendet wird, um den Metadaten neue Einträge hinzuzufügen. Weitere Informationen finden Sie imEMRFS-CLI – Referenz (p. 99).

So überprüfen Sie eventuelle Unterschiede zwischen Metadaten und Objekten in Amazon S3

Um eine Prüfung auf Abweichungen zwischen den Metadaten und Amazon S3 auszuführen, verwendenSie den Unterbefehl diff der EMRFS-CLI. Weitere Informationen finden Sie im EMRFS-CLI –Referenz (p. 99).

So erkennen Sie, ob Metadatenoperationen gedrosselt werden

EMRFS legt die Standardgrenzwerte für die Durchsatzkapazität für die Metadaten für Lese-und Schreibvorgänge auf 500 bzw. 100 Einheiten fest. Eine große Anzahl von Objekten oderBuckets kann dazu führen, dass Operationen diese Kapazität überschreiten. Dann drosseltDynamoDB die Operationen. Eine Anwendung kann beispielsweise EMRFS veranlassen, eineProvisionedThroughputExceededException auszulösen, wenn Sie eine Operation ausführen,die diese Kapazitätsgrenzen überschreitet. Bei einer Drosselung versucht die EMRFS-CLI, mittelsexponentiellem Backoff erneut in die DynamoDB-Tabelle zu schreiben, bis die Operation abgeschlossenist oder wenn der Höchstwert für Wiederholungen für das Schreiben von Objekten aus Amazon EMR zuAmazon S3 erreicht wird.

Sie können Ihre eigenen Durchsatzkapazitätsgrenzen konfigurieren. hat jedoch strenge Partitionsgrenzenvon 3 000 Lesekapazitätseinheiten (RCUs) und 1 000 Schreibkapazitätseinheiten (WCUs) pro Sekundefür Lese- und Schreibvorgänge.DynamoDB Um sync-Ausfälle zu vermeiden, die durch Ablehnungenverursacht werden, empfehlen wir, den Durchsatz für Lesevorgänge auf weniger als 3000 RCUs

93

Page 101: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

und Schreibvorgänge auf weniger als 1000 WCUs zu begrenzen. Anweisungen zum Festlegenvon benutzerdefinierten Durchsatzkapazitätslimits finden Sie unter Konfigurieren der konsistentenAnsicht (p. 96).

Sie können auch Amazon CloudWatch-Metriken für Ihre EMRFS-Metadaten in der DynamoDB-Konsoleanzeigen. Sie sehen die Anzahl der gedrosselten Lese- und Schreibanforderungen. Wenn für gedrosselteAnforderungen ein Wert ungleich null vorliegt, profitiert Ihre Anwendung möglicherweise von einerErhöhung der zugewiesenen Durchsatzkapazität für Lese- oder Schreiboperationen. Sie realisieren ggf.auch dann eine höhere Performance, wenn Sie sehen, dass sich Ihre Operationen dem zugewiesenenHöchstwert für die Durchsatzkapazität für Lese- und Schreibvorgänge für einen längeren Zeitraum nähern.

Durchsatzmerkmale für bedeutende EMRFS-Operationen

Die Standardeinstellung für Lese- und Schreibvorgänge beträgt 400 bzw. 100Durchsatzkapazitätseinheiten. Die folgenden Leistungsmerkmale geben Ihnen eine Vorstellung davon,welcher Durchsatz für bestimmte Operationen erforderlich ist. Diese Tests wurden unter Verwendungeines m3.large-Clusters mit einem einzigen Knoten durchgeführt. Bei allen Operationen handelte es sichum Single-Thread-Vorgänge. Die Performance kann je nach Charakteristika der jeweiligen Anwendungsehr unterschiedlich ausfallen und etwas Experimentieren erfordern, um die Dateisystemoperationen zuoptimieren.

Operation DurchschnittlicheLesevorgänge proSekunde

Durchschnittliche Schreibvorgänge proSekunde

create (Objekt) 26.79 6.70

delete (Objekt) 10.79 10.79

delete (Verzeichnis mit 1000Objekten)

21.79 338.40

getFileStatus (Objekt) 34.70 0

getFileStatus (Verzeichnis) 19.96 0

listStatus (Verzeichnis mit 1 Objekt) 43.31 0

listStatus (Verzeichnis mit 10Objekten)

44.34 0

listStatus (Verzeichnis mit 100Objekten)

84.44 0

listStatus (Verzeichnis mit 1.000Objekten)

308.81 0

listStatus (Verzeichnis mit 10.000Objekten)

416.05 0

listStatus (Verzeichnis mit 100.000Objekten)

823.56 0

listStatus (Verzeichnis mit 1 M000Objekten)

882.36 0

mkdir (durchgehend für 120Sekunden)

24.18 4.03

mkdir 12.59 0

94

Page 102: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Operation DurchschnittlicheLesevorgänge proSekunde

Durchschnittliche Schreibvorgänge proSekunde

rename (Objekt) 19.53 4.88

rename (Verzeichnis mit 1000Objekten)

23.22 339.34

So übermitteln Sie einen Schritt, der alle alten Daten aus Ihren Metadaten entfernt

Unter Umständen möchten Benutzer bestimmte Einträge in den DynamoDB-basierten Metadatenentfernen. So können Sie die Speicherkosten im Zusammenhang mit der Tabelle reduzieren. Die Benutzerhaben die Möglichkeit, mit dem Unterbefehl delete der EMRFS-Befehlszeilenschnittstelle bestimmteEinträge manuell oder programmgesteuert zu bereinigen. Wenn Sie jedoch Einträge aus den Metadatenlöschen, führt EMRFS keine Konsistenzprüfungen mehr durch.

Die programmgesteuerte Bereinigung nach Abschluss eines Auftrags kann durch Übermittlung einesletzten Schritts zu Ihrem Cluster erfolgen, wodurch ein Befehl in der EMRFS-Befehlszeilenschnittstelleausgeführt wird. Geben Sie z. B. den folgenden Befehl ein, um einen Schritt zum Löschen aller Einträge anIhren Cluster zu übermitteln, die älter als zwei Tage sind.

aws emr add-steps --cluster-id j-2AL4XXXXXX5T9 --steps Name="emrfsCLI",Jar="command-runner.jar",Args=["emrfs","delete","--time","2","--time-unit","days"]{ "StepIds": [ "s-B12345678902" ]}

Verwenden Sie den zurückgegebenen StepId-Wert, um die Protokolle auf das Ergebnis der Operation zuüberprüfen.

Konfigurieren von Konsistenzbenachrichtigungen für CloudWatchund Amazon SQSSie können in EMRFS CloudWatch-Metriken und Amazon SQS-Nachrichten für Eventually Consistent-Probleme in Amazon S3 aktivieren.

CloudWatch

Wenn CloudWatch-Metriken aktiviert sind, wird jedes Mal eine Metrik mit dem Namen Inconsistencyübertragen, wenn ein FileSystem-API-Aufruf aufgrund eines Eventually Consistent-Problems in AmazonS3 fehlschlägt.

So zeigen Sie CloudWatch-Metriken für Eventually Consistent-Probleme in Amazon S3 an

Um die Metrik Inconsistency (Inkonsistenz) in der CloudWatch-Konsole anzuzeigen, wählen Siedie EMRFS-Metriken und dann ein JobFlowId/Metric Name (Metrikname)-Paar aus. Beispiel: ,j-162XXXXXXM2CU ListStatus usw.j-162XXXXXXM2CU GetFileStatus

1. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.2. Wählen Sie im Dashboard (Dashboard) im Abschnitt Metrics (Metriken) die Option EMRFS (EMRFS)

aus.3. Wählen Sie im Bereich Job Flow Metrics (Auftragsverlaufsmetriken) mindestens ein JobFlowId/Metric

Name (Metrikname)-Paar aus. Im Fenster darunter wird eine grafische Darstellung der Metrikenangezeigt.

95

Page 103: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Amazon SQS

Wenn Amazon SQS-Benachrichtigungen aktiviert sind, wird bei der Initialisierung von EMRFS eineAmazon SQS-Warteschlange mit dem Namen EMRFS-Inconsistency-<jobFlowId> erstellt. In dieseWarteschlange werden Amazon SQS-Nachrichten per Push in die Warteschlange eingefügt, wenn einFileSystem-API-Aufruf aufgrund eines Eventually Consistent-Problems in Amazon S3 fehlschlägt. DieNachricht enthält Informationen wie JobFlowId, API, eine Liste inkonsistenter Pfade, ein Stacktrace usw.Nachrichten können über die Amazon SQS-Konsole oder über den EMRFS-Befehl read-sqs gelesenwerden.

So verwalten Sie Amazon SQS-Nachrichten bei Eventually Consistent-Problemen in Amazon S3

Amazon SQS-Nachrichten bei Eventually Consistent-Problemen in Amazon S3 können über die EMRFS-CLI gelesen werden. Um Nachrichten aus einer EMRFS-Amazon SQS-Warteschlange zu lesen, gebenSie den Befehl read-sqs ein und geben für die Ausgabedatei einen Ausgabespeicherort im lokalenDateisystem des Master-Knotens an.

Sie können eine EMRFS-Amazon SQS-Warteschlange mit dem Befehl delete-sqs löschen.

1. Zum Lesen von Nachrichten aus einer Amazon SQS-Warteschlange geben Sie den folgenden Befehlein. Ersetzen queuename durch den Namen der Amazon SQS-Warteschlange, die Sie konfiguriert undersetzt haben /path/filename mit dem Pfad zur Ausgabedatei:

emrfs read-sqs --queue-name queuename --output-file /path/filename

Um z. B. Amazon SQS-Nachrichten aus der Standardwarteschlange zu lesen und auszugeben, gebenSie Folgendes ein:

emrfs read-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU --output-file /path/filename

Note

Sie können auch die Verknüpfungen -q und -o anstelle von --queue-name und --output-file verwenden.

2. Zum Löschen einer Amazon SQS-Warteschlange geben Sie den folgenden Befehl ein:

emrfs delete-sqs --queue-name queuename

Um z. B. die Standardwarteschlange zu löschen, geben Sie Folgendes ein:

emrfs delete-sqs --queue-name EMRFS-Inconsistency-j-162XXXXXXM2CU

Note

Sie können auch das Kürzel -q anstelle von --queue-name verwenden.

Konfigurieren der konsistenten AnsichtSie können zusätzliche Einstellungen für die konsistente Ansicht konfigurieren, indem Sie sie mithilfe vonKonfigurationseigenschaften für emrfs-site-Eigenschaften bereitstellen. Sie können beispielsweiseeinen anderen Standarddurchsatz für DynamoDB wählen, indem Sie die folgenden Argumente für die CLI-Option --emrfs unter Verwendung der Konfigurationsklassifizierung emrfs-site (nur Amazon EMR Version4.x und höher) oder eine Bootstrap-Aktion zur Konfiguration der Datei emrfs-site.xml auf dem Master-Knoten angeben:

96

Page 104: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Example Ändern der Standardwerte zum Lesen und Schreiben von Metadaten bei Cluster-Start

aws emr create-cluster --release-label emr-5.31.0 --instance-type m5.xlarge \--emrfs Consistent=true,Args=[fs.s3.consistent.metadata.read.capacity=600,\fs.s3.consistent.metadata.write.capacity=300] --ec2-attributes KeyName=myKey

Verwenden Sie alternativ die folgende Konfigurationsdatei und speichern Sie sie lokal oder in Amazon S3:

[ { "Classification": "emrfs-site", "Properties": { "fs.s3.consistent.metadata.read.capacity": "600", "fs.s3.consistent.metadata.write.capacity": "300" } } ]

Verwenden Sie die Konfiguration, die Sie erstellt haben, mit der folgenden Syntax:

aws emr create-cluster --release-label emr-5.31.0 --applications Name=Hive \--instance-type m5.xlarge --instance-count 2 --configurations file://./myConfig.json

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie können entwederentfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichen unter Windowsdurch ein Caret-Zeichen (^).

Die folgenden Optionen können über Konfigurationen oder über die --emrfs-Argumente in der AWS CLIfestgelegt werden. Informationen über diese Argumente finden Sie im AWS CLI Command Reference.

emrfs-site.xml-Eigenschaften für die konsistente Ansicht

Eigenschaft Standardwert Description (Beschreibung)

fs.s3.consistent false Wenn diese Eigenschaft auf truefestgelegt wurde, wird EMRFS fürdie Verwendung von DynamoDBzurBereitstellung von Konsistenzkonfiguriert.

fs.s3.consistent.retryPolicyType exponential Diese Eigenschaft gibt die Richtliniean, die für Wiederholversuche beiKonsistenzproblemen verwendetwerden soll. Optionen: exponentiell,fest oder keine.

fs.s3.consistent.retryPeriodSeconds 1 Diese Eigenschaft legt dieWartezeit zwischen denWiederholversuchen beiKonsistenzproblemen fest.

fs.s3.consistent.retryCount 10 Diese Eigenschaft legtdie maximale Anzahl vonWiederholversuchen bei erkanntenInkonsistenzen fest.

97

Page 105: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Eigenschaft Standardwert Description (Beschreibung)

fs.s3.consistent.throwExceptionOnInconsistencytrue Diese Eigenschaft bestimmt,ob eine Konsistenzausnahmeausgelöst oder protokolliert werdensoll. Wenn diese Eigenschaftauf true festgelegt wurde, wirdeine ConsistencyExceptionausgelöst.

fs.s3.consistent.metadata.autoCreate true Wenn diese Eigenschaft auf truefestgelegt wurde, ermöglicht siedie automatische Erstellung vonMetadatentabellen.

fs.s3.consistent.metadata.etag.verification.enabledtrue Mit Amazon EMR 5.29.0 ist dieseEigenschaft standardmäßigaktiviert. Wenn diese Optionaktiviert ist, verwendet EMRFSS3 ETags, um zu überprüfen, obgelesene Objekte die neuesteverfügbare Version sind. DieseFunktion ist für Read-after-Update-Anwendungsfälle nützlich, beidenen in S3 überschriebeneDateien den gleichen Namenbeibehalten. Diese ETag-Verifizierungsfunktion funktioniertderzeit nicht mit S3 Select.

fs.s3.consistent.metadata.tableName EmrFSMetadataDiese Eigenschaft gibt den Namender Metadatentabelle in DynamoDBan.

fs.s3.consistent.metadata.read.capacity500 Diese Eigenschaft gibt dieDynamoDB-Lesekapazität an, diebei Erstellung der Metadatentabellebereitgestellt wird.

fs.s3.consistent.metadata.write.capacity100 Diese Eigenschaft gibt dieDynamoDB-Schreibkapazitätan, die bei Erstellung derMetadatentabelle bereitgestellt wird.

fs.s3.consistent.fastList true Wenn diese Eigenschaft auf truefestgelegt wurde, verwendetsie mehrere Threads zumAuflisten eines Verzeichnisses(wenn notwendig). Damit dieseEigenschaft verwendet werdenkann, muss Konsistenz aktiviertsein.

fs.s3.consistent.fastList.prefetchMetadatafalse Wenn diese Eigenschaft auf truefestgelegt wurde, ermöglicht sieden Vorabruf von Metadaten fürVerzeichnisse mit mehr als 20.000Elementen.

98

Page 106: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Eigenschaft Standardwert Description (Beschreibung)

fs.s3.consistent.notification.CloudWatchfalse Wenn diese Option auf truefestgelegt ist, werden CloudWatch-Metriken für FileSystem-API-Aufrufe aktiviert, die aufgrund vonEventually Consistent-Problemenvon Amazon S3 fehlschlagen.

fs.s3.consistent.notification.SQS false Wenn diese Eigenschaftauf true festgelegt wurde,werden Eventually Consistent-Benachrichtigungen per Push aneine Amazon SQS-Warteschlangegesendet.

fs.s3.consistent.notification.SQS.queueNameEMRFS-Inconsistency-<jobFlowId>

Wenn Sie diese Eigenschaftändern, können Sie Ihren eigenenSQS-Warteschlangennamenfür Nachrichten zu EventualConsistency-Problemen vonAmazon S3 angeben.

fs.s3.consistent.notification.SQS.customMsgnone Über diese Eigenschaft können Siebenutzerdefinierte Informationenangeben, die in SQS-Nachrichtenzu Eventual Consistency-Problemen von Amazon S3enthalten sein sollen. Wenn fürdiese Eigenschaft kein Wertfestgelegt ist, ist das entsprechendeFeld in der Nachricht leer.

fs.s3.consistent.dynamodb.endpoint none Mit dieser Eigenschaft könnenSie einen benutzerdefiniertenDynamoDB-Endpunkt für dieMetadaten Ihrer konsistentenAnsicht angeben.

EMRFS-CLI – ReferenzDie EMRFS-CLI ist standardmäßig auf allen Cluster-Master-Knoten installiert, die mit Amazon EMRVersion 3.2.1 oder höher erstellt wurden. Sie können die EMRFS CLI zum Verwalten der Metadaten für diekonsistente Ansicht verwenden.

Note

Der Befehl emrfs wird nur bei der VT100-Terminal-Emulation unterstützt. Er funktioniert jedochunter Umständen auch mit anderen Terminal-Emulator-Modi.

Übergeordneter Befehl "emrfs"

Der Top-Level-Befehl emrfs unterstützt die folgende Struktur.

emrfs [describe-metadata | set-metadata-capacity | delete-metadata | create-metadata | \list-metadata-stores | diff | delete | sync | import ] [options] [arguments]

99

Page 107: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Geben Sie [Optionen] mit oder ohne [Argumente] an, wie in der folgenden Tabelle beschrieben. Für[Optionen], die speziell für Unterbefehle (describe-metadata, set-metadata-capacity usw.) gelten,finden Sie nachstehend die jeweiligen Unterbefehle.

[Optionen] für "emrfs"

Option Description (Beschreibung) Erforderlich

-a AWS_ACCESS_KEY_ID| --access-keyAWS_ACCESS_KEY_ID

Der AWS-Zugriffsschlüssel, den Sie zum Schreibenvon Objekten zu Amazon S3 und zum Erstelleneines Metadatenspeichers in DynamoDB oder fürden Zugriff auf diesen verwenden. StandardmäßigAWS_ACCESS_KEY_ID ist auf den Zugriffsschlüsselfestgelegt, der zum Erstellen des Clusters verwendetwird.

Nein

-s AWS_SECRET_ACCESS_KEY| --secret-keyAWS_SECRET_ACCESS_KEY

Der geheime AWS-Schlüssel, der mit demZugriffsschlüssel verknüpft ist, den Sie zum Schreibenvon Objekten zu Amazon S3 und zum Erstelleneines Metadatenspeichers in DynamoDB oder fürden Zugriff auf diesen verwenden. StandardmäßigAWS_SECRET_ACCESS_KEY ist auf den geheimenSchlüssel festgelegt, der dem Zugriffsschlüsselzugeordnet ist, der zum Erstellen des Clustersverwendet wurde.

Nein

-v | --verbose Erzeugt eine ausführliche Ausgabe. Nein

-h | --help Zeigt die Hilfenachricht für den emrfs-Befehl mit einerVerwendungsanweisung an.

Nein

Unterbefehl "emrfs describe-metadata"

[Optionen] für "emrfs describe-metadata"

Option Description (Beschreibung) Erforderlich

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME ist der Name der DynamoDB-Metadatentabelle. Wenn das Symbol METADATA_NAMEArgument wird nicht angegeben, der Standardwert istEmrFSMetadata.

Nein

Example Beispiel für "emrfs describe-metadata"

Das folgende Beispiel beschreibt die Standardmetadatentabelle.

$ emrfs describe-metadataEmrFSMetadata read-capacity: 400 write-capacity: 100 status: ACTIVE approximate-item-count (6 hour delay): 12

100

Page 108: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Unterbefehl "emrfs set-metadata-capacity"

[Optionen] für "emrfs set-metadata-capacity"

Option Description (Beschreibung) Erforderlich

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME ist der Name der DynamoDB-Metadatentabelle. Wenn das Symbol METADATA_NAMEArgument wird nicht angegeben, der Standardwert istEmrFSMetadata.

Nein

-r READ_CAPACITY | --read-capacity READ_CAPACITY

Die angeforderte Lesedurchsatzkapazität für dieMetadatentabelle. Wenn das Symbol READ_CAPACITYArgument wird nicht angegeben, der Standardwert ist400.

Nein

-w WRITE_CAPACITY| --write-capacityWRITE_CAPACITY

Die angeforderte Schreibdurchsatzkapazität für dieMetadatentabelle. Wenn das Symbol WRITE_CAPACITYArgument wird nicht angegeben, der Standardwert ist100.

Nein

Example Beispiel für "emrfs set-metadata-capacity"

Im folgenden Beispiel ist für die Metadatentabelle 600 die Lesedurchsatzkapazität auf 150 und dieSchreibkapazität auf EmrMetadataAlt festgelegt.

$ emrfs set-metadata-capacity --metadata-name EmrMetadataAlt --read-capacity 600 --write-capacity 150 read-capacity: 400 write-capacity: 100 status: UPDATING approximate-item-count (6 hour delay): 0

Unterbefehl "emrfs delete-metadata"

[Optionen] für "emrfs delete-metadata"

Option Description (Beschreibung) Erforderlich

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME ist der Name der DynamoDB-Metadatentabelle. Wenn das Symbol METADATA_NAMEArgument wird nicht angegeben, der Standardwert istEmrFSMetadata.

Nein

Example Beispiel für "emrfs delete-metadata"

Das folgende Beispiel löscht die Standardmetadatentabelle.

$ emrfs delete-metadata

101

Page 109: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Unterbefehl "emrfs create-metadata"

[Optionen] für "emrfs create-metadata"

Option Description (Beschreibung) Erforderlich

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME ist der Name der DynamoDB-Metadatentabelle. Wenn das Symbol METADATA_NAMEArgument wird nicht angegeben, der Standardwert istEmrFSMetadata.

Nein

-r READ_CAPACITY | --read-capacity READ_CAPACITY

Die angeforderte Lesedurchsatzkapazität für dieMetadatentabelle. Wenn das Symbol READ_CAPACITYArgument wird nicht angegeben, der Standardwert ist400.

Nein

-w WRITE_CAPACITY| --write-capacityWRITE_CAPACITY

Die angeforderte Schreibdurchsatzkapazität für dieMetadatentabelle. Wenn das Symbol WRITE_CAPACITYArgument wird nicht angegeben, der Standardwert ist100.

Nein

Example Beispiel für "emrfs create-metadata"

Im folgenden Beispiel wird eine Metadatentabelle mit dem Namen EmrFSMetadataAlt erstellt.

$ emrfs create-metadata -m EmrFSMetadataAltCreating metadata: EmrFSMetadataAltEmrFSMetadataAlt read-capacity: 400 write-capacity: 100 status: ACTIVE approximate-item-count (6 hour delay): 0

Unterbefehl "emrfs list-metadata-stores"Der Unterbefehl emrfs list-metadata-stores hat keine [Optionen].

Example Beispiel für "list-metadata-stores"

Im folgenden Beispiel werden Ihre Metadatentabellen aufgelistet.

$ emrfs list-metadata-stores EmrFSMetadata

Unterbefehl "emrfs diff"

[Optionen] für "emrfs diff"

Option Description (Beschreibung) Erforderlich

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME ist der Name der DynamoDB-Metadatentabelle. Wenn das Symbol METADATA_NAMEArgument wird nicht angegeben, der Standardwert istEmrFSMetadata.

Nein

s3://s3Path Der Pfad zu dem Amazon S3-Bucket für den Vergleichmit der Metadaten-Tabelle. Die Buckets werden rekursivsynchronisiert.

Ja

102

Page 110: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Example Beispiel für "emrfs diff"

Im folgenden Beispiel wird die Standardmetadatentabelle mit einem Amazon S3-Bucket verglichen.

$ emrfs diff s3://elasticmapreduce/samples/cloudfrontBOTH | MANIFEST ONLY | S3 ONLYDIR elasticmapreduce/samples/cloudfrontDIR elasticmapreduce/samples/cloudfront/code/DIR elasticmapreduce/samples/cloudfront/input/DIR elasticmapreduce/samples/cloudfront/logprocessor.jarDIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-14.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-15.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-16.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-17.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-18.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-19.WxYz1234DIR elasticmapreduce/samples/cloudfront/input/XABCD12345678.2009-05-05-20.WxYz1234DIR elasticmapreduce/samples/cloudfront/code/cloudfront-loganalyzer.tgz

Unterbefehl "emrfs delete"

[Optionen] für "emrfs delete"

Option Description (Beschreibung) Erforderlich

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME ist der Name der DynamoDB-Metadatentabelle. Wenn das Symbol METADATA_NAMEArgument wird nicht angegeben, der Standardwert istEmrFSMetadata.

Nein

s3://s3Path Der Pfad zum Amazon S3-Bucket, den Sie für diekonsistente Ansicht verfolgen. Die Buckets werdenrekursiv synchronisiert.

Ja

-t TIME | --time TIME Die Ablaufzeit (interpretiert mithilfe des Zeiteinheit-Arguments). Alle Metadateneinträge, die älter als diesind TIME -Argumente für den angegebenen Bucketgelöscht.

 

-u UNIT | --time-unit UNIT Die Maßeinheit für die Interpretation des Zeitarguments(Nanosekunden, Mikrosekunden, Millisekunden,Sekunden, Minuten, Stunden oder Tage). Wenn keinArgument angegeben ist, lautet der Standardwert days.

 

--read-consumptionREAD_CONSUMPTION

Die angeforderte Menge an verfügbarem Lesedurchsatzfür die Operation delete. Wenn das SymbolREAD_CONSUMPTION Argument ist nicht angegeben,der Standardwert ist 400.

Nein

--write-consumptionWRITE_CONSUMPTION

Die angeforderte Menge an verfügbaremSchreibdurchsatz für die Operation delete. Wenn dasSymbol WRITE_CONSUMPTION Argument ist nichtangegeben, der Standardwert ist 100.

Nein

Example Beispiel für "emrfs delete"

Im folgenden Beispiel werden alle Objekte in einem Amazon S3-Bucket aus den verfolgenden Metadatenfür die konsistente Ansicht entfernt.

103

Page 111: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

$ emrfs delete s3://elasticmapreduce/samples/cloudfrontentries deleted: 11

Unterbefehl "emrfs import"

[Optionen] für "emrfs import"

Option Description (Beschreibung) Erforderlich

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME ist der Name der DynamoDB-Metadatentabelle. Wenn das Symbol METADATA_NAMEArgument wird nicht angegeben, der Standardwert istEmrFSMetadata.

Nein

s3://s3Path Der Pfad zum Amazon S3-Bucket, den Sie für diekonsistente Ansicht verfolgen. Die Buckets werdenrekursiv synchronisiert.

Ja

--read-consumptionREAD_CONSUMPTION

Die angeforderte Menge an verfügbarem Lesedurchsatzfür die Operation delete. Wenn das SymbolREAD_CONSUMPTION Argument ist nicht angegeben,der Standardwert ist 400.

Nein

--write-consumptionWRITE_CONSUMPTION

Die angeforderte Menge an verfügbaremSchreibdurchsatz für die Operation delete. Wenn dasSymbol WRITE_CONSUMPTION Argument ist nichtangegeben, der Standardwert ist 100.

Nein

Example Beispiel für "emrfs import"

Im folgenden Beispiel werden alle Objekte in einem Amazon S3-Bucket mit den verfolgenden Metadaten fürdie konsistente Ansicht importiert. Alle unbekannten Schlüssel werden ignoriert.

$ emrfs import s3://elasticmapreduce/samples/cloudfront

Unterbefehl "emrfs sync"

[Optionen] für "emrfs sync"

Option Description (Beschreibung) Erforderlich

-m METADATA_NAME | --metadata-name METADATA_NAME

METADATA_NAME ist der Name der DynamoDB-Metadatentabelle. Wenn das Symbol METADATA_NAMEArgument wird nicht angegeben, der Standardwert istEmrFSMetadata.

Nein

s3://s3Path Der Pfad zum Amazon S3-Bucket, den Sie für diekonsistente Ansicht verfolgen. Die Buckets werdenrekursiv synchronisiert.

Ja

--read-consumptionREAD_CONSUMPTION

Die angeforderte Menge an verfügbarem Lesedurchsatzfür die Operation delete. Wenn das SymbolREAD_CONSUMPTION Argument ist nicht angegeben,der Standardwert ist 400.

Nein

104

Page 112: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Option Description (Beschreibung) Erforderlich

--write-consumptionWRITE_CONSUMPTION

Die angeforderte Menge an verfügbaremSchreibdurchsatz für die Operation delete. Wenn dasSymbol WRITE_CONSUMPTION Argument ist nichtangegeben, der Standardwert ist 100.

Nein

Example Beispiel für "emrfs sync"

Im folgenden Beispiel werden alle Objekte in einem Amazon S3-Bucket mit den verfolgenden Metadaten fürdie konsistente Ansicht importiert. Alle unbekannten Schlüssel werden gelöscht.

$ emrfs sync s3://elasticmapreduce/samples/cloudfrontSynching samples/cloudfront 0 added | 0 updated | 0 removed | 0 unchangedSynching samples/cloudfront/code/ 1 added | 0 updated | 0 removed | 0 unchangedSynching samples/cloudfront/ 2 added | 0 updated | 0 removed | 0 unchangedSynching samples/cloudfront/input/ 9 added | 0 updated | 0 removed | 0 unchangedDone synching s3://elasticmapreduce/samples/cloudfront 9 added | 0 updated | 1 removed | 0 unchangedcreating 3 folder key(s)folders written: 3

Unterbefehl "emrfs read-sqs"

[Optionen] für "emrfs read-sqs"

Option Description (Beschreibung) Erforderlich

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME ist der Name der in Amazon SQSkonfigurierten emrfs-site.xml-Warteschlange.Der Standardwert ist EMRFS-Inconsistency-<jobFlowId>.

Ja

-o OUTPUT_FILE | --output-file OUTPUT_FILE

OUTPUT_FILE ist der Pfad zur Ausgabedatei im lokalenDateisystem des Master-Knotens. Nachrichten, die ausder Warteschlange gelesen werden, werden in dieseDatei geschrieben.

Ja

Unterbefehl "emrfs delete-sqs"

[Optionen] für emrfs delete-sqs

Option Description (Beschreibung) Erforderlich

-q QUEUE_NAME | --queue-name QUEUE_NAME

QUEUE_NAME ist der Name der in Amazon SQSkonfigurierten emrfs-site.xml-Warteschlange.Der Standardwert ist EMRFS-Inconsistency-<jobFlowId>.

Ja

105

Page 113: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonsistente Ansicht

Übermitteln von EMRFS-CLI-Befehlen als Schritte

Das folgende Beispiel zeigt die Verwendung des Dienstprogramms emrfs auf dem Master-Knoten durchdie Nutzung von AWS CLI oder API und command-runner.jar zum Ausführen des Befehls emrfsals Schritt. Das Beispiel verwendet das AWS SDK for Python (Boto3), um einen Schritt zu einem Clusterhinzuzufügen, der Objekte in einem Amazon S3-Bucket zur EMRFS-Standardmetadatentabelle hinzufügt.

import boto3from botocore.exceptions import ClientError

def add_emrfs_step(command, bucket_url, cluster_id, emr_client): """ Add an EMRFS command as a job flow step to an existing cluster.

:param command: The EMRFS command to run. :param bucket_url: The URL of a bucket that contains tracking metadata. :param cluster_id: The ID of the cluster to update. :param emr_client: The Boto3 Amazon EMR client object. :return: The ID of the added job flow step. Status can be tracked by calling the emr_client.describe_step() function. """ job_flow_step = { 'Name': 'Example EMRFS Command Step', 'ActionOnFailure': 'CONTINUE', 'HadoopJarStep': { 'Jar': 'command-runner.jar', 'Args': [ '/usr/bin/emrfs', command, bucket_url ] } }

try: response = emr_client.add_job_flow_steps( JobFlowId=cluster_id, Steps=[job_flow_step]) step_id = response['StepIds'][0] print(f"Added step {step_id} to cluster {cluster_id}.") except ClientError: print(f"Couldn't add a step to cluster {cluster_id}.") raise else: return step_id

def usage_demo(): emr_client = boto3.client('emr') # Assumes the first waiting cluster has EMRFS enabled and has created metadata # with the default name of 'EmrFSMetadata'. cluster = emr_client.list_clusters(ClusterStates=['WAITING'])['Clusters'][0] add_emrfs_step( 'sync', 's3://elasticmapreduce/samples/cloudfront', cluster['Id'], emr_client)

if __name__ == '__main__': usage_demo()

Sie können den zurückgegebenen step_id-Wert verwenden, um die Protokolle auf das Ergebnis derOperation zu überprüfen.

106

Page 114: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideZugriff auf EMRFS-Daten in Amazon S3 genehmigen

Zugriff auf EMRFS-Daten in Amazon S3 genehmigenStandardmäßig bestimmt die EMR-Rolle für EC2 die Berechtigungen für den Zugriff auf EMRFS-Daten inAmazon S3. Die IAM-Richtlinien, die dieser Rolle zugeordnet werden, gelten unabhängig von dem oderder Gruppe, die die Anforderung über EMRFS erstellen. Der Standardwert ist EMR_EC2_DefaultRole.Weitere Informationen finden Sie unter Service Role for Cluster EC2 Instances (EC2 InstanceProfile) (p. 229).

Ab Amazon EMR Version 5.10.0 können Sie mittels einer Sicherheitskonfiguration IAM-Rollen für EMRFSangeben. Auf diese Weise können Sie Berechtigungen für EMRFS-Anforderungen an Amazon S3 fürCluster mit mehreren Benutzern anpassen. Sie können verschiedene IAM-Rollen für verschiedeneBenutzer und Gruppen und für verschiedene Amazon S3-Bucket-Speicherorte angeben, basierend auf demPräfix in Amazon S3. Wenn EMRFS eine Anforderung an Amazon S3 stellt, die mit Benutzern, Gruppenoder Standorten, die Sie angeben, übereinstimmt, verwendet der Cluster die entsprechende Rolle und nichtdie EMR-Rolle für EC2. Weitere Informationen finden Sie im Configure IAM Roles for EMRFS Requests toAmazon S3 (p. 244).

Wenn die Anforderungen Ihrer Amazon EMR-Lösung über die Möglichkeiten hinausgehen, die IAM-Rollenfür EMRFS bereitstellen, können Sie alternativ eine benutzerdefinierte Anmeldeinformationsanbieter-Klassedefinieren, mit der Sie den Zugriff auf EMRFS-Daten in Amazon S3 anpassen können.

Erstellen eines benutzerdefinierten Anmeldeinformationsanbietersfür EMRFS-Daten in Amazon S3Um einen benutzerdefinierten Anmeldeinformationsanbieter zu erstellen, implementieren Sie die KlassenAWSCredentialsProvider und Hadoop Configurable (Konfigurierbar).

Eine detaillierte Beschreibung dieses Ansatzes finden Sie unter Sicheres Analysieren von Daten aus einemanderen AWS-Konto mit EMRFS im AWS Big Data-Blog. Der Blogbeitrag enthält ein Tutorial, der Sie durchden gesamten Prozess führt, von der Erstellung von IAM-Rollen bis zum Start des Clusters. Er enthält auchein Java-Codebeispiel zum Implementieren der benutzerdefinierten Anmeldeinformationsanbieter-Klasse.

Die grundlegenden Schritte sind wie folgt:

So definieren Sie einen benutzerdefinierten Anmeldeinformationsanbieter

1. Erstellen Sie eine benutzerdefinierte Anmeldeinformationsanbieter-Klasse als JAR-Datei.2. Führen Sie ein Skript als Bootstrap-Aktion zum Kopieren der JAR-Datei mit dem benutzerdefinierten

Anmeldeinformationsanbieter in /usr/share/aws/emr/emrfs/auxlib im Master-Knoten desClusters aus. Weitere Informationen zu Bootstrap-Aktionen finden Sie unter (Optional) Erstellen vonBootstrap-Aktionen zum Installieren zusätzlicher Software.

3. Passen Sie die emrfs-site-Klassifizierung an, um die in der JAR-Datei implementierte Klasseanzugeben. Weitere Informationen zum Angeben von Konfigurationsobjekten zum Anpassen vonAnwendungen finden Sie unter Konfigurieren von Anwendungen im Amazon EMR-Versionshinweise.

Das folgende Beispiel zeigt einen create-cluster-Befehl, der einen Hive-Cluster mit üblichenKonfigurationsparametern startet und außerdem Folgendes umfasst:

• Eine Bootstrap-Aktion, die das Skript copy_jar_file.sh ausführt, das zu mybucket in AmazonS3 gespeichert wird.

• Eine emrfs-site-Klassifizierung, in der ein in der JAR-Datei als benutzerdefinierterAnmeldeinformationsanbieter als MyCustomCredentialsProvider definiert wird.

107

Page 115: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngeben der Amazon S3-

Verschlüsselung mit EMRFS-Eigenschaften

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws emr create-cluster --applications Name=Hive \--bootstrap-actions '[{"Path":"s3://mybucket/copy_jar_file.sh","Name":"Custom action"}]' \--ec2-attributes '{"KeyName":"MyKeyPair","InstanceProfile":"EMR_EC2_DefaultRole",\"SubnetId":"subnet-xxxxxxxx","EmrManagedSlaveSecurityGroup":"sg-xxxxxxxx",\"EmrManagedMasterSecurityGroup":"sg-xxxxxxxx"}' \--service-role EMR_DefaultRole --enable-debugging --release-label emr-5.31.0 \--log-uri 's3n://my-emr-log-bucket/' --name 'test-awscredentialsprovider-emrfs' \--instance-type=m5.xlarge --instance-count 3 \--configurations '[{"Classification":"emrfs-site",\"Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\"Configurations":[]}]'

Angeben der Amazon S3-Verschlüsselung mitEMRFS-Eigenschaften

Important

Ab Amazon EMR Version 4.8.0 können Sie Sicherheitskonfigurationen verwenden, umVerschlüsselungseinstellungen einfacher und mit mehr Optionen einzurichten. Wir empfehlen dieVerwendung von Sicherheitskonfigurationen. Weitere Informationen finden Sie unter Konfigurierender Datenverschlüsselung (p. 188). Die in diesem Abschnitt beschriebenen Konsolenbefehlesind für Versionen vor 4.8.0 verfügbar. Wenn Sie die AWS CLI zum Konfigurieren der Amazon S3-Verschlüsselung sowohl in der Cluster-Konfiguration als auch in einer Sicherheitskonfiguration innachfolgenden Versionen verwenden, hat die Sicherheitskonfiguration Vorrang vor der Cluster-Konfiguration.

Wenn Sie einen Cluster erstellen, können Sie die serverseitige Verschlüsselung (SSE) oder die clientseitigeVerschlüsselung (CSE) für EMRFS-Daten in Amazon S3 mithilfe der Konsole oder mithilfe von emrfs-site-Klassifizierungseigenschaften über die AWS CLI oder das EMR SDK angeben. Amazon S3 SSE undCSE schließen sich gegenseitig aus. Sie können jede der beiden Optionen, aber nicht beide auswählen.

Weitere Informationen über AWS CLI-Befehle finden Sie im entsprechenden Abschnitt für IhrenVerschlüsselungstyp weiter unten.

So geben Sie EMRFS-Verschlüsselungsoptionen mit der AWS Management Console an

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create Cluster (Cluster erstellen) und Go to advanced options (Erweiterte Optionen

aufrufen) aus.3. Wählen Sie Release (Version) 4.7.2 oder früher aus.4. Wählen Sie weitere Optionen für Software and Steps (Software und Steps) aus wie für Ihre

Anwendung erforderlich. Wählen Sie anschließend Next (Weiter) aus.5. Wählen Sie in den Bereichen Hardware (Hardware) und General Cluster Settings (Allgemeine Cluster-

Einstellungen) Einstellungen aus wie für Ihre Anwendung erforderlich.

108

Page 116: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngeben der Amazon S3-

Verschlüsselung mit EMRFS-Eigenschaften

6. Wählen Sie im Bereich Security (Sicherheit) in Authentication and encryption (Authentifizierung undVerschlüsselung) die zu verwendende Option S3 Encryption (with EMRFS) (S3-Verschlüsselung (mitEMFRS)) aus.

Note

S3 server-side encryption with KMS Key Management (Serverseitige S3-Verschlüsselung mitKMS-Schlüsselverwaltung) (SSE-KMS) ist bei Verwendung von Amazon EMR Version 4.4oder früher nicht verfügbar.

• Wenn Sie eine Option wählen, die AWS Key Management (AWS-Schlüsselverwaltung) verwendet,müssen Sie eine AWS KMS Key ID (AWS KMS-Schlüssel-ID) auswählen. Weitere Informationenfinden Sie im Verwenden von AWS KMS-Kundenmasterschlüsseln (CMKs) für die EMRFS-Verschlüsselung (p. 109).

• Wenn Sie S3 client-side encryption with custom materials provider (Clientseitige S3-Verschlüsselungmit benutzerdefiniertem Materialanbieter) auswählen, müssen Sie einen Wert in Class name(Klassenname) und JAR location (JAR-Speicherort) angeben. Weitere Informationen finden Sie imClientseitige Amazon S3-Verschlüsselung (p. 111).

7. Wählen Sie weitere Optionen wie für Ihre Anwendung erforderlich aus. Wählen Sie anschließendCreate Cluster (Cluster erstellen) aus.

Verwenden von AWS KMS-Kundenmasterschlüsseln (CMKs) fürdie EMRFS-VerschlüsselungDer AWS KMS-Verschlüsselungsschlüssel muss in derselben Region erstellt werden wie die AmazonEMR-Cluster-Instance und die Amazon S3-Buckets, die mit EMRFS verwendet werden. Wenn derangegebene Schlüssel sich in einem anderen Konto befindet als der, mit dem Sie Cluster konfigurieren,müssen sie den Schlüssel anhand seines ARN angeben.

Die Rolle für das Amazon EC2-Instance-Profil muss über Berechtigungen zur Verwendungdes angegebenen CMK verfügen. Die Standardrolle für das Instance-Profil in Amazon EMR istEMR_EC2_DefaultRole. Wenn Sie eine andere Rolle für das Instance-Profil verwenden oder IAM-Rollen für EMRFS-Anforderungen an Amazon S3 verwenden, müssen Sie sicherstellen, dass jedeRolle entsprechend als Schlüsselbenutzer hinzugefügt wird. So erhält die Rolle Berechtigungen zurVerwendung des CMK. Weitere Informationen finden Sie unter Verwenden von Schlüsselrichtlinien im AWSKey Management Service Developer Guide und Service Role for Cluster EC2 Instances (EC2 InstanceProfile) (p. 229).

Mithilfe der AWS Management Console können Sie Ihr Instance-Profil oder EC2-Instance-Profil zur Listeder Schlüsselbenutzer für den angegebenen AWS KMS-CMK hinzufügen oder Sie können die AWS CLIoder ein AWS SDK verwenden, um eine entsprechende Schlüsselrichtlinie anzufügen.

Im folgenden Verfahren wird beschrieben, wie Sie das Standard-EMR-Instance-ProfilEMR_EC2_DefaultRole als Schlüsselbenutzer mithilfe der AWS Management Console hinzufügen. Dabeiwird davon ausgegangen, dass Sie bereits einen CMK erstellt haben. Weitere Informationen über dieErstellung eines neuen CMK finden Sie unter Erstellen von Schlüsseln im AWS Key Management ServiceDeveloper Guide.

So fügen Sie das EC2-Instance-Profil für Amazon EMR zur Liste der Benutzer vonVerschlüsselungsschlüsseln hinzu:

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS Key ManagementService(AWS KMS)-Konsole unter https://console.aws.amazon.com/kms.

2. Um die AWS-Region zu ändern, verwenden Sie die Regionenauswahl in der oberen rechten Ecke derSeite.

3. Wählen Sie den Alias des zu ändernden CMK aus.

109

Page 117: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngeben der Amazon S3-

Verschlüsselung mit EMRFS-Eigenschaften

4. Wählen Sie auf der Seite mit den Schlüsseldetails unter Key Users (Schlüsselbenutzer) die Option Add(Hinzufügen) aus.

5. Wählen Sie die entsprechende Rolle im Dialogfeld Add key users (Schlüsselbenutzer hinzufügen) aus.Der Name der Standardrolle lautet EMR_EC2_DefaultRole.

6. Wählen Sie Add aus.

Serverseitige Amazon S3-VerschlüsselungWenn Sie serverseitige Verschlüsselung in Amazon S3 einrichten, verschlüsselt Amazon S3 die Datenauf der Objektebene, während die Daten auf den Datenträger geschrieben werden, und entschlüsselt sie,wenn auf sie zugegriffen wird. Weitere Informationen über SSE finden Sie unter Schutz von Daten mitserverseitiger Verschlüsselung im Entwicklerhandbuch für Amazon Simple Storage Service.

Wenn Sie SSE in Amazon EMR einrichten, haben Sie die Wahl zwischen zwei verschiedenen Systemen fürdie Schlüsselverwaltung:

• SSE-S3 – Amazon S3 verwaltet die Schlüssel für Sie.• SSE-KMS – Hierbei verwenden Sie einen AWS KMS-Kundenmasterschlüssel (Customer Master

Key, CMK), dessen Richtlinien für Amazon EMR angepasst sind. Weitere Informationen zuden Schlüsselanforderungen für Amazon EMR finden Sie unter Verwenden von AWS KMS-Kundenmasterschlüsseln (CMKs) für die Verschlüsselung (p. 212).

SSE mit vom Kunden bereitgestellten Schlüsseln (SSE-C) ist für Amazon EMR nicht verfügbar.

Erstellen eines Clusters mit aktivierter SSE-S3 mithilfe der AWS CLI

• Geben Sie den folgenden Befehl ein:

aws emr create-cluster --release-label emr-4.7.2 or earlier \--instance-count 3 --instance-type m5.xlarge --emrfs Encryption=ServerSide

Sie können SSE-S3 auch aktivieren, indem Sie die Eigenschaft fs.s3.enableServerSideEncryption in denemrfs-site-Eigenschaften auf „true“ setzen. Lesen Sie dazu das Beispiel für SSE-KMS unten, undlassen Sie die Eigenschaft für Key-ID weg.

Erstellen eines Clusters mit aktivierter SSE-KMS mithilfe der AWS CLI

Note

SSE-KMS steht nur in Amazon EMR-Version 4.5.0 und höher zur Verfügung.

• Geben Sie den folgenden AWS CLI-Befehl ein, um einen Cluster mit SSE-KMSzu erstellen, wobei keyID ist ein AWS KMS-Kundenmasterschlüssel (CMK), z. B.a4567b8-9900-12ab-1234-123a45678901:

aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 \--instance-type m5.xlarge --use-default-roles \--emrfs Encryption=ServerSide,Args=[fs.s3.serverSideEncryption.kms.keyId=keyId]

--ODER--

Geben Sie unter Verwendung der emrfs-site-Klassifizierung den folgenden AWS CLI-Befehl einund stellen Sie eine JSON-Konfigurationsdatei bereit, deren Inhalt dem Inhalt der im folgenden Beispielgezeigten Datei myConfig.json ähnlich ist:

110

Page 118: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngeben der Amazon S3-

Verschlüsselung mit EMRFS-Eigenschaften

aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop --configurations file://myConfig.json --use-default-roles

Beispielinhalt von myConfig.json:

[ { "Classification":"emrfs-site", "Properties": { "fs.s3.enableServerSideEncryption": "true", "fs.s3.serverSideEncryption.kms.keyId":"a4567b8-9900-12ab-1234-123a45678901" } }]

Konfigurationseigenschaften für SSE-S3 und SSE-KMSDiese Eigenschaften können unter Verwendung der emrfs-site- Konfigurationsklassifikation konfiguriertwerden. SSE-KMS steht nur in Amazon EMR-Version 4.5.0 und höher zur Verfügung.

Eigenschaft Standardwert Description (Beschreibung)

fs.s3.enableServerSideEncryption false Wenn dies auf true festgelegtwurde, werden in Amazon S3gespeicherte Objekte mittelsserverseitiger Verschlüsselungverschlüsselt. Wenn kein Schlüsselausgewählt wurde, wird SSE-S3verwendet.

fs.s3.serverSideEncryption.kms.keyId n/a Gibt eine AWS KMS-Schlüssel-ID oder einen ARN an. Wenn einSchlüssel ausgewählt wurde, wirdSSE-KMS verwendet.

Clientseitige Amazon S3-VerschlüsselungBei Client-seitiger Verschlüsselung von Amazon S3 erfolgt der Amazon S3-Ver- undEntschlüsselungsvorgang im EMRFS-Client auf Ihrem Cluster. Objekte werden vor dem Hochladennach Amazon S3 verschlüsselt und nach dem Herunterladen entschlüsselt. Der von Ihnen festgelegteAnbieter stellt den vom Client verwendeten Verschlüsselungsschlüssel bereit. Der Client kann vom AWSKMS bereitgestellte Schlüssel (CSE-KMS) oder eine benutzerdefinierte Java-Klasse verwenden, die denclientseitigen Masterschlüssel (CSE-C) bereitstellt. Die Verschlüsselungseigenschaften unterscheidensich geringfügig zwischen CSE-KMS und CSE-C, abhängig vom festgelegten Anbieter und von denMetadaten des Objekts, das entschlüsselt oder verschlüsselt werden soll. Weitere Informationen über dieseUnterschiede finden Sie unter Protecting Data Using Client-Side Encryption im Entwicklerhandbuch fürAmazon Simple Storage Service.

Note

Amazon S3-CSE stellt nur sicher, dass EMRFS-Daten, die mit Amazon S3 ausgetauscht werden,verschlüsselt sind. Nicht alle Daten auf den Cluster-Instance-Volumes werden verschlüsselt. DaHue EMRFS nicht verwendet, werden darüber hinaus Objekte, die vom Hue S3-Dateibrowser inAmazon S3 geschrieben werden, nicht verschlüsselt.

111

Page 119: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngeben der Amazon S3-

Verschlüsselung mit EMRFS-Eigenschaften

So geben Sie CSE-KMS für EMRFS-Daten in Amazon S3 über die AWS CLI an

• Geben Sie den folgenden Befehl ein und ersetzen Sie MyKMSKeyID mit der Schlüssel-ID oder demARN des zu verwendenden AWS KMS-CMK:

aws emr create-cluster --release-label emr-4.7.2 or earlier--emrfs Encryption=ClientSide,ProviderType=KMS,KMSKeyId=MyKMSKeyId

Erstellen eines benutzerdefinierten SchlüsselanbietersWenn Sie einen benutzerdefinierten Schlüsselanbieter erstellen, implementiert die Anwendung dieEncryptionMaterialsProvider-Schnittstelle, die in AWS SDK for Java-Version 1.11.0 und höher verfügbar ist.Die Implementierung kann jede Strategie zur Bereitstellung der Verschlüsselungsmaterialien verwenden.Sie können beispielsweise die Bereitstellung statischer Verschlüsselungsmaterialien oder die Integrationmit einem komplexeren Schlüsselverwaltungssystem wählen.

Der verwendete Verschlüsselungsalgorithmus für benutzerdefinierte Verschlüsselungsmaterialien mussAES/GCM/NoPadding sein.

Die EncryptionMaterialsProvider-Klasse ruft Verschlüsselungsmaterialien nach Verschlüsselungskontextab. Amazon EMR füllt die Verschlüsselungskontextinformationen während der Laufzeit. So kann derAufrufer leichter feststellen, welche Verschlüsselungsmaterialien zurückzugeben sind.

Example Beispiel: Verwenden eines benutzerdefinierten Schlüsselanbieters für die Amazon S3-Verschlüsselung mit EMRFS

Wenn Amazon EMR zum Durchführen der Verschlüsselung die Verschlüsselungsmaterialienvon der EncryptionMaterialsProvider-Klasse abruft, füllt EMRFS wahlweise zwei Felder desmaterialsDescription-Arguments: den Amazon S3-URI für das Objekt und die JobFlowId des Clusters.Diese Informationen können von der EncryptionMaterialsProvider-Klasse zur selektiven Rückgabe derVerschlüsselungsmaterialien verwendet werden.

Beispielsweise kann der Anbieter unterschiedliche Schlüssel für unterschiedliche Amazon S3-URI-Präfixezurückgeben. Es ist die Beschreibung der zurückgegebenen Verschlüsselungsmaterialien, die schließlichmit dem Amazon S3-Objekt gespeichert wird, und nicht der materialsDescription-Wert, der von EMRFSgeneriert und an den Anbieter weitergeleitet wird. Beim Entschlüsseln eines Amazon S3-Objekts wird dieVerschlüsselungsmaterialbeschreibung an die EncryptionMaterialsProvider-Klasse übergeben, sodassdiese wiederum selektiv den passenden Schlüssel zum Entschlüsseln des Objekts zurückgeben kann.

Nachstehend finden Sie eine EncryptionMaterialsProvider-Referenzimplementation. Ein weiterebenutzerdefinierter Anbieter, EMRFSRSAEncryptionMaterialsProvider, ist auf Github verfügbar.

import com.amazonaws.services.s3.model.EncryptionMaterials;import com.amazonaws.services.s3.model.EncryptionMaterialsProvider;import com.amazonaws.services.s3.model.KMSEncryptionMaterials;import org.apache.hadoop.conf.Configurable;import org.apache.hadoop.conf.Configuration;

import java.util.Map;

/** * Provides KMSEncryptionMaterials according to Configuration */public class MyEncryptionMaterialsProviders implements EncryptionMaterialsProvider, Configurable{ private Configuration conf; private String kmsKeyId; private EncryptionMaterials encryptionMaterials;

112

Page 120: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngeben der Amazon S3-

Verschlüsselung mit EMRFS-Eigenschaften

private void init() { this.kmsKeyId = conf.get("my.kms.key.id"); this.encryptionMaterials = new KMSEncryptionMaterials(kmsKeyId); }

@Override public void setConf(Configuration conf) { this.conf = conf; init(); }

@Override public Configuration getConf() { return this.conf; }

@Override public void refresh() {

}

@Override public EncryptionMaterials getEncryptionMaterials(Map<String, String> materialsDescription) { return this.encryptionMaterials; }

@Override public EncryptionMaterials getEncryptionMaterials() { return this.encryptionMaterials; }}

Angabe eines benutzerdefinierten Materialanbieters unter Verwendung der AWSCLI

Um die AWS CLI zu verwenden, übergeben Sie die Argumente Encryption, ProviderType,CustomProviderClass und CustomProviderLocation an die Option emrfs.

aws emr create-cluster --instance-type m5.xlarge --release-label emr-4.7.2 or earlier --emrfs Encryption=ClientSide,ProviderType=Custom,CustomProviderLocation=s3://mybucket/myfolder/provider.jar,CustomProviderClass=classname

Wenn Sie Encryption auf ClientSide festlegen, wird die clientseitige Verschlüsselungaktiviert, CustomProviderClass ist der Name Ihres EncryptionMaterialsProvider-Objekts undCustomProviderLocation ist der lokale oder Amazon S3-Speicherort, von dem aus Amazon EMR aufjeden Knoten im Cluster kopiert und in den Klassenpfad platziert wird.CustomProviderClass

Angabe eines benutzerdefinierten Materialanbieters unter Verwendung eines SDK

Um ein SDK zu verwenden, können Sie die Eigenschaftfs.s3.cse.encryptionMaterialsProvider.uri festlegen, um die benutzerdefinierteEncryptionMaterialsProvider-Klasse, die Sie in Amazon S3 speichern, auf jeden Knoten in Ihrem Clusterherunterzuladen. Sie konfigurieren dies in der Datei emrfs-site.xml zusammen mit der aktivierten CSEsowie dem richtigen Speicherort des benutzerdefinierten Anbieters.

Beispielsweise kann Ihr Code in der AWS SDK for Java mit RunJobFlowRequest wie folgt aussehen:

<snip> Map<String,String> emrfsProperties = new HashMap<String,String>();

113

Page 121: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngeben der Amazon S3-

Verschlüsselung mit EMRFS-Eigenschaften

emrfsProperties.put("fs.s3.cse.encryptionMaterialsProvider.uri","s3://mybucket/MyCustomEncryptionMaterialsProvider.jar"); emrfsProperties.put("fs.s3.cse.enabled","true"); emrfsProperties.put("fs.s3.consistent","true"); emrfsProperties.put("fs.s3.cse.encryptionMaterialsProvider","full.class.name.of.EncryptionMaterialsProvider");

Configuration myEmrfsConfig = new Configuration() .withClassification("emrfs-site") .withProperties(emrfsProperties);

RunJobFlowRequest request = new RunJobFlowRequest() .withName("Custom EncryptionMaterialsProvider") .withReleaseLabel("emr-5.31.0") .withApplications(myApp) .withConfigurations(myEmrfsConfig) .withServiceRole("EMR_DefaultRole") .withJobFlowRole("EMR_EC2_DefaultRole") .withLogUri("s3://myLogUri/") .withInstances(new JobFlowInstancesConfig() .withEc2KeyName("myEc2Key") .withInstanceCount(2) .withKeepJobFlowAliveWhenNoSteps(true) .withMasterInstanceType("m5.xlarge") .withSlaveInstanceType("m5.xlarge") ); RunJobFlowResult result = emr.runJobFlow(request);</snip>

Benutzerdefinierter EncryptionMaterialsProvider mit ArgumentenMöglicherweise müssen Sie Argumente direkt dem Anbieter übergeben. Zu diesem Zweck können Siedie emrfs-site-Konfigurationsklassifizierung mit benutzerdefinierten Argumente als Eigenschaftenverwenden. Eine Beispielkonfiguration ist nachfolgend gezeigt, die als Datei gespeichert wird,myConfig.json:

[ { "Classification": "emrfs-site", "Properties": { "myProvider.arg1":"value1", "myProvider.arg2":"value2" } } ]

Über den AWS CLI-Befehl create-cluster können Sie die Option --configurations zum Angebender Datei wie unten gezeigt verwenden:

aws emr create-cluster --release-label emr-5.31.0 --instance-type m5.xlarge --instance-count 2 --configurations file://myConfig.json --emrfs Encryption=ClientSide,CustomProviderLocation=s3://mybucket/myfolder/myprovider.jar,CustomProviderClass=classname

Konfigurieren der EMRFS S3EC V2-UnterstützungS3 Java SDK-Versionen (1.11.837 und höher) unterstützen die Verschlüsselungsclient-Version 2 (S3ECV2) mit verschiedenen Sicherheitsverbesserungen. Weitere Informationen finden Sie im S3-BlogbeitragUpdates to the Amazon S3 Encryption Client. Weitere Informationen finden Sie auch unter Amazon S3Encryption Client Migration im AWS SDK for Java-Entwicklerhandbuch.

114

Page 122: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngeben der Amazon S3-

Verschlüsselung mit EMRFS-Eigenschaften

Der Verschlüsselungsclient V1 ist aus Gründen der Abwärtskompatibilität weiterhin im SDK verfügbar.Standardmäßig verwendet EMRFS S3EC V1 zum Verschlüsseln und Entschlüsseln von S3-Objekten, wennCSE aktiviert ist.

Mit S3EC V2 verschlüsselte S3-Objekte können nicht von EMRFS auf einem EMR-Cluster entschlüsseltwerden, dessen Release-Version älter als emr-5.31.0 (emr-5.30.1 und früher, emr-6.1.0 und früher) ist.

Example Konfigurieren von EMRFS für die Verwendung von S3EC V2

Um EMRFS für die Verwendung von S3EC V2 zu konfigurieren, fügen Sie die folgende Konfiguration hinzu:

{ "Classification": "emrfs-site", "Properties": { "fs.s3.cse.encryptionV2.enabled": "true" }}

emrfs-site.xml-Eigenschaften für die clientseitige Amazon S3-Verschlüsselung

Eigenschaft Standardwert Description (Beschreibung)

fs.s3.cse.enabled false Wenn dies auf true festgelegt ist,werden in Amazon S3 gespeicherteEMRFS-Objekte mittelsclientseitiger Verschlüsselungverschlüsselt.

fs.s3.cse.encryptionV2.enabled false Bei der Einstellung trueverwendet EMRFS den S3-Verschlüsselungsclient Version2 zum Verschlüsseln undEntschlüsseln von Objekten in S3.Verfügbar für EMR Version 5.31.0und höher.

fs.s3.cse.encryptionMaterialsProvider.uriN/A Gilt bei der VerwendungbenutzerdefinierterVerschlüsselungsmaterialien.Der Amazon S3-URI, indem sich die JAR mit demEncryptionMaterialsProviderbefindet. Wenn Sie diesen URIbereitstellen, lädt Amazon EMRautomatisch die JAR-Datei auf alleKnoten im Cluster herunter.

fs.s3.cse.encryptionMaterialsProvider N/A DerEncryptionMaterialsProvider-Klassenpfad, der bei derclientseitigen Verschlüsselungverwendet wird. Bei derVerwendung von CSE-KMS gebencom.amazon.ws.emr.hadoop.fs.cse.KMSEncryptionMaterialsProvideran.

115

Page 123: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideControl Cluster Termination

Eigenschaft Standardwert Description (Beschreibung)

fs.s3.cse.materialsDescription.enabled false Wenn auf true gesetzt, fülltden materialsDescription derverschlüsselten Objekte mitdem Amazon S3-URI für dasObjekt und den JobFlowId.Setzen Sie diesen Wert auf true,wenn Sie benutzerdefinierteVerschlüsselungsmaterialienverwenden.

fs.s3.cse.kms.keyId N/A Gilt bei der Verwendung von CSE-KMS. Der Wert des KeyId, ARNoder Alias des AWS KMS-CMK, derfür die Verschlüsselung verwendetwird.

fs.s3.cse.cryptoStorageMode ObjectMetadataDer Amazon S3-Speichermodus.Standardmäßig wirddie Beschreibung derVerschlüsselungsdaten in denObjektmetadaten gespeichert. Siekönnen die Beschreibung auch ineiner Anweisungsdatei speichern.Gültige Werte sind ObjectMetadataund InstructionFile. WeitereInformationen finden Sie unterClientseitige Datenverschlüsselungmit AWS SDK for Java und AmazonS3.

Control Cluster TerminationWenn Sie einen Cluster mittels Amazon EMR erstellen, können Sie einen vorübergehenden Clustererstellen, der nach Abschluss der Aufgaben automatisch beendet wird, oder einen langlebigen Cluster, derausgeführt wird, bis Sie ihn ausdrücklich beenden. Wenn ein Cluster beendet wird, werden alle AmazonEC2-Instances im Cluster beendet. Die Daten im Instance-Speicher und auf EBS-Volumes sind nicht mehrverfügbar und können nicht wiederhergestellt werden. Es ist von kritischer Bedeutung, das Beenden vonClustern zu verstehen und zu kontrollieren, um eine Strategie für die Verwaltung und Bewahrung von Datenerstellen zu können, bei der die Daten zu Amazon S3 geschrieben und die Kosten abgewogen werden.Informationen zum manuellen Beenden eines Clusters finden Sie unter Beenden eines Clusters (p. 401).

Wenn Sie die Option zum automatischen Beenden des Clusters wählen, wird der Cluster gestartet, führtvon Ihnen angegebene Bootstrap-Aktionen aus und führt anschließend Schritte durch, bei denen es sichin der Regel um die Eingabe von Daten, die Verarbeitung dieser Daten, das Produzieren der Ausgabeund das Speichern der Ausgabe handelt. Wenn die Schritte abgeschlossen sind, beendet Amazon EMRautomatisch die Amazon EC2-Instances des Clusters. Dies ist ein effektives Modell für einen Cluster, derregelmäßige Verarbeitungsaufgaben ausführt, z. B. eine tägliche Datenverarbeitung. Das automatischeBeenden eines Clusters hilft, sicherzustellen, dass Ihnen die für die Verarbeitung Ihrer Daten erforderlicheZeit berechnet wird. Weitere Informationen zu den Schritten finden Sie unter Arbeiten mit Schritten unterVerwendung von AWS CLI und Konsole (p. 437).

Ein langlebiger Cluster wird auf dieselbe Weise gestartet. Sie können Schritte wie für einen automatischbeendeten Cluster angeben. Der Cluster wird jedoch nach dem Abschluss der Schritte weiter ausgeführt

116

Page 124: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfiguring a Cluster to Auto-Terminate or Continue

und berechnet. Dieses Modell ist effektiv, wenn Sie Daten interaktiv oder automatisch abfragen oderkontinuierlich mit auf dem Cluster gehosteten Big Data-Anwendungen interagieren müssen. Es ist aucheffektiv, wenn es aufgrund der Größe eines regelmäßig verarbeiteten Datensatzes oder der Häufigkeitder Verarbeitung eines Datensatzes nicht effizient ist, jedes Mal neue Cluster zu starten und die Datenzu laden. Sie können für langlebige Cluster einen Beendigungsschutz aktivieren, um ein versehentlichesHerunterfahren zu verhindern. Sie können auch die Vorteile von Funktionen wie Auto Scaling und Instance-Flotten nutzen, um die Größe des Clusters dynamisch zu verändern und so Leistung und Kosten imZusammenhang mit Workload-Anforderungen auszugleichen. Weitere Informationen finden Sie unterSkalieren von Cluster-Ressourcen (p. 403) und Konfigurieren von Instance-Flotten (p. 156).

In diesem Abschnitt wird beschreiben, wie Beendigungsschutz und automatisches Beenden funktionieren,wie sie miteinander interagieren und wie sie mit anderen Amazon EMR-Funktionen interagieren. Darüberhinaus werden weitere Datenprozesse beschrieben.

Themen• Configuring a Cluster to Auto-Terminate or Continue (p. 117)• Using Termination Protection (p. 118)

Configuring a Cluster to Auto-Terminate or ContinueStandardmäßig werden Cluster, die Sie über die Konsole oder die AWS CLI erstellen, so lange ausgeführt,bis sie von Ihnen beendet werden. Wenn Sie einen Cluster beenden möchten, nachdem dessen Aufgabenabgeschlossen wurden, müssen Sie das automatische Beenden aktivieren. Im Gegensatz hierzu ist fürCluster, die Sie über die EMR-API starten, das automatische Beenden standardmäßig aktiviert.

So deaktivieren Sie das automatische Beenden über die EMR-API

• Wenn Sie die Aktion RunJobFlow- verwenden, um einen Cluster zu erstellen, legen Sie dieEigenschaft KeepJobFlowAliveWhenNoSteps- auf true fest.

So aktivieren Sie das automatische Beenden mittels Schnelloptionen in der AWS ManagementConsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Wählen Sie Step execution (Schrittausführung) aus.4. Wählen Sie weitere Einstellungen wie für Ihre Anwendung erforderlich und dann Create cluster

(Cluster erstellen) aus.

So aktivieren Sie das automatische Beenden mittels der erweiterten Optionen in der AWSManagement Console

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Wählen Sie Go to advanced options (Zu erweiterten Optionen navigieren) aus.4. Wählen Sie unter Add steps (optional) (Schritte hinzufügen (optional)) die Option Auto-terminate

cluster after the last step is completed (Cluster automatisch nach Abschluss des letzten Schrittsbeenden) aus.

5. Wählen Sie weitere Einstellungen wie für Ihre Anwendung erforderlich und dann Create cluster(Cluster erstellen) aus.

117

Page 125: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUsing Termination Protection

So aktivieren Sie das automatische Beenden über die AWS CLI

• Geben Sie den --auto-terminate-Parameter an, wenn Sie den create-cluster-Befehlverwenden, um einen vorübergehenden Cluster zu erstellen.

Das folgende Beispiel veranschaulicht die Verwendung des --auto-terminate-Parameters. Siekönnen den folgenden Befehl eingeben und myKey mit dem Namen Ihres EC2-Schlüsselpaars.

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws emr create-cluster --name "Test cluster" --release-label emr-5.31.0 \--applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey \--steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,\Args=[-f,s3://mybucket/scripts/pigscript.pig,-p,\INPUT=s3://mybucket/inputdata/,-p,OUTPUT=s3://mybucket/outputdata/,\$INPUT=s3://mybucket/inputdata/,$OUTPUT=s3://mybucket/outputdata/]--instance-type m5.xlarge --instance-count 3 --auto-terminate

Weitere Informationen zum Verwenden von Amazon EMR-Befehlen in der AWS CLI finden Sie in der AWSCLI-Referenz.

Using Termination ProtectionWenn der Beendigungsschutz für einen langlebigen Cluster aktiviert ist, können Sie den Cluster weiterbeenden, müssen jedoch zunächst den Beendigungsschutz explizit aus dem Cluster entfernen. So wirdsichergestellt, dass EC2-Instances nicht versehentlich oder aufgrund eines Fehlers heruntergefahrenwerden. Der Beendigungsschutz ist besonders nützlich, wenn Ihr Cluster Daten auf lokalen Datenträgerngespeichert hat, die Sie vor dem Beenden der Instances wiederherstellen müssen. Sie können denBeendigungsschutz aktivieren, wenn Sie einen Cluster erstellen. Sie können die Einstellung auf einemausgeführten Cluster ändern.

Wenn der Beendigungsschutz aktiviert ist, funktioniert die Aktion TerminateJobFlows in der AmazonEMR-API nicht. Benutzer können den Cluster nicht über diese API oder den Befehl terminate-clusters in der AWS CLI beenden. Die API gibt einen Fehler zurück und die CLI wird mit einemRückgabecode ungleich null beendet. Wenn Sie die Amazon EMR-Konsole verwenden, um einen Clusterzu beenden, werden Sie zu einem zusätzlichen Schritt aufgefordert, um den Beendigungsschutz zudeaktivieren.

Warning

Der Beendigungsschutz garantiert nicht, dass Daten im Fall eines menschlichen Fehlers odereiner Behelfslösung aufbewahrt werden. Beispiel: Falls ein Neustart-Befehl über die Befehlszeilegegeben wird, während eine SSH-Verbindung zur Instance besteht, wenn eine Anwendungoder ein Skript, die/das auf der Instance ausgeführt wird, einen Neustart-Befehl erteilt, oderwenn die Amazon EC2- oder Amazon EMR-API zum Deaktivieren des Beendigungsschutzesverwendet wird. Auch bei aktiviertem Beendigungsschutz können Daten, die im Instance-Speichergespeichert sind, einschließlich HDFS-Daten, verloren gehen. Schreiben Sie die Datenausgabe inAmazon S3-Standorte und erstellen Sie geeignete Sicherungsstrategien für Ihre Anforderungen andie Aufrechterhaltung des Geschäftsbetriebs.

Der Beendigungsschutz wirkt sich nicht auf Ihre Fähigkeit aus, Cluster-Ressourcen mit einer der folgendenAktionen zu skalieren:

• Resizing a cluster manually using the AWS Management Console or AWS CLI. For more information,see Manuelle Größenanpassung eines aktiven Clusters (p. 429).

118

Page 126: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUsing Termination Protection

• Removing instances from a core or task instance group using a scale-in policy with automatic scaling. Formore information, see Verwenden der automatischen Skalierung mit einer benutzerdefinierten Richtliniefür Instance-Gruppen (p. 421).

• Removing instances from an instance fleet by reducing target capacity. For more information, seeInstance-Flotten-Optionen (p. 157).

Termination Protection and Amazon EC2Für ein Amazon EMR-Cluster mit aktiviertem Beendigungsschutz ist das AttributdisableAPITermination für alle Amazon EC2-Instances im Cluster festgelegt. Wenn eineBeendigungsanforderung in Amazon EMR erstellt wird und die Amazon EMR- und Amazon EC2-Einstellungen für einen Instance in Widerspruch stehen, hat die Amazon EMR-Einstellung Vorrangvor der Amazon EC2-Einstellung. Wenn Sie beispielsweise das Amazon EC2 Konsole bis enablebeendigungsschutz Amazon EC2 Instanz in einem Cluster, der einen Kündigungsschutz hat disabled,wenn Sie die Amazon EMR Konsole, AWS CLI Befehle für Amazon EMR, oder Amazon EMR API zumBeenden des Clusters, Amazon EMR Sets DisableApiTermination bis false und beendet die Instanzzusammen mit anderen Instanzen.

Important

Wenn eine Instance als Teil eines Amazon EMR-Clusters mit Beendigungsschutz erstellt wirdund die Amazon EC2-API- oder AWS CLI-Befehle zum Ändern der Instance verwendet werden,sodass DisableApiTermination false ist, und die Amazon EC2-API oder die AWS CLI-Befehle anschließend die Aktion TerminateInstances ausführen, wird die Amazon EC2-Instance beendet.

Termination Protection and Unhealthy YARN NodesAmazon EMR prüft regelmäßig den Status von Apache Hadoop YARN-Knoten, die in Amazon EC2auf Core- und Aufgaben-Instances in einem Cluster ausgeführt werden. Der Status wird durch denNodeManager Checker Service gemeldet. Wenn ein Knoten UNHEALTHY meldet, sperrt der AmazonEMR-Instance-Controller den Knoten und weist diesem erst dann wieder YARN-Container zu, wenner wieder stabil ist. Ein häufiger Grund für instabile Knoten ist eine Datenträgernutzung von mehr als90 %. Weitere Informationen zum Identifizieren und Wiederherstellen instabiler Knoten finden Sie unterRessourcenfehler (p. 462).

Wenn der Knoten länger als 45 Minuten im Zustand UNHEALTHY bleibt, ergreift Amazon EMR die folgendenMaßnahmen, abhängig vom Status des Beendigungsschutzes.

Beendigungsschutz Ergebnis

Aktiviert (empfohlen) Die Amazon EC2-Instance bleibt gesperrtund wird weiter für die Cluster-Kapazitätgezählt. Sie können eine Verbindung mit derAmazon EC2-Instance zu Konfigurations- undDatenwiederherstellungszwecke herstellen unddie Größe Ihres Clusters anpassen, um Kapazitäthinzuzufügen. Weitere Informationen finden Sie imRessourcenfehler (p. 462).

Disabled Die Amazon EC2-Instance wird beendet. AmazonEMR stellt eine neue Instance basierend auf derangegebenen Anzahl an Instances in der Instance-Gruppe oder der Zielkapazität im Fall von Instance-Flotten bereit. Wenn alle Core-Knoten länger als45 Minuten im Zustand UNHEALTHY sind, wird der

119

Page 127: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUsing Termination Protection

Beendigungsschutz ErgebnisCluster beendet. Der Cluster meldet den StatusNO_SLAVES_LEFT.

Important

Möglicherweise gehen HDFS-Datenverloren, wenn eine Core-Instanceaufgrund eines instabilen Status beendetwird. Wenn der Knoten Blöcke gespeicherthat, die nicht zu anderen Knoten repliziertwurden, gehen diese Blöcke verloren,was zu Datenverlusten führen könnte.Sie sollten den Beendigungsschutzverwenden, um Verbindungen mitInstances herstellen und Datenwiederherstellen zu können, wennnotwendig.

Termination Protection, Auto-Termination, and Step ExecutionDie Einstellung für das automatische Beenden hat Vorrang vor der Einstellung für den Beendigungsschutz.Wenn beide Einstellungen aktiviert sind, wird der Cluster nach Abschluss der Aufgaben beendet, statt inden Wartezustand zu wechseln.

Wenn Sie Schritte an einen Cluster übermitteln, können Sie die Eigenschaft ActionOnFailure festlegen,um zu bestimmen, was passiert, wenn die Ausführung eines Schritts aufgrund eines Fehlers nichtabgeschlossen werden kann. Die möglichen Werte für diese Einstellung sind TERMINATE_CLUSTER( ( (TERMINATE_JOB_FLOW mit früheren Versionen), CANCEL_AND_WAIT, und CONTINUE.Weitere Informationen finden Sie unter Arbeiten mit Schritten unter Verwendung von AWS CLI undKonsole (p. 437).

Wenn ein Schritt fehlschlägt, für den ActionOnFailure auf CANCEL_AND_WAIT festgelegt wurde, unddas automatische Beenden aktiviert ist, wird der Cluster ohne Ausführung der nachfolgenden Schrittebeendet.

Wenn ein Schritt fehlschlägt, für den ActionOnFailure auf TERMINATE_CLUSTER festgelegt wurde,können Sie anhand der folgenden Tabelle mit Einstellungen das Ergebnis ermitteln.

ActionOnFailure Automatisches Beenden Beendigungsschutz Ergebnis

Aktiviert Disabled Cluster wird beendet

Aktiviert Aktiviert Cluster wird beendet

Disabled Aktiviert Cluster wird weiterausgeführt

TERMINATE_CLUSTER

Disabled Disabled Cluster wird beendet

Termination Protection and Spot InstancesDer Amazon EMR-Beendigungsschutz verhindert nicht, dass eine Amazon EC2-Spot-Instance beendetwird, wenn der Spot-Preis den Spot-Höchstpreis überschreitet.

120

Page 128: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUsing Termination Protection

Configuring Termination Protection When You Launch a ClusterSie können den Beendigungsschutz aktivieren oder deaktivieren, wenn Sie einen Cluster über die Konsole,AWS CLI oder API starten.

Die Standardeinstellung für den Beendigungsschutz ist davon abhängig, wie Sie den Cluster starten:

• Amazon EMR Console Quick Options—Termination Protection is disabled by default.• Amazon EMR Console Advanced Options—Termination Protection is enabled by default.• AWS CLI aws emr create-cluster—Termination Protection is disabled unless --termination-protected is specified.

• Amazon EMR API RunJobFlow command—Termination Protection is disabled unless theTerminationProtected boolean value is set to true.

So aktivieren oder deaktivieren Sie den Beendigungsschutz beim Erstellen eines Cluster über dieKonsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Wählen Sie Go to advanced options (Zu erweiterten Optionen navigieren) aus.4. für Schritt 3: Allgemeine Cluster-Einstellungen, unter Allgemeine Optionen stellen Sie sicher, Schutz

vor Beendigung ist ausgewählt, um es zu aktivieren oder die Auswahl zu deaktivieren, um es zudeaktivieren.

5. Wählen Sie weitere Einstellungen wie für Ihre Anwendung erforderlich und anschließend Next (Weiter)aus. Stellen Sie die Konfigurierung des Clusters fertig.

So aktivieren Sie den Beendigungsschutz beim Erstellen eines Cluster über die AWS CLI

• Sie können einen Cluster mit aktiviertem Beendigungsschutz über die AWS CLI erstellen, indem Sieden Befehl create-cluster mit dem Parameter --termination-protected verwenden. DerBeendigungsschutz ist standardmäßig deaktiviert.

Im folgenden Beispiel wird ein Cluster mit aktiviertem Beendigungsschutz erstellt:

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws emr create-cluster --name "TerminationProtectedCluster" --release-label emr-5.31.0 \--applications Name=Hadoop Name=Hive Name=Pig \--use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \

121

Page 129: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUsing Termination Protection

--instance-count 3 --termination-protected

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Configuring Termination Protection for Running ClustersSie können den Beendigungsschutz für einen aktiven Cluster mithilfe der Konsole oder AWS CLIkonfigurieren.

So aktivieren oder deaktivieren Sie den Beendigungsschutz für einen ausgeführten Cluster überdie Konsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie auf der Seite Clusters (Cluster) den Wert für Name (Name) Ihres Clusters aus.3. Wählen Sie auf der Registerkarte Summary (Übersicht) in Termination protection (Beendigungsschutz)

die Option Change (Ändern) aus.4. Um den Beendigungsschutz zu aktivieren, wählen Sie On (Ein) aus. Um den Beendigungsschutz zu

deaktivieren, wählen Sie Off (Aus) aus. Wählen Sie dann das grüne Häkchen aus, um die Auswahl zubestätigen.

So aktivieren oder deaktivieren Sie den Beendigungsschutz für einen ausgeführten Cluster überdie AWS CLI

• Um den Beendigungsschutz für einen ausgeführten Cluster über die AWS CLI zu aktivieren,verwenden Sie den Befehl modify-cluster-attributes mit dem Parameter --termination-protected. Um ihn zu deaktivieren, verwenden Sie den Parameter --no-termination-protected.

Das folgende Beispiel ermöglicht den Schutz vor Beendigung des Clusters mit ID j-3KVTXXXXXX7UG:

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --termination-protected

Im folgenden Beispiel wird der Beendigungsschutz für dasselbe Cluster deaktiviert:

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected

122

Page 130: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit AMIs

Arbeiten mit Amazon Linux AMIs in Amazon EMRAmazon EMR verwendet ein Amazon Linux Amazon Machine Image (AMI) zum Initialisieren vonAmazon EC2-Instances beim Erstellen und Starten von Clustern. Das AMI enthält das Amazon Linux-Betriebssystem, weitere Software und die für die einzelnen Instances zum Hosten Ihrer Cluster-Anwendungen erforderlichen Konfigurationen.

Wenn Sie einen Cluster erstellen, verwendet Amazon EMR standardmäßig ein Amazon Linux-Standard-AMI, das speziell für die von Ihnen verwendete Amazon EMR-Version erstellt wurde. Wenn Sie AmazonEMR 5.7.0 oder höher verwenden, können Sie anstelle des Amazon Linux-Standard-AMI für Amazon EMRein benutzerdefiniertes Amazon Linux-AMI verwenden. Ein benutzerdefiniertes AMI ermöglicht Ihnen dasVerschlüsseln des Root-Gerät-Datenträgers und das Anpassen von Anwendungen und Konfigurationen alsAlternative zu Bootstrap-Aktionen.

Amazon EMR fügt automatisch ein Amazon EBS-Allzweck-SSD-Volume als Root-Gerät für alle AMIs an.Die Verwendung eines EBS-gestützten AMI verbessert die Leistung. Die EBS-Kosten werden anteilignach Stunde berechnet. Dies erfolgt auf der Grundlage der monatlichen Amazon EBS-Gebühren fürgp2-Volumes in der Region, in der der Cluster ausgeführt wird. Die Kosten pro Stunde für das Root-Volume in jeder Cluster-Instance in einer Region, in der 0,10 USD/GB/Monat berechnet werden, betragenbeispielsweise ungefähr 0,00139 USD pro Stunde (0,10 USD/GB/Monat, dividiert durch 30 Tage,dividiert durch 24 Stunden mal 10 GB). Unabhängig davon, ob Sie das Standard-Amazon Linux-AMIoder ein benutzerdefiniertes Amazon Linux-AMI verwenden, können Sie die Größe des EBS-Root-Gerät-Datenträgers von 10 bis 100 GiB angeben.

Weitere Informationen zu Amazon Linux AMIs finden Sie unter Amazon Machine Images (AMI).Weitere Informationen zum Instance-Speicher für Amazon EMR-Instances finden Sie unter Instance-Speicher (p. 143).

Themen• Verwenden des Amazon Linux-Standard-AMI für Amazon EMR (p. 123)• Verwenden eines benutzerdefinierten AMI (p. 124)• Größenangabe des Amazon EBS-Root-Gerät-Datenträgers (p. 130)

Verwenden des Amazon Linux-Standard-AMI fürAmazon EMRJede Amazon EMR-Version verwendet ein Amazon Linux-Standard-AMI für Amazon EMR, es sei denn, Siegeben ein benutzerdefiniertes AMI an. Das Standard-AMI basiert auf dem jeweils aktuellen Amazon Linux-AMI, das zum Zeitpunkt der Amazon EMR-Veröffentlichung verfügbar ist. Das AMI wurde auf Kompatibilitätmit den in dieser Version enthaltenen Big-Data-Anwendungen und Amazon EMR-Funktionen getestet.

Jede Amazon EMR-Version ist fest an die Amazon Linux-AMI-Version gebunden, um die Kompatibilitätsicherzustellen. Das bedeutet, dass dieselbe Amazon Linux-AMI-Version auch dann für eine AmazonEMR-Version verwendet wird, wenn neuere Amazon Linux AMIs verfügbar werden. Aus diesem Grundsollten Sie die neueste Amazon EMR-Version (zurzeit 5.31.0) verwenden, es sei denn, Sie benötigen ausKompatibilitätsgründen eine frühere Version und können keine Migration durchführen.

Wenn Sie aus Kompatibilitätsgründen eine frühere Version von Amazon EMR verwenden müssen,sollten Sie stets die neueste Version in einer Reihe verwenden. Wenn Sie beispielsweise die Reihe 5.12verwenden müssen, sollten Sie 5.12.2 und nicht 5.12.0 oder 5.12.1 verwenden. Wenn in einer Reiheeine neue Version verfügbar wird, sollten Sie eine Migration Ihrer Anwendungen auf die neue Version inBetracht ziehen.

123

Page 131: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden eines benutzerdefinierten AMI

Verwaltung von Software-UpdatesBeim ersten Start einer Amazon EC2-Instance in einem Cluster, der auf dem Amazon Linux-Standard-AMI für Amazon EMR basiert, prüft sie die aktivierten Paket-Repositorys für Amazon Linux und AmazonEMR auf Software-Updates, die für die AMI-Version gelten. Wie bei anderen Amazon EC2-Instancesauch, werden kritische und wichtige Sicherheitsupdates aus diesen Repositorys automatisch installiert.Weitere Informationen finden Sie unter Paket-Repository im Amazon EC2-Benutzerhandbuch für Linux-Instances. Andere Softwarepakete und Kernel-Aktualisierungen werden nicht installiert, da dies zuKompatibilitätsfehlern führen könnte.

Wenn Sie eine Verbindung mit einer Cluster-Instance über SSH herstellen, enthalten die ersten Zeilen derBildschirmausgabe einen Link zu den Versionshinweisen für das von der Instance verwendete AmazonLinux-AMI, einen Hinweis auf die jeweils aktuelle Amazon Linux-AMI-Version, einen Hinweis auf dieAnzahl der für das Update verfügbaren Pakete in den aktivierten Repositorys und eine Anweisung für dieAusführung von sudo yum update.

Important

Es wird nachdrücklich davon abgeraten, sudo yum update auf Cluster-Instancesauszuführen, weder über eine SSH-Verbindung noch über eine Bootstrap-Aktion. Dies kann zuInkompatibilitäten führen, da alle Pakete unterschiedslos installiert werden.

Bewährte Methoden für die Verwaltung von Software-Updates

• Wenn Sie eine ältere Version von Amazon EMR verwenden, sollten Sie eine Migration auf die neuesteVersion in Betracht ziehen und testen, bevor Sie Softwarepakete aktualisieren.

• Wenn Sie auf eine höhere Version migrieren oder Softwarepakete upgraden, sollten Sie dieImplementierung zunächst in einer Umgebung außerhalb der Produktion testen. Die Option zum Klonenvon Clustern über die Amazon EMR-Verwaltungskonsole ist für diese Zwecke nützlich.

• Sie sollten die Software-Updates für Ihre Anwendungen und Ihre Version des Amazon Linux-AMI einzelnbewerten. Testen und installieren Sie nur Pakete in Produktionsumgebungen, die Ihrer Meinung nach fürSicherheit, Anwendungsfunktionalität oder Leistung unbedingt notwendig sind.

• Achten Sie im Amazon Linux Sicherheitszentrum auf Updates.• Vermeiden Sie die Installation von Paketen über SSH-Verbindungen mit einzelnen Cluster-Instances.

Verwenden Sie stattdessen eine Bootstrap-Aktion, um Pakete auf allen Cluster-Instances wie notwendigzu installieren und zu aktualisieren. Hierzu müssen Sie einen Cluster beenden und neu starten. WeitereInformationen finden Sie im Create Bootstrap Actions to Install Additional Software (p. 132).

Verwenden eines benutzerdefinierten AMIWenn Sie Amazon EMR 5.7.0 oder höher verwenden, können Sie anstelle des Amazon Linux-Standard-AMI für Amazon EMR ein benutzerdefiniertes Amazon Linux-AMI verwenden. Ein benutzerdefiniertes AMIist nützlich, wenn Sie Folgendes durchführen möchten:

• Installieren Sie Anwendungen vorab und führen Sie weitere Anpassungen aus, statt Bootstrap-Aktionenzu verwenden. Dies kann die Cluster-Startzeit verbessern und den Start-Up-Workflow optimieren.Weitere Informationen sowie ein Beispiel finden Sie unter Erstellen eines benutzerdefinierten AmazonLinux-AMI aus einer vorkonfigurierten Instance (p. 127).

• Implementierung komplexerer Cluster- und Knoten-Konfigurationen als von Bootstrap-Aktionenzugelassen.

• Verschlüsseln Sie die EBS-Root-Gerät-Datenträger (Start-Volumes) von EC2-Instances in Ihrem Cluster,wenn Sie eine frühere Amazon EMR-Version als 5.24.0 verwenden. Weitere Informationen findenSie im Erstellen eines benutzerdefinierten AMI mit einem verschlüsselten Amazon EBS-Root-Gerät-Datenträger (p. 128).

124

Page 132: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden eines benutzerdefinierten AMI

Note

Ab Version 5.24.0 von Amazon EMR können Sie eine Sicherheitskonfigurationsoption zumVerschlüsseln der EBS-Root-Gerät-Datenträger und Speichervolumes verwenden, wenn Sie alsSchlüsselanbieter AWS KMS angeben. Weitere Informationen finden Sie unter Verschlüsselunglokaler Datenträger (p. 210).

Bewährte Methoden und ÜberlegungenWenn Sie ein benutzerdefiniertes AMI für Amazon EMR erstellen, sollten Sie Folgendes bedenken:

• Amazon EMR 5.30.0 und höher und die Amazon EMR 6.x-Serie basieren auf Amazon Linux 2. Fürdiese EMR-Versionen müssen Sie Images auf Basis von Amazon Linux 2 für benutzerdefinierte AMIsverwenden. Informationen zum Suchen eines benutzerdefinierten Basis-AMI finden Sie unter Sucheneines Linux-AMI.

• Für Amazon EMR-Versionen vor 5.30.0 und 6.x wird Amazon Linux 2 AMIs nicht unterstützt. Sie müssenein 64-Bit-Amazon Linux-AMI verwenden. Amazon Linux AMIs mit mehreren Amazon EBS-Volumeswerden nicht unterstützt.

• Legen Sie Ihrer Anpassung das neueste von EBS gestützte Amazon Linux AMI zugrunde. Eine Liste derAmazon Linux-AMIs und der entsprechenden AMI-IDs finden Sie unter Amazon Linux-AMI.

• Kopieren Sie keinen Snapshot einer vorhandenen Amazon EMR-Instance, um ein benutzerdefiniertesAMI zu erstellen. Das verursacht Fehler.

• Es werden nur die mit Amazon EMR kompatiblen HVM-Virtualisierungstypen und Instancesunterstützt. Stellen Sie sicher, dass Sie während der AMI-Anpassung ein HVM-Abbild und einenInstance-Typ auswählen, das bzw. der mit Amazon EMR kompatibel ist. Kompatible Instances undVirtualisierungstypen finden Sie unter Unterstützte -Instance-Typen (p. 139).

• Die Servicerolle muss über Startberechtigungen für das AMI verfügen. Das AMI muss also entwederöffentlich sein, oder Sie müssen der Eigentümer des AMI sein, oder das AMI wurde vom Eigentümer fürSie freigegeben.

• Wenn Sie Benutzer im AMI erstellen, deren Namen mit Anwendungsnamen übereinstimmen (z. B.hadoop, hdfs, yarn oder spark), führt das zu Fehlern.

• Der Inhalt von /tmp, /var und /emr – sofern im AMI vorhanden – wird während des Startupentsprechend nach /mnt/tmp, /mnt/var und /mnt/emr verschoben. Dateien werden beibehalten; beigroßen Mengen an Daten kann jedoch der Startup länger als erwartet dauern.

• Wenn Sie eine benutzerdefinierte Amazon Linux AMI verwenden, die auf einer Amazon Linux AMI miteinem Erstellungsdatum am 11. August 2018 basiert, startet der Oozie-Server nicht. Wenn Sie Oozieverwenden, erstellen Sie eine benutzerdefinierte AMI verwenden, die auf einer Amazon Linux AMI IDmit einem anderen Erstellungsdatum basiert. Anhand des folgenden AWS CLI-Befehls geben Sie eineListe von Abbild-IDs für alle HVM Amazon Linux AMIs mit einer Version 2018.03 zurück, die auch dasVeröffentlichungsdatum zeigt, damit Sie eine angemessene Amazon Linux AMI als Basis verwendenkönnen. Ersetzen Sie MyRegion durch Ihre Regions-ID, z. B. us-west-2.

aws ec2 --region MyRegion describe-images --owner amazon --query 'Images[?Name!=`null`]|[?starts_with(Name, `amzn-ami-hvm-2018.03`) == `true`].[CreationDate,ImageId,Name]' --output text | sort -rk1

Weitere Informationen finden Sie unter Erstellen eines Amazon EBS-Backed AMI im Amazon EC2-Benutzerhandbuch für Linux-Instances.

125

Page 133: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden eines benutzerdefinierten AMI

Angeben eines benutzerdefinierten AMISie können beim Erstellen eines Clusters über die AWS Management Console, die AWS CLI, AmazonCloudWatch oder die Amazon EMR-API eine benutzerdefinierte AMI-ID angeben. Das AMI muss sich in derAWS-Region befinden, in der Sie den Cluster erstellen.

So geben Sie ein benutzerdefiniertes AMI mithilfe der Konsole an

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create Cluster (Cluster erstellen) und Go to advanced options (Erweiterte Optionen

aufrufen) aus.3. Wählen Sie unter Software Configuration (Softwarekonfiguration) die Version emr-5.7.0 oder höher als

Veröffentlichung und anschließend wie erforderlich weitere Optionen für Ihre Anwendung aus. WählenSie Next (weiter).

4. Wählen Sie unter Hardware Configuration (Hardwarekonfiguration) für Ihre Anwendung geeigneteWerte und anschließend Next (Weiter) aus.

5. Geben Sie unter Additional Options (Zusätzliche Optionen) einen Wert für Custom AMI ID(Benutzerdefinierte AMI-ID) ein und lassen Sie die Update-Option ausgewählt. Weitere Informationenzum Ändern der Update-Option finden Sie unter Verwalten von Updates für AMI-Paket-Repositorys (p. 127).

6. Wählen Sie zum Starten des Clusters Next (Weiter) aus und legen Sie weitere Konfigurationsoptionenfest.

So geben Sie ein benutzerdefiniertes AMI mithilfe der AWS CLI an

• Verwenden Sie den Parameter --custom-ami-id zum Angeben der AMI-ID, wenn Sie den Befehlaws emr create-cluster ausführen.

Das folgende Beispiel gibt einen Cluster an, der ein benutzerdefiniertes AMI mit einem 20 GiB-Start-Volume verwendet. Weitere Informationen finden Sie im Größenangabe des Amazon EBS-Root-Gerät-Datenträgers (p. 130).

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws emr create-cluster --name "Cluster with My Custom AMI" \--custom-ami-id MyAmiID --ebs-root-volume-size 20 \--release-label emr-5.7.0 --use-default-roles \--instance-count 2 --instance-type m5.xlarge

126

Page 134: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden eines benutzerdefinierten AMI

Verwalten von Updates für AMI-Paket-RepositorysStandardmäßig stellt Amazon Linux AMIs beim ersten Start eine Verbindung zu Paket-Repositorysher, um Sicherheitsupdates zu installieren, bevor andere Services gestartet werden. Je nach IhrenAnforderungen können Sie diese Aktualisierungen deaktivieren, wenn Sie ein benutzerdefiniertes AMI fürAmazon EMR angeben. Die Option zum Deaktivieren dieser Funktion steht ist nur verfügbar, wenn Sie einbenutzerdefiniertes AMI verwenden.

Warning

Wir empfehlen dringend, dass Sie beim Neustart alle installierten Pakete aktualisieren, wenn Sieein benutzerdefiniertes AMI angeben. Wenn Sie keine Pakete aktualisieren, entstehen zusätzlicheSicherheitsrisiken.

Über die AWS Management Console können Sie die Option für die Deaktivierung von Updates auswählen,wenn Sie Custom AMI ID (Benutzerdefinierte AMI-ID) auswählen.

Über die AWS CLI können Sie --repo-upgrade-on-boot NONE und --custom-ami-id auswählen,wenn Sie den Befehl create-cluster verwenden.

Mit der Amazon EMR-API können Sie NONE für den Parameter RepoUpgradeOnBoot angeben.

Erstellen eines benutzerdefinierten Amazon Linux-AMI aus einervorkonfigurierten InstanceDie grundlegenden Schritte für das Vorinstallieren von Software und das Ausführen weitererKonfigurationen zur Erstellung eines benutzerdefinierten Amazon Linux-AMI für Amazon EMR sind:

• Starten Sie eine Instance über das Amazon Linux-Basis-AMI.• Stellen Sie eine Verbindung mit der Instance her, um Software zu installieren und andere Anpassungen

vorzunehmen.• Erstellen Sie ein neues Abbild (AMI-Snapshot) der Instance, die Sie konfiguriert haben.

Nachdem Sie das Abbild auf der Grundlage Ihrer benutzerdefinierten Instance erstellt haben, können Siees auf ein verschlüsseltes Ziel kopieren, wie im Abschnitt Erstellen eines benutzerdefinierten AMI mit einemverschlüsselten Amazon EBS-Root-Gerät-Datenträger (p. 128) beschrieben.

Tutorial: Erstellen eines AMI aus einer Instance mit installierter benutzerdefinierterSoftware

So starten Sie eine EC2-Instance auf der Grundlage des neuesten Amazon Linux-AMI

1. Verwenden Sie die AWS CLI, um den folgenden Befehl auszuführen, mit dem eine Instance aus einemvorhandenen AMI erstellt wird. Ersetzen Sie MyKeyName durch das Schlüsselpaar, mit dem Sie eineVerbindung zur Instance herstellen, und MyAmiId durch die ID eines geeigneten Amazon Linux-AMI.Das neueste AMI IDs finden Sie unter Amazon Linux AMI.

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

127

Page 135: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden eines benutzerdefinierten AMI

aws ec2 run-instances --image-id MyAmiID \--count 1 --instance-type m5.xlarge \--key-name MyKeyName --region us-west-2

Der Ausgabewert InstanceId wird im nächsten Schritt als MyInstanceId verwendet.2. Führen Sie den folgenden Befehl aus:

aws ec2 describe-instances --instance-ids MyInstanceId

Der Ausgabewert PublicDnsName wird im nächsten Schritt verwendet, um eine Verbindung mit derInstance herzustellen.

So stellen Sie eine Verbindung mit der Instance her und installieren Software

1. Verwenden Sie eine SSH-Verbindung, mit der Sie Shell-Befehle auf Ihrer Linux-Instance ausführenkönnen. Weitere Informationen finden Sie unter Herstellung einer Verbindung zu Ihrer Linux-Instancemit SSH im Amazon EC2-Benutzerhandbuch für Linux-Instances.

2. Führen Sie alle erforderlichen Anpassungen durch. Beispiel:

sudo yum install MySoftwarePackagesudo pip install MySoftwarePackage

So erstellen Sie einen Snapshot vom benutzerdefinierten Abbild

• Nachdem Sie die Instance angepasst haben, erstellen Sie mithilfe des Befehls create-image einAMI von der Instance.

aws ec2 create-image --no-dry-run --instance-id MyInstanceId --name MyEmrCustomAmi

Der Ausgabewert imageID wird verwendet, wenn Sie den Cluster starten oder einen verschlüsseltenSnapshot erstellen. Weitere Informationen erhalten Sie unter Angeben eines benutzerdefiniertenAMI (p. 126) und unter Erstellen eines benutzerdefinierten AMI mit einem verschlüsselten AmazonEBS-Root-Gerät-Datenträger (p. 128).

Erstellen eines benutzerdefinierten AMI mit einemverschlüsselten Amazon EBS-Root-Gerät-DatenträgerUm den Amazon EBS-Root-Gerät-Datenträger eines Amazon Linux-AMI für Amazon EMR zuverschlüsseln, kopieren Sie ein Snapshot-Abbild von einem unverschlüsselten AMI zu einemverschlüsselten Ziel. Informationen zum Erstellen verschlüsselter EBS-Volumes finden Sie unter AmazonEBS-Verschlüsselung im Amazon EC2-Benutzerhandbuch für Linux-Instances. Als Quell-AMI für denSnapshot können Sie das Amazon Linux-Basis-AMI verwenden. Sie können auch einen Snapshot voneinem AMI kopieren, das vom angepassten Amazon Linux-AMI abgeleitet wurde.

Note

Ab Version 5.24.0 von Amazon EMR können Sie eine Sicherheitskonfigurationsoption zumVerschlüsseln der EBS-Root-Gerät-Datenträger und Speichervolumes verwenden, wenn Sie alsSchlüsselanbieter AWS KMS angeben. Weitere Informationen finden Sie unter Verschlüsselunglokaler Datenträger (p. 210).

Sie können mit einem AWS-CMK (Customer Master Key, Kundenmasterschlüssel) oder einem CMK einesexternen Schlüsselanbieters das EBS-Root-Volume verschlüsseln. Der von Amazon EMR verwendeten

128

Page 136: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden eines benutzerdefinierten AMI

Servicerolle (in der Regel die standardmäßige EMR_DefaultRole) muss mindestens das Verschlüsselnund Entschlüsseln des Volumes für Amazon EMR erlaubt sein, um einen Cluster mithilfe des AMI zuerstellen. Wenn Sie AWS KMS als Schlüsselanbieter verwenden, müssen die folgenden Aktionen erlaubtsein:

• kms:encrypt

• kms:decrypt

• kms:ReEncrypt*

• kms:CreateGrant

• kms:GenerateDataKeyWithoutPlaintext"

• kms:DescribeKey"

Hierfür fügen Sie am einfachsten die Rolle als Schlüsselbenutzer wie im folgenden Tutorial beschriebenhinzu. Die folgende Richtlinienanweisung dient als Beispiel für den Fall, dass Sie Rollenrichtlinien anpassenmüssen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EmrDiskEncryptionPolicy", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": [ "*" ] } ] }

Tutorial: Erstellen eines benutzerdefinierten AMI mit einem verschlüsselten Root-Gerät-Datenträger mithilfe eines KMS-CMK

Im ersten Schritt dieses Beispiels muss der ARN eines KMS-CMK ermittelt oder neu erstellt werden.Weitere Informationen zum Erstellen von Schlüsseln finden Sie unter Erstellen von Schlüsseln im AWS KeyManagement Service Developer Guide. Im folgenden Verfahren wird gezeigt, wie Sie als Schlüsselbenutzerdie Standard-Servicerolle EMR_DefaultRole zur Schlüsselrichtlinie hinzufügen. Notieren Sie sich denARN-Wert für den Schlüssel, wenn Sie ihn erstellen oder bearbeiten. Sie verwenden den ARN später, wennSie das AMI erstellen.

So fügen Sie die Servicerolle für Amazon EC2 zur Liste der Benutzer vonVerschlüsselungsschlüsseln mithilfe der Konsole hinzu

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS Key ManagementService(AWS KMS)-Konsole unter https://console.aws.amazon.com/kms.

2. Um die AWS-Region zu ändern, verwenden Sie die Regionenauswahl in der oberen rechten Ecke derSeite.

3. Wählen Sie den Alias des zu verwendenden CMK aus.

129

Page 137: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideGrößenangabe des Amazon EBS-Root-Gerät-Datenträgers

4. Wählen Sie auf der Seite mit den Schlüsseldetails unter Key Users (Schlüsselbenutzer( die Option Add(Hinzufügen) aus.

5. Wählen Sie im Dialogfeld Attach (Anfügen) die Amazon EMR-Servicerolle aus. Der Name derStandardrolle lautet EMR_DefaultRole.

6. Wählen Sie Attach (Anfügen) aus.

So erstellen Sie ein verschlüsseltes AMI mit der AWS CLI

• Erstellen Sie mittels des Befehls aws ec2 copy-image aus der AWS CLI ein AMI mit einemverschlüsselten EBS-Root-Gerät-Datenträger -Volume und dem von Ihnen geänderten Schlüssel.Ersetzen Sie den angegebenen Wert --kms-key-id durch den vollständigen ARN des Schlüssels,den Sie zuvor erstellt oder geändert haben.

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws ec2 copy-image --source-image-id MyAmiId \--source-region us-west-2 --name MyEncryptedEMRAmi \--encrypted --kms-key-id arn:aws:kms:us-west-2:12345678910:key/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Die Ausgabe des Befehls enthält die ID des AMI, das Sie erstellt haben, welches Sie angeben können,wenn Sie einen Cluster erstellen. Weitere Informationen finden Sie im Angeben eines benutzerdefiniertenAMI (p. 126). Sie können dieses AMI auch anpassen, indem Sie Software installieren und andereKonfigurationen durchführen. Weitere Informationen finden Sie im Erstellen eines benutzerdefiniertenAmazon Linux-AMI aus einer vorkonfigurierten Instance (p. 127).

Größenangabe des Amazon EBS-Root-Gerät-DatenträgersDiese Option steht nur in Amazon EMR Version 4.x und höher zur Verfügung. Sie können die Volume-Größe von 10 GiB (Standard) bis zu 100 GiB angeben, wenn Sie einen Cluster über die AWS ManagementConsole, die AWS CLI oder die Amazon EMR-API erstellen. Diese Größeneinteilung gilt nur für EBS-Root-Gerät-Datenträger und wird auf alle Instances im Cluster angewendet. Sie gilt nicht für Speicher-Volumes,die Sie separat für jeden Instance-Typ beim Erstellen Ihres Clusters angeben.

Note

Wenn Sie das Standard-AMI verwenden, fügt Amazon EMR Allzweck-SSD (General PurposeSSD, gp2) als Root-Gerät-Datenträgertyp hinzu. Ein benutzerdefiniertes AMI kann einenanderen Root-Gerät-Datenträgertyp haben. Weitere Informationen finden Sie im Angeben einesbenutzerdefinierten AMI (p. 126).

Die Kosten des EBS-Root-Gerät-Datenträgers wird anteilig nach Stunde berechnet. Dies erfolgt aufder Grundlage der monatlichen EBS-Gebühren für den Volume-Typ in der Region, in der der Clusterausgeführt wird. Gleiches gilt für Speicher-Volumes. Die Gebühren sind in GB angegeben, aber Sie gebendie Größe des Stamm-Volumes in GiB an, daher sollten Sie dies in Ihren Schätzungen berücksichtigen (1GB entspricht 0,931323 GiB). Verwenden Sie die folgende Formel, um die Kosten für EBS-Root-Gerät-Datenträger in Ihrem Cluster zu schätzen:

($EBS GBMonat) ×0,931323÷30÷24×EMR_EBSRootGiB×InstanceCount

130

Page 138: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideGrößenangabe des Amazon EBS-Root-Gerät-Datenträgers

Nehmen wir als Beispiel einen Cluster mit einem Master-Knoten, einem Core-Knoten und einem AmazonLinux-AMI mit dem standardmäßigen 10 GiB-Root-Gerät-Datenträger. Wenn die EBS-Kosten in derRegion 0,10 USD/GB pro Monat betragen, sind das ungefähr 0,00129 USD pro Instance pro Stunde0,00258 USD pro Stunde für den Cluster ($0,10 GB-Monat dividiert durch 30 Tage, dividiert durch24 Stunden, multipliziert mit 10 GB, multipliziert mit 2 Cluster-Instances).

So geben Sie die Größe des EBS-Root-Gerät-Datenträgers mithilfe der Konsole an

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Wählen Sie Go to advanced options (Zu erweiterten Optionen navigieren) aus.4. Wählen Sie unter Software Configuration (Softwarekonfiguration) als Release (Version) eine 4.x- oder

5.x-Version und weitere Optionen für Ihre Anwendung aus wie erforderlich. Wählen Sie anschließendNext (Weiter) aus.

5. Geben Sie unter Hardware Configuration (Hardwarekonfiguration) für Root device EBS volume size(Größe des EBS-Volumes des Root-Geräts) einen Wert zwischen 10 GiB und 100 GiB ein.

So geben Sie die Größe des EBS-Root-Gerät-Datenträgers mithilfe der AWS CLI an

• Verwenden Sie den Parameter --ebs-root-volume-size des Befehls create-Cluster wie imfolgenden Beispiel gezeigt.

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws emr create-cluster --release-label emr-5.7.0 \--ebs-root-volume-size 20 --instance-groups InstanceGroupType=MASTER,\InstanceCount=1,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=2,InstanceType=m5.xlarge

131

Page 139: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Cluster Software

Configure Cluster SoftwareWenn Sie eine Softwareversion auswählen, verwendet Amazon EMR ein Amazon-Systemabbild (AmazonMachine Image, AMI) mit Amazon Linux zur Installation der Software, die Sie beim Starten Ihres Clustersausgewählt haben (z. B. Hadoop, Spark und Hive). Amazon EMR stellt regelmäßig neue Versionen mitneuen Funktionen, neuen Anwendungen und allgemeinen Aktualisierungen bereit. Wir empfehlen, dass Siedie neueste Version zum Starten Ihres Clusters verwenden (sofern möglich). Die neueste Version ist dieStandardoption beim Starten eines Clusters über die Konsole.

Weitere Informationen zu den Amazon EMR-Softwareversionen in den einzelnen Veröffentlichungenfinden Sie unter Amazon EMR-Versionshinweise. Weitere Informationen zum Bearbeiten derStandardkonfigurationen der auf Ihrem Cluster installierten Anwendungen und Softwareversionen findenSie unter Konfigurieren von Anwendungen im Amazon EMR-Versionshinweise. Einige Versionen derOpen-Source-Komponenten von Hadoop und Spark in Amazon EMR-Versionen nutzen Patches undVerbesserungen, die im Amazon EMR-Versionshinweise dokumentiert sind.

Zusätzlich zur standardmäßigen Software und den zur Installation auf Ihrem Cluster verfügbarenAnwendungen können Sie mit Bootstrap-Aktionen benutzerdefinierte Software installieren. Bootstrap-Aktionen sind Skripts, die beim Start Ihres Clusters und beim Ausführen neue, bei der Erstellung desClusters hinzugefügter Knoten in den Instances ausgeführt werden. Bootstrap-Aktionen sind auch nützlich,um AWS CLI-Befehle zum Kopieren von Objekten aus Amazon S3 zu den Knoten in Ihrem Clusteraufzurufen.

Note

Die Verwendung von Bootstrap-Aktionen unterscheidet sich in Amazon EMR Version 4.x undhöher. Weitere Informationen zu diesen Unterschieden zwischen Amazon EMR-AMI-Version 2.xund 3.x finden Sie unter Neuheiten in 4.x im Amazon EMR-Versionshinweise.

Create Bootstrap Actions to Install Additional SoftwareSie können eine bootstrap action um zusätzliche Software zu installieren oder die Konfiguration vonClusterinstanzen anzupassen. Bootstrap-Aktionen sind Skripts, die auf Clustern ausgeführt werden,nachdem Amazon EMR die Instance mithilfe von Amazon Machine Image (AMI) startet. Bootstrap-Aktionenwerden ausgeführt, bevor Amazon EMR die Anwendungen installiert, die Sie bei der Erstellung desClusters angeben haben und bevor die Cluster-Knoten mit der Bearbeitung der Daten beginnen. WennSie einem aktiven Cluster Knoten hinzufügen, werden die Bootstrap-Aktionen auf diesen Knoten auch aufdie gleiche Weise ausgeführt. Sie können benutzerdefinierte Bootstrap-Aktionen erstellen und sie beimErstellen Ihres Clusters angeben.

Die meisten vordefinierten Bootstrap-Aktionen für die Amazon EMR-AMI-Versionen 2.x und 3.x werdenin den Versionen 4.x von Amazon EMR nicht unterstützt. Beispielsweise werden configure-Hadoopund configure-daemons in Amazon EMR Version 4.x nicht unterstützt. Stattdessen stellt AmazonEMR Version 4.x diese Funktionalität nativ bereit. Weitere Informationen zum Migrieren von Bootstrap-Aktionen von den Amazon EMR-AMI-Versionen 2.x und 3.x zu Amazon EMR Version 4.x finden Sie unterUnterschiede in Amazon EMR 4.x-Versionen im Amazon EMR-Versionshinweise.

Themen• Bootstrap Action Basics (p. 133)• Run If Bootstrap Action (p. 133)• Shutdown Actions (p. 134)• Use Custom Bootstrap Actions (p. 134)

132

Page 140: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCreate Bootstrap Actions to Install Additional Software

Bootstrap Action BasicsBootstrap-Aktionen werden standardmäßig als Hadoop-Benutzer ausgeführt. Sie können eine Bootstrap-Aktion mit Root-Berechtigungen ausführen, indem Sie sudo verwenden.

Alle Amazon EMR-Verwaltungsschnittstellen unterstützen Bootstrap-Aktionen. Sie können bis zu16 Bootstrap-Aktionen pro Cluster angeben, indem Sie mehrere bootstrap-actions-Parameter über dieKonsole, die AWS CLI oder die API bereitstellen.

Von der Amazon EMR-Konsole können Sie optional eine Bootstrap-Aktion beim Erstellen eines Clustersangeben.

Wenn Sie die CLI verwenden, können Sie Verweise auf Bootstrap-Aktionsskripts an Amazon EMRübergeben, indem Sie beim Erstellen des Clusters den Parameter --bootstrap-actions mit demBefehl create-cluster hinzufügen. Die Syntax für einen --bootstrap-actions-Parameter lautet wiefolgt:

AWS CLI

--bootstrap-actions Path="s3://mybucket/filename",Args=[arg1,arg2]

Wenn die Bootstrap-Aktion einen Fehlercode ungleich null zurückgibt, wird dieser von Amazon EMRwie ein Fehler behandelt und die Instance wird beendet. Wenn zu viele Instanzen bei ihren Bootstrap-Aktionen fehlschlagen, beendet Amazon EMR den Cluster. Wenn nur wenige Instances ausfallen, versuchtAmazon EMR, die ausgefallenen Instances neu zuzuordnen und fortzufahren. Verwenden Sie den Cluster-Fehlercode lastStateChangeReason, um Fehler zu identifizieren, die durch eine Bootstrap-Aktionverursacht wurden.

Run If Bootstrap ActionAmazon EMR stellt diese vordefinierte Bootstrap-Aktion bereit, um einen Befehl bedingt auszuführen, wennin den Dateien instance.json oder job-flow.json ein Instance-spezifischer Wert gefunden wird. DerBefehl kann auf eine Datei in Amazon S3 verweisen, die Amazon EMR herunterladen und ausführen kann.

Der Speicherort des Skripts lautet: s3://elasticmapreduce/bootstrap-actions/run-if.

Das folgende Beispiel gibt die Zeichenfolge "running on master node" aus, wenn der Knoten ein Master ist.

So führen Sie einen Befehl bedingt über die AWS CLI aus

Wenn Sie eine Bootstrap-Aktion über die AWS CLI hinzufügen, geben Sie Path und Args als eine durchKomma getrennte Liste an.

• So starten Sie einen Cluster mit einer Bootstrap-Aktion, die bedingt einen Befehl ausführt, wennein instanzspezifischer Wert in der instance.json oder job-flow.json Datei, geben Sie denfolgenden Befehl ein und ersetzen Sie myKey mit dem Namen Ihres EC2-Schlüsselpaars.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --use-default-roles --ec2-attributes KeyName=myKey --applications Name=Hive --instance-count 1 --instance-type m5.xlarge --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/run-if",Args=["instance.isMaster=true","echo running on master node"]

Wenn Sie die Instance-Anzahl ohne den Parameter --instance-groups angeben, wird eineinzelner Master-Knoten gestartet. Die verbleibenden Instances werden dabei als Core-Knotengestartet. Alle Knoten verwenden den im Befehl angegebenen Instance-Typ.

133

Page 141: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCreate Bootstrap Actions to Install Additional Software

Note

Wenn Sie zuvor nicht die standardmäßige Amazon EMR-Servicerolle und das EC2-Instance-Profil erstellt haben, geben Sie aws emr create-default-roles ein, um sie zu erstellen,bevor Sie den Unterbefehl create-cluster eingeben.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Shutdown ActionsEin Bootstrap-Aktionsskript kann eine oder mehrere Shutdown-Aktionen durchführen, indem es Skripts indas Verzeichnis /mnt/var/lib/instance-controller/public/shutdown-actions/ schreibt.Wenn ein Cluster beendet wird, werden alle Skripts in diesem Verzeichnis parallel ausgeführt. Jedes Skriptmuss innerhalb von 60 Sekunden ausgeführt und abgeschlossen werden.

Es wird nicht garantiert, dass Shutdown-Aktionsskripts ausgeführt werden, wenn der Knoten mit einemFehler beendet wird.

Note

Bei Verwendung der Amazon EMR-Version 4.0 und höher müssen Sie das Verzeichnis /mnt/var/lib/instance-controller/public/shutdown-actions/ auf dem Master-Knotenmanuell erstellen. Es ist standardmäßig zwar nicht vorhanden, nach Erstellung werden die Skriptsin diesem Verzeichnis aber trotzdem vor dem Herunterfahren ausgeführt. Weitere Informationenzum Herstellen einer Verbindung mit dem Master-Knoten zum Erstellen von Verzeichnissen findenSie unter Verbinden mit dem Master-Knoten über SSH (p. 385).

Use Custom Bootstrap ActionsSie können ein benutzerdefiniertes Skript erstellen, um eine angepasste Bootstrap-Aktion auszuführen. AlleAmazon EMR-Schnittstellen können auf eine benutzerdefinierte Bootstrap-Aktion verweisen.

Inhalt:• Add Custom Bootstrap Actions Using the AWS CLI or the Amazon EMR CLI (p. 134)• Add Custom Bootstrap Actions Using the Console (p. 135)• Use a Custom Bootstrap Action to Copy an Object from Amazon S3 to Each Node (p. 136)

Add Custom Bootstrap Actions Using the AWS CLI or the Amazon EMR CLIDas folgende Beispiel verwendet ein Bootstrap-Aktionsskript zum Herunterladen und Extrahiereneines komprimierten TAR-Archivs von Amazon S3. Das Beispielskript befindet sich unter https://elasticmapreduce.s3.amazonaws.com/bootstrap-actions/download.sh.

Das Beispielskript sieht wie folgt aus:

#!/bin/bashset -ewget -S -T 10 -t 5 http://elasticmapreduce.s3.amazonaws.com/bootstrap-actions/file.tar.gzmkdir -p /home/hadoop/contentstar -xzf file.tar.gz -C /home/hadoop/contents

So erstellen Sie einen Cluster mit einer benutzerdefinierten Bootstrap-Aktion über die AWS CLI

Wenn Sie eine Bootstrap-Aktion über die AWS CLI hinzufügen, geben Sie Path und Args als eine durchKomma getrennte Liste an. Bei dem folgenden Beispiel wird keine Argumentliste verwendet.

134

Page 142: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCreate Bootstrap Actions to Install Additional Software

• Um einen Cluster mit einer benutzerdefinierten Bootstrap-Aktion zu starten, geben Sie den folgendenBefehl ein, ersetzen Sie myKey mit dem Namen Ihres EC2-Schlüsselpaars.

• Linux, UNIX, and Mac OS X users:

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 \--use-default-roles --ec2-attributes KeyName=myKey \--applications Name=Hive Name=Pig \--instance-count 3 --instance-type m5.xlarge \--bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"

• Windows users:

aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --use-default-roles --ec2-attributes KeyName=myKey --applications Name=Hive Name=Pig --instance-count 3 --instance-type m5.xlarge --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"

Wenn Sie die Instance-Anzahl ohne den Parameter --instance-groups angeben, wird eineinzelner Master-Knoten gestartet. Die verbleibenden Instances werden dabei als Core-Knotengestartet. Alle Knoten verwenden den im Befehl angegebenen Instance-Typ.

Note

Wenn Sie zuvor nicht die standardmäßige Amazon EMR-Servicerolle und das EC2-Instance-Profil erstellt haben, geben Sie aws emr create-default-roles ein, um sie zu erstellen,bevor Sie den Unterbefehl create-cluster eingeben.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Add Custom Bootstrap Actions Using the Console

Im folgenden Verfahren wird beschrieben, wie Sie eine eigene benutzerdefinierte Bootstrap-Aktionverwenden.

So erstellen Sie einen Cluster mit einer benutzerdefinierten Bootstrap-Aktion über die Konsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Klicken Sie auf Go to advanced options (Zu erweiterten Optionen navigieren).4. In „Cluster erstellen“ - „Erweiterte Optionen“, „Schritte 1“ und „2“ wählen Sie die gewünschten Optionen

aus und fahren Sie fort mit Schritt 3: Allgemeine Cluster-Einstellungen.5. Wählen Sie unter Bootstrap Actions (Bootstrap-Aktionen) die Option Configure and add (Konfigurieren

und hinzufügen) aus, um den Namen, den JAR-Speicherort und die Argumente für Ihre Bootstrap-Aktion anzugeben. Wählen Sie Add (Hinzufügen) aus.

6. Fügen Sie optional weitere Bootstrap-Aktionen hinzu.7. Fahren Sie mit der Erstellung des Clusters fort. Ihre Bootstrap-Aktionen werden ausgeführt, nachdem

der Cluster bereitgestellt und initialisiert wurde.

Während der Master-Knoten des Clusters ausgeführt wird, können Sie eine Verbindung mit dem Master-Knoten herstellen und die Protokolldateien anzeigen, die vom Bootstrap-Aktionsskript im Verzeichnis /mnt/var/log/bootstrap-actions/1 generiert wurden.

135

Page 143: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Cluster-Hardware und Netzwerken

Related Topics

• View Log Files (p. 349)

Use a Custom Bootstrap Action to Copy an Object from Amazon S3 to Each NodeSie können mit einer Bootstrap-Aktion Objekte von Amazon S3 in jeden Knoten eines Cluster kopieren,bevor Ihre Anwendungen installiert werden. Die AWS CLI wird auf jedem Knoten eines Clusters installiert,sodass Ihre Bootstrap-Aktion AWS CLI-Befehle aufrufen kann.

Das folgende Beispiel zeigt ein einfaches Skript für eine Bootstrap-Aktion, die die Datei myfile.jar ausAmazon S3 zum lokalen Ordner /mnt1/myfolder auf jedem Cluster-Knoten kopiert. Das Skript mit demNamen copymyfile.sh wird mit den folgenden Inhalten in Amazon S3 gespeichert.

#!/bin/bash aws s3 cp s3://mybucket/myfilefolder/myfile.jar /mnt1/myfolder

Wenn Sie den Cluster starten, geben Sie das Skript an. Das folgende AWS CLI-Beispiel veranschaulichtdies:

aws emr create-cluster --name "Test cluster" --release-label emr-5.31.0 \--use-default-roles --ec2-attributes KeyName=myKey \--applications Name=Hive Name=Pig \--instance-count 3 --instance-type m5.xlarge \--bootstrap-actions Path="s3://mybucket/myscriptfolder/copymyfile.sh"

Konfigurieren von Cluster-Hardware undNetzwerken

Eine wichtige Überlegung beim Erstellen eines EMR-Clusters ist die Art und Weise, wie Sie AmazonEC2 Instances und Netzwerkoptionen konfigurieren. EC2-Instances in einem EMR-Cluster sind inKnotentypen organisiert. Es gibt drei Knotentypen: Master-Knoten, Core-Knoten und Aufgabenknoten.Jeder Knotentyp führt eine Reihe von Rollen aus, die durch die von Ihnen auf dem Cluster installiertenverteilten Anwendungen definiert werden. Bei einem Hadoop-MapReduce- oder Spark-Auftrag z. B.verarbeiten Komponenten auf Core- und Aufgabenknoten Daten, übertragen die Ausgabe an Amazon S3oder HDFS und stellen Statusmetadaten zurück an den Master-Knoten bereit. Bei einem einzigen Knoten-Cluster werden alle Komponenten auf dem Master-Knoten ausgeführt.

Die Sammlung von EC2-Instances, die die Knotentypen jeweils hosten, wird als Instance-Flotte odereinheitliche Instance-Gruppe bezeichnet. Die Konfiguration der Instance-Flotten oder einheitlichenInstance-Gruppen ist eine Auswahl, die Sie beim Erstellen eines Clusters treffen. Sie gilt für alleKnotentypen, und kann später nicht mehr geändert werden.

Wenn Sie einen Cluster erstellen, treffen Sie Entscheidungen, die letztendlich das Leistungsprofil IhresClusters festlegen. Dieses Kapitel behandelt diese Optionen im Detail und beschreibt entsprechendebewährte Methoden und Richtlinien.

Note

Die Instance-Flottenkonfiguration ist nur in Amazon EMR-Versionen 4.8.0 und höher verfügbar,nicht in 5.0.0 und 5.0.3.

Themen

136

Page 144: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideGrundsätzliches zu Knotentypen

• Grundsätzliches zu Master-, Core- und Aufgabenknoten (p. 137)• Konfigurieren von EC2-Instances (p. 138)• Konfigurieren des Netzwerks (p. 144)• Erstellen eines Clusters mit Instance-Flotten oder einheitlichen Instance-Gruppen (p. 155)• Richtlinien für die Cluster-Konfiguration und bewährte Methoden (p. 168)

Grundsätzliches zu Master-, Core- undAufgabenknotenIn diesem Abschnitt erfahren Sie, wie Amazon EMR die einzelnen Knotentypen jeweils verwendet. Damitlernen Sie die Grundsätze der Kapazitätsplanung für Cluster kennen.

Master-KnotenDer Master-Knoten verwaltet die Cluster und führt die Master-Komponenten von verteilten Anwendungenaus. Beispielsweise führt der Master-Knoten den YARN ResourceManager-Service aus, um Ressourcenfür Anwendungen sowie den HDFS NameNode-Service zu verwalten. Darüber hinaus verfolgt der Master-Knoten den Status der an den Cluster übermittelten Aufgaben und überwacht den Zustand der Instance-Gruppen.

Um den Fortschritt eines Clusters zu überwachen und direkt mit Anwendungen zu interagieren, könnenSie über SSH eine Verbindung mit dem Master-Knoten als Hadoop-Benutzer herstellen. WeitereInformationen finden Sie im Verbinden mit dem Master-Knoten über SSH (p. 385). Durch das Verbindenmit dem Master-Knoten erhalten Sie direkten Zugriff auf Verzeichnisse und Dateien, wie z. B. Hadoop-Protokolldateien. Weitere Informationen finden Sie im View Log Files (p. 349). Sie können auchBenutzeroberflächen anzeigen, die von den Anwendungen als auf dem Master-Knoten ausgeführteWebsites veröffentlicht werden. Weitere Informationen finden Sie im Anzeigen von auf Amazon EMR-Clustern gehosteten Webschnittstellen (p. 390).

Note

Ab Amazon EMR 5.23.0 können Sie einen Cluster mit drei Masterknoten starten, um dieHochverfügbarkeit von Anwendungen wie YARN Resource Manager, HDFS Name Node, Spark,Hive und Ganglia zu unterstützen. Der Masterknoten ist mit dieser Funktion keine potenzielleeinzelne Fehlerquelle mehr. Bei Ausfall einer der Masterknoten wird automatisch ein Failover vonAmazon EMR auf einen Standby-Masterknoten durchgeführt und der ausgefallene Masterknotendurch einen neuen mit der gleichen Konfiguration und den gleichen Bootstrap-Aktionen ersetzt.Weitere Informationen finden Sie unter Planen und Konfigurieren von Masterknoten.

Core-KnotenCore-Knoten werden vom Master-Knoten verwaltet. Core-Knoten führen den DataNode-Daemon zumKoordinieren der Datenspeicherung im Rahmen des Hadoop Distributed File System (HDFS) aus.Außerdem führen sie den TaskTracker-Daemon und andere parallele Rechenaufgaben für Daten aus, diefür installierte Anwendungen erforderlich sind. Beispielsweise führt ein Core-Knoten YARN NodeManager-Daemons, Hadoop MapReduce-Aufgaben und Spark Executors aus.

Im Gegensatz zu dem Master-Knoten können jedoch mehrere Core-Knoten – und somit mehrere EC2Instances – in der Instance-Gruppe oder Instance-Flotte vorhanden sein. Es gibt nur eine Core-Instance-Gruppe oder -Instance-Flotte. Mit Instance-Gruppen können Sie EC2 Instances hinzufügen und entfernen,während der Cluster ausgeführt wird, oder Auto Scaling einrichten. Weitere Informationen zum Hinzufügenund Entfernen von EC2 Instances mit der Instance-Gruppenkonfiguration finden Sie unter Skalierenvon Cluster-Ressourcen (p. 403). Mit Instance-Flotten können Sie Instances effektiv hinzufügenund entfernen, indem Sie die Zielkapazitäten der Instance-Flotte für On-Demand- und Spot-Instances

137

Page 145: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von EC2-Instances

entsprechend anpassen. Weitere Informationen zu den Zielkapazitäten finden Sie unter Instance-Flotten-Optionen (p. 157).

Warning

Das Entfernen von HDFS-Daemons aus einem Core-Knoten, der ausgeführt wird, oder dasBeenden von Core-Knoten können zu Datenverlusten führen. Seien Sie beim Konfigurieren vonCore-Knoten für die Verwendung von Spot Instances vorsichtig. Weitere Informationen finden Sieim Wann sollten Sie Spot-Instances verwenden? (p. 170).

AufgabenknotenAufgabenknoten sind optional. Sie können sie verwenden, um die Leistung für paralleleBerechnungsaufgaben für Daten wie Hadoop-MapReduce-Aufgaben und Spark-Executors zu erhöhen.Aufgabenknoten führen weder den DataNode-Daemon aus noch speichern sie Daten in HDFS. Wie Core-Knoten können Sie auch Aufgabenknoten zu einem Cluster hinzufügen, indem Sie EC2 Instances ineine vorhandene einheitliche Instance-Gruppe integrieren oder die Zielkapazitäten für eine Aufgaben-Instance-Flotte ändern. Cluster mit der einheitlichen Instance-Gruppenkonfiguration können über bis zu48 Aufgaben-Instance-Gruppen verfügen. Die Möglichkeit, einheitliche Instance-Gruppen so hinzuzufügen,ermöglicht Ihnen, EC2 Instance-Typen und Preisoptionen, wie On-Demand-Instances und Spot-Instances,zu kombinieren. Dadurch haben Sie die Flexibilität, kosteneffizient auf Workload-Anforderungen zureagieren. Wenn Sie die Instance-Flottenkonfiguration für Ihren Cluster verwenden, ist die Möglichkeit zumKombinieren von Instance-Typen und Kaufoptionen integriert, sodass nur eine Aufgaben-Instance-Flottevorhanden ist.

Da Spot-Instances häufig zur Ausführung von Aufgabenknoten verwendet werden, verfügt Amazon EMRüber eine standardmäßige Funktionalität für die Planung von YARN-Aufträgen. So wird sichergestellt, dassAufträge, die gerade ausgeführt werden, nicht fehlschlagen, wenn die auf Spot-Instances ausgeführtenAufgabenknoten beendet werden. Zu diesem Zweck lässt Amazon EMR die Ausführung von Anwendungs-Masterprozessen nur auf Core-Knoten zu. Der Anwendungs-Masterprozess steuert die Ausführung vonAufträgen und muss während der Lebenszeit des Auftrags verfügbar bleiben.

Um dies sicherzustellen, verwendet Amazon EMR ab der Release-Version 5.19.0 die integrierteFunktion für YARN-Knotenkennzeichnungen. (Frühere Versionen verwendeten einen Code-Patch.) DieEigenschaften in den yarn-site- und capacity-scheduler-Konfigurationsklassifikationen werdenstandardmäßig so konfiguriert, dass der YARN capacity-scheduler und der fair-scheduler die Knoten-Kennzeichnungen nutzen. Amazon EMR kennzeichnet Core-Knoten automatisch mit der KennzeichnungCORE und legt die Eigenschaften so fest, dass Anwendungs-Master nur auf Knoten mit der CORE-Kennzeichnung geplant werden. Die manuelle Änderung zugehöriger Eigenschaften in den yarn-site- undcapacity-scheduler-Konfigurationsklassifikationen oder direkt in den verknüpften XML-Dateien könnte dieseFunktion zerstören oder verändern.

Beginnend mit der Amazon EMR 6.x-Release-Reihe ist die Funktion YARN-Knotenbeschriftungenstandardmäßig deaktiviert. Die Anwendungs-Master-Prozesse können standardmäßig sowohl auf Kern- alsauch auf Aufgabenknoten ausgeführt werden. Sie können die Funktion für YARN-Knotenbeschriftungenaktivieren, indem Sie folgende Eigenschaften konfigurieren:

• yarn.node-labels.enabled: true

• yarn.node-labels.am.default-node-label-expression: 'CORE'

Informationen zu spezifischen Eigenschaften finden Sie unter Amazon EMR-Einstellungen, dieAufgabenfehler aufgrund des Beendens von Aufgabenknoten-Spot-Instances verhindern (p. 170).

Konfigurieren von EC2-InstancesEC2 Instances haben verschiedene Konfigurationen, die als Instance-Typen bezeichnet werden.Jeder Instance-Typ verfügt über andere CPU-, Eingabe/Ausgabe- und Speicherkapazitäten. Zusätzlich

138

Page 146: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von EC2-Instances

zum Instance-Typ können Sie verschiedene Kaufoptionen für EC2 Instances auswählen. Sie könnenverschiedene Instance-Typen und Kaufoptionen innerhalb von Instance-Gruppen oder Instance-Flotten angeben. Weitere Informationen finden Sie im Erstellen eines Clusters mit Instance-Flotten odereinheitlichen Instance-Gruppen (p. 155). Informationen über die Auswahl der richtigen Optionen findenSie unter Richtlinien für die Cluster-Konfiguration und bewährte Methoden (p. 168).

Important

Wenn Sie über die AWS Management Console einen Instance-Typ auswählen, steht die Anzahlvon vCPU, die für jeden Instance type (Instance-Typ) angezeigt wird, für die Anzahl der YARN-vcores für diesen Instance-Typ und nicht für die Anzahl der EC2-vCPUs für diesen Instance-Typ.Weitere Informationen zur Anzahl der vCPUs für jeden Instance-Typ finden Sie unter AmazonEC2-Instance-Typen.

Themen• Unterstützte -Instance-Typen (p. 139)• Instance-Kaufoptionen (p. 140)• Instance-Speicher (p. 143)

Unterstützte -Instance-TypenDie folgende Tabelle beschreibt die Instance-Typen, die von Amazon EMR unterstützt werden. WeitereInformationen finden Sie unter Amazon EC2-Instances und Amazon Linux-AMI-Instance-Typmatrix.

Nicht alle Instance-Typen stehen in allen Regionen zur Verfügung. Wenn Sie einen Cluster unterVerwendung eines Instance-Typs erstellen, der nicht verfügbar ist, kann Ihr Cluster möglicherweise nichtbereitgestellt werden oder wird bei der Bereitstellung eingefroren. Informationen zur Verfügbarkeit vonInstances finden Sie auf der Seite Amazon EC2-Preisinformationen. Klicken Sie auf den Link für IhreInstance-Kaufoption und filtern Sie nach Region, um zu prüfen, ob der von Ihnen aus der folgenden Listeausgewählte Instance-Typ in der Region verfügbar ist.

Ab Amazon EMR-Version 5.13.0 verwenden alle Instances HVM-Virtualisierung und EBS-gestütztenSpeicher für Stamm-Volumes. Bei der Verwendung von Amazon EMR-Versionen vor Version 5.13.0 nutzeneinige Instances der vorherigen Generation PVM-Virtualisierung. Diese werden in der Tabelle angegeben.Weitere Informationen finden Sie unter Linux-AMI-Virtualisierungstypen.

Einige Instance-Typen unterstützen Enhanced Networking. Weitere Informationen finden Sie unterEnhanced Networking in Linux.

Amazon EMR unterstützt Previous Generation Instances zur Unterstützung von Anwendungen,die für diese Instances optimiert sind und noch nicht aktualisiert wurden. Weitere Informationen zu diesenInstance-Typen und Upgrade-Pfaden finden Sie unter Instances der vorherigen Generation.

Instance-Klasse Instance-Typen

Allgemeine Zwecke m1.small¹ | m1.medium¹ | m1.large¹ | m1.xlarge¹ |m2.xlarge¹ | m2.2xlarge¹ | m2.4xlarge¹ | m3.xlarge¹ |m3.2xlarge¹ | m4.lar.large | m4.xlarge | m4.2xlarge | m4.4xlarge |m4.10xlarge | m4.16xlarge | m5.xlarge3 | m5.12xlarge3 | m5.large3 |m5.xxge3 | m5.xge3 | m5.xxxxxxx3

Note

Instances der Serie m5a sind bei Verwendung von AmazonEMR ab Version 5.20.0 verfügbar.

139

Page 147: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von EC2-Instances

Instance-Klasse Instance-Typen

Für Datenverarbeitung optimiert c1.medium¹ ² | c1.xlarge¹ | c3.xlarge¹ | c3.2xlarge¹ |c3.4xlarge¹ | c3.8xlarge¹ | c4.large | c4.xlarge | c4.2xlarge |c4.4xlarge | c4.8xlarge | c5.xlarge3 | c5.12xlarge3 | c5.18xdxge3 |c5.x3 | c5.xxge3 | c5.xxx3 | c5.xxxxx3 | c5.xxxxxx3 cc2.8xlarge |z1d.xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.12xlarge

Note

Instances der c5n-Serie sind bei der Verwendung vonAmazon EMR-Version 5.20.0 und höher verfügbar.

RAM-optimiert r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r4.xlarge| r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.16xlarge3 | r5.xlarge3 |r5xlarge3 | r5.16xge3.x5.xxx3 | r5 | r5.12large3 | r5.xxxx3 | r5.xxxxxx3| r5.xxxx3 | r5.xxxxx3 cr1.8xlarge

Note

Instances der Serie r5a sind bei Verwendung von AmazonEMR ab Version 5.20.0 verfügbar.

Speicheroptimiert h1.2xlarge | h1.4xlarge | h1.8xlarge | h1.16xlarge | hs1.8xlarge¹ |i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i3.xlarge| i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.16xlarge | i3en.xlarge |i3en.2xlarge |i3en.3xlarge | i3xlarge | i3en.12xlarge | i3en.24xlarged2.2 | i3xxxlarge

Note

Instances der i3-Serie sind verfügbar, wenn Sie AmazonEMR-Version 5.9.0 und höher verwenden. Instances deri3en-Serie sind verfügbar, wenn Sie Amazon EMR-Version5.25.0 und höher verwenden.

GPU-Instances g2.2xlarge | g3.4xlarge | g3.8xlarge | g3.16xlarge | g3s.xlarge| g4dn.xlarge | g4dn.2xlarge | g4dn.4xlarge | p4xn.8xlarge |g4dn.12xlargege | g4dn.6xlarge | pxxlarge | pxxxxxlarge

Note

NVIDIA- und CUDA-Treiber sind auf P2- und P3-Instancetypen standardmäßig installiert.

1Verwendet PVM-Virtualisierungs-AMI mit Amazon EMR-Versionen vor 5.13.0. Weitere Informationenfinden Sie unter Linux AMI-Virtualisierungstypen.

²Nicht unterstützt in Version 5.15.0.

³Unterstützt in Version 5.13.0 und höher.

Instance-KaufoptionenWenn Sie einen Cluster einrichten, wählen Sie eine Kaufoption für EC2-Instances aus. Sie können On-Demand-Instances, Spot-Instances oder beides auswählen. Die Preise variieren basierend auf demInstance-Typ und der Region. Die aktuellen Preise finden Sie unter Amazon EMR-Preisinformationen.

Ihre Wahl zur Verwendung von Instance-Gruppen oder Instance-Flotten in Ihrem Cluster bestimmt, wie Siedie Instance-Kaufoptionen ändern können, während der Cluster ausgeführt wird. Bei der Wahl einheitlicher

140

Page 148: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von EC2-Instances

Instance-Gruppen gelten der Instance-Typ und die Kaufoption für alle EC2-Instances in jeder Instance-Gruppe. Die Kaufoption können Sie nur für eine Instance-Gruppe angeben, wenn Sie diese erstellen. Beider Wahl von Instance-Flotten können Sie die Kaufoptionen ändern, nachdem eine Instance-Flotte erstelltwurde. Sie können die Kaufoptionen kombinieren, um eine festgelegte Zielkapazität zu erfüllen. WeitereInformationen zu diesen Konfigurationen finden Sie unter Erstellen eines Clusters mit Instance-Flotten odereinheitlichen Instance-Gruppen (p. 155).

Important

Wenn Sie über die AWS Management Console einen Instance-Typ auswählen, steht die Anzahlvon vCPU, die für jeden Instance type (Instance-Typ) angezeigt wird, für die Anzahl der YARN-vcores für diesen Instance-Typ und nicht für die Anzahl der EC2-vCPUs für diesen Instance-Typ.Weitere Informationen zur Anzahl der vCPUs für jeden Instance-Typ finden Sie unter AmazonEC2-Instance-Typen.

On-Demand-InstancesBei On-Demand-Instances zahlen Sie für die Rechenkapazität nach Stunde. Optional können Sie fürdiese On-Demand-Instances Reserved Instance- oder Dedicated Instance-Kaufoptionen verwenden. BeiReserved Instances leisten Sie eine einmalige Zahlung für eine Instance, um Kapazität zu reservieren.Dedicated Instances sind auf der Host-Hardwareebene physisch von Instances isoliert, die zu anderenAWS-Konten gehören. Weitere Informationen zu Kaufoptionen finden Sie unter Instance-Kaufoptionen imAmazon EC2-Benutzerhandbuch für Linux-Instances.

Verwenden von Reserved Instances

Um Reserved Instances in Amazon EMR zu verwenden, kaufen Sie die Reserved Instance über AmazonEC2 und geben die Parameter für die Reservierung an, einschließlich des Umfangs der Reservierung füreine Region oder Availability Zone. Weitere Informationen finden Sie unter Reserved Instances in AmazonEC2 und Kauf von Reserved Instances im Amazon EC2-Benutzerhandbuch für Linux-Instances. NachdemSie eine Reserved Instance gekauft haben, verwendet Amazon EMR die Reserved Instance, wenn einCluster startet und alle der folgenden Bedingungen erfüllt sind:

• Eine On-Demand-Instance ist in der Cluster-Konfiguration angegeben, die mit der Reserved Instance-Spezifikation übereinstimmt.

• Der Cluster wird im Rahmen der Instance-Reservierung (Availability Zone oder Region) gestartet.• Die Reserved Instance-Kapazität ist noch verfügbar.

Angenommen, Sie kaufen eine Reserved Instance m5.xlarge mit der gewünschten Instance-Reservierung für die Region USA Ost. Anschließend starten Sie einen EMR-Cluster in USA Ost, derzwei m5.xlarge-Instances verwendet. Die erste Instance wird nach dem Tarif für Reserved Instancesabgerechnet und die andere nach dem On-Demand-Tarif. Die Reserved Instance-Kapazität wirdverwendet, bevor die On-Demand-Instances erstellt werden.

Verwenden von Dedicated Instances

Um Dedicated Instances zu verwenden, kaufen Sie Dedicated Instances über Amazon EC2 und erstellendann eine VPC mit dem Tenancy-Attribut Dedicated. Anschließend geben Sie in Amazon EMR an, dassein Cluster in dieser VPC gestartet werden soll. Alle On-Demand-Instances im Cluster, die der DedicatedInstance-Spezifikation entsprechen, verwenden verfügbare Dedicated Instances beim Start des Clusters.

Note

Amazon EMR unterstützt das Festlegen des Attributs dedicated für einzelne Instances nicht.

Spot-InstancesSpot Instances in Amazon EMR ermöglichen Ihnen den Kauf von Amazon EC2-Instance-Kapazitäten zueinem im Vergleich zu On-Demand-Käufen niedrigeren Preis. Der Nachteil von Spot-Instances ist, dass

141

Page 149: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von EC2-Instances

Instances bei schwankenden Preisen unvorhersehbar beendet werden können. Weitere Informationendazu, wann Sie Spot Instances für Ihre Anwendung verwenden sollten, finden Sie unter Wann sollten SieSpot-Instances verwenden? (p. 170).

Wenn Amazon EC2 über ungenutzte Kapazitäten verfügt, werden EC2-Instances zu einem niedrigerenPreis angeboten, dem Spot-Preis. Dieser Preis schwankt abhängig von Verfügbarkeit und Bedarf undwird nach Region und Availability Zone festgelegt. Wenn Sie Spot-Instances auswählen, geben Sie denmaximalen Spot-Preis an, den Sie bereit sind für jeden EC2 Instance-Typ zu zahlen. Wenn der Spot-Preis in der Availability Zone des Clusters unter dem für diesen Instance-Typ angegebenen maximalenSpot-Preis liegt, werden Instances gestartet. Während der Ausführung von Instances wird Ihnen stets deraktuelle Spot-Preis, nicht Ihr Spot-Höchstpreis berechnet.

Beim Erstellen eines Clusters mit Instance-Flotten können Sie eine definierte Dauer (auch als Spot-Blockbezeichnet) verwenden. Diese bietet ein höheres Maß an Planbarkeit. Spot-Instances werden am Endeder Dauer beendet, aber nicht unterbrochen, bevor die Dauer abgelaufen ist. In diesem Thema wirdbeschrieben, wie Spot-Instances mit Amazon EMR funktionieren.

Informationen zu den aktuellen Preisen finden Sie unter Preisinformationen zu Amazon EC2 SpotInstances. Weitere Informationen finden Sie unter Spot-Instances im Amazon EC2-Benutzerhandbuch fürLinux-Instances. Wenn Sie einen Cluster erstellen und konfigurieren, geben Sie Netzwerkoptionen an, dieletztendlich die Availability Zone bestimmen, in der Ihr Cluster gestartet wird. Weitere Informationen findenSie im Konfigurieren des Netzwerks (p. 144).

Tip

Sie können den aktuellen Spot-Preis in der Konsole anzeigen, indem Sie mit dem Mauszeigerauf die QuickInfo für Informationen neben der Kaufoption Spot (Spot) zeigen, wenn Sie einenCluster mittels Advanced Options (Erweiterte Optionen) erstellen. Die Preise für jede AvailabilityZone in der ausgewählten Region werden angezeigt. Die grünen Zeilen enthalten die niedrigstenPreise. Aufgrund der Spot-Preisschwankungen zwischen Availability Zones kann es sein, dassdurch Auswählen der Availability Zone mit dem niedrigsten Anfangspreis möglicherweise nichtder niedrigste Preis für die Nutzungsdauer des Clusters erzielt wird. Um optimale Ergebnisse zuerzielen, sehen Sie sich den Availability Zone-Preisverlauf an, bevor Sie sich entscheiden. WeitereInformationen finden Sie unter Preisverlauf für Spot Instances im Amazon EC2-Benutzerhandbuchfür Linux-Instances.

Die Spot-Instance-Optionen hängen davon ab, ob Sie einheitliche Instance-Gruppen oder Instance-Flottenin der Cluster-Konfiguration verwenden.

Spot Instances in einheitlichen Instance-Gruppen

Wenn Sie Spot-Instances in einer einheitlichen Instance-Gruppe verwenden, muss es sich bei allenInstances in der Instance-Gruppe um Spot-Instances handeln. Sie geben ein einzelnes Subnetz eine oderAvailability Zone für den Cluster an. Für jede Instance-Gruppe legen Sie einen einzelnen Spot-Instance-Typ und einen maximalen Spot-Preis fest. Die Spot-Instances des entsprechenden Typs werden gestartet,wenn der Spot-Preis in der Region und Availability Zone des Clusters unter dem maximalen Spot-Preisliegt. Instances werden beendet, wenn der Spot-Preis Ihren maximalen Spot-Preis übersteigt. Sie legenden maximalen Spot-Preis nur beim Konfigurieren einer Instance-Gruppe fest. Er kann später nicht mehrgeändert werden. Weitere Informationen finden Sie im Erstellen eines Clusters mit Instance-Flotten odereinheitlichen Instance-Gruppen (p. 155).

Spot Instances in Instance-Flotten

Wenn Sie die Instance-Flottenkonfiguration verwenden, erhalten Sie durch zusätzliche Optionen mehrKontrolle darüber, wie Spot-Instances gestartet und beendet werden. Grundsätzlich verwenden Instance-Flotten zum Starten von Instances eine andere Methode als einheitliche Instance-Gruppen. Hierbei legenSie eine Zielkapazität für Spot-Instances (und On-Demand-Instances) und bis zu fünf Instance-Typen fest.Sie können auch eine gewichtete Kapazität für jeden Instance-Typ festlegen oder die vCPU (YARN vcores)

142

Page 150: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von EC2-Instances

des Instance-Typs als gewichtete Kapazität verwenden. Die gewichtete Kapazität wird für Ihre Zielkapazitätberücksichtigt, wenn eine Instance dieses Typs bereitgestellt wird. Amazon EMR stellt Instances mit beidenKaufoptionen bereit, bis die Zielkapazität für jedes Ziel erfüllt ist. Darüber hinaus können Sie eine Vielzahlvon Availability Zones definieren, die Amazon EMR zum Starten von Instances zur Wahl stehen. Sie stellenaußerdem zusätzliche Spot-Optionen für jede Flotte bereit, einschließlich eines Bereitstellungs-Timeoutsund optional einer definierten Dauer. Weitere Informationen finden Sie im Konfigurieren von Instance-Flotten (p. 156).

Instance-SpeicherInstance-Speicher und EBS-Volume-Speicher werden für HDFS-Daten sowie Puffer, Caches, Arbeitsdatenund andere temporäre Inhalte verwendet, die einige Anwendungen „versehentlich“ auf das lokaleDateisystem übertragen. EMRFS kann dabei helfen, sicherzustellen, dass eine persistente „Source ofTruth“ für in Amazon S3 gespeicherte HDFS-Daten vorhanden ist.

Amazon EBS funktioniert innerhalb von Amazon EMR anders als mit regulären Amazon EC2-Instances.An EMR-Cluster angefügte Amazon EBS-Volumes sind flüchtig: Die Volumes werden nach Beendenvon Cluster und Instance gelöscht (z. B. beim Verkleinern von Instance-Gruppen). Daher ist es wichtig,keine dauerhafte Speicherung von Daten zu erwarten. Obwohl die Daten flüchtig sind, ist es möglich,dass Daten in HDFS abhängig von der Anzahl und der Spezialisierung der Knoten im Cluster repliziertwerden. Wenn Sie EBS-Speichervolumes hinzufügen, werden diese als zusätzliche Volumes bereitgestellt.Sie sind nicht Teil des Startvolumes. YARN ist so konfiguriert, dass alle zusätzlichen Volumes verwendetwerden. Sie sind jedoch dafür verantwortlich, die zusätzlichen Volumes als lokalen Speicher (z. B. für lokaleProtokolldateien) zuzuweisen.

Andere Nachteile der Nutzung von Amazon EBS mit EMR-Clustern sind:

• Sie können nicht einen Snapshot eines EBS-Volumes erstellen und dann innerhalb von Amazon EMRwiederherstellen. Um wiederverwendbare benutzerdefinierte Konfigurationen zu erstellen, verwenden Sieein benutzerdefiniertes AMI (verfügbar ab Version 5.7.0 von Amazon EMR). Weitere Informationen findenSie im Verwenden eines benutzerdefinierten AMI (p. 124).

• Ein verschlüsseltes EBS-Root-Volume wird nur unterstützt, wenn Sie ein benutzerdefiniertes AMIverwenden. Weitere Informationen finden Sie im Erstellen eines benutzerdefinierten AMI mit einemverschlüsselten Amazon EBS-Root-Gerät-Datenträger (p. 128).

• Wenn Sie Tags mit der Amazon EMR-Webservice-API zuweisen, werden diese Operationen auf EBS-Volumes angewendet.

• Es gilt eine Beschränkung von 25 Volumes pro Instance.• Die EBS-Volumes auf Core-Knoten dürfen nicht kleiner als 5 GB sein.

EBS-Standardspeicher für Instances

Amazon EMR fügt automatisch ein Amazon EBS-Allzweck-SSD (gp2) mit 10 GB als Root-Gerät für dieAMIs an, um die Leistung zu verbessern. Darüber hinaus weist Amazon EMR für EC2-Instances mit Nur-EBS-Speicher EBS-Speicher-Volumes zu. Beim Erstellen eines Clusters mit Amazon EMR-Version ab5.22.0 steigt die Größe des standardmäßig zugewiesenen EBS-Speichers basierend auf der Größe derInstance. Zudem haben wir den größeren Speicher auf mehrere Volumes verteilt, um die IOPS-Leistungzu steigern und damit die Ausführungsgeschwindigkeit für verschiedene standardisierte Workloads zuerhöhen. Wenn Sie eine andere EBS-Instance-Speicherkonfiguration verwenden möchten, können Siediese beim Erstellen eines EMR-Clusters bzw. beim Hinzufügen von Knoten zu einem Cluster angeben.Anhand der Tabelle unten können Sie die Standardanzahl an EBS-Speicher-Volumes, deren Größe und dieGesamtgröße pro Instance-Typ ermitteln.

EBS-Kosten werden anteilig nach Stunde berechnet. Dies erfolgt auf der Grundlage der monatlichenAmazon EBS-Gebühren für gp2-Volumes in der Region, in der der Cluster ausgeführt wird. Die EBS-Kosten pro Stunde für das Root-Volume auf jeden Cluster-Knoten in einer Region, in der 0,10 USD/GB/

143

Page 151: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

Monat berechnet werden, belaufen sich beispielsweise auf etwa 0,00139 USD pro Stunde (0,10 USD/GB/Monat dividiert durch 30 Tage dividiert durch 24h multipliziert mit 10 GB).

Standardwerte für EBS-Speicher-Volumes und deren Größe nach Instance-Typ für Amazon EMRab Version 5.22.0

Instance-Größe Anzahl der Volumes Volume-Größe (GiB) Gesamtgröße (GiB)

*.large 1 32 32

*.xlarge 2 32 64

*.2xlarge 4 32 128

*.4xlarge 4 64 256

*.8xlarge 4 128 512

9xlarge 4 144 576

10xlarge 4 160 640

12xlarge 4 192 768

*.16xlarge 4 256 1024

18xlarge 4 288 1 152

24xlarge 4 384 1536

Angeben zusätzlicher EBS-Speicher-VolumesWenn Sie Instance-Typen in Amazon EMR konfigurieren, können Sie zusätzliche EBS-Volumes angeben,die Kapazität über den Instance-Speicher (sofern vorhanden) und das Standard-EBS-Volume hinausbereitstellen. Amazon EBS bietet die folgenden Volume-Typen: Allzweck-SSD, bereitgestellte IOPS(SSD), Throughput Optimized (HDD), Cold (HDD) und Magnetspeicher. Diese unterscheiden sich bei denLeistungsmerkmalen und im Preis, sodass Sie Ihren Speicher den Analyse- und Business-AnforderungenIhrer Anwendungen entsprechend anpassen können. Beispielsweise benötigen einige Anwendungen denÜberlauf auf Datenträger, während andere im Speicher oder unter Verwendung Amazon S3 sicher arbeitenkönnen.

Sie können EBS-Volumes Instances nur beim Cluster-Start anfügen, es sei denn, Sie fügen einezusätzliche Aufgabenknoten-Instance-Gruppe hinzu, da Sie während dieses Vorgangs auch EBS-Volumesergänzen können. Wenn eine Instance in einem EMR-Cluster ausfällt, werden sowohl die Instance als auchdie angefügten EBS-Volumes durch neue ersetzt. Wenn Sie ein EBS-Volume manuell trennen, behandeltAmazon EMR dies als Fehler und ersetzt sowohl den Instance-Speicher (falls zutreffend) als auch dieVolume-Speicher.

Konfigurieren des NetzwerksEs können zwei Netzwerkplattformoptionen für Ihren Cluster ausgewählt werden: EC2-Classic oder EC2-VPC. In EC2-Classic werden Ihre Instances in einem einzelnen, flachen Netzwerk ausgeführt, das Siegemeinsam mit anderen Kunden verwenden. EC2-Classic steht nur gewissen Konten in bestimmtenRegionen zur Verfügung Weitere Informationen finden Sie unter Amazon EC2 und Amazon VPC imAmazon EC2-Benutzerhandbuch für Linux-Instances. In EC2-VPC verwendet Ihr Cluster Amazon VirtualPrivate Cloud (Amazon VPC). Die EC2-Instances werden in einer VPC ausgeführt, die innerhalb IhresAWS-Kontos logisch isoliert ist. Amazon VPC ermöglicht Ihnen die Bereitstellung einer Virtual Private Cloud(VPC), d. h. eines isolierten Bereichs innerhalb von AWS, in dem Sie ein virtuelles Netzwerk konfigurierenund private IP-Adressbereiche, Subnetze, Routing-Tabellen und Netzwerk-Gateways kontrollieren können.

144

Page 152: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

VPC bietet folgende Funktionen:

• Verarbeitung sensibler Daten

Das Starten eines Clusters in einer VPC ähnelt dem Starten des Clusters in ein privates Netzwerk mitzusätzlichen Tools wie Routing-Tabellen und Netzwerk-ACLs, um zu definieren, wer Zugriff auf dasNetzwerk hat. Wenn Sie sensible Daten in Ihrem Cluster verarbeiten, ist die zusätzliche Zugriffskontrolle,die das Starten von Ihrem Cluster in einer VPC bietet, nützlich. Außerdem können Sie Ihre Ressourcenin einem privaten Subnetz starten, in dem keine dieser Ressourcen über eine direkte Internetverbindungverfügt.

• Zugreifen auf Ressourcen in einem internen Netzwerk

Wenn sich Ihre Datenquelle in einem privaten Netzwerk befindet, kann es entweder aufgrund derDatenmenge oder der Vertraulichkeitsstufe der Daten unpraktisch oder unerwünscht sein, die Daten zumImportieren in Amazon EMR in AWS hochzuladen. Stattdessen können Sie den Cluster in einer VPCstarten und Ihr Rechenzentrum über eine VPN-Verbindung mit Ihrer VPC zu verbinden, damit der ClusterZugriff auf Ressourcen im internen Netzwerk erhält. Wenn sich beispielsweise eine Oracle-Datenbank inIhrem Rechenzentrum befindet, kann der Cluster auf diese Datenbank zugreifen, wenn Sie ihn in einerVPC starten, die mit dem entsprechenden Netzwerk über VPN verbunden ist.

Öffentliche und private Subnetze

Sie können EMR-Cluster sowohl in öffentlichen als auch privaten VPC-Subnetzen starten. Das bedeutet,dass Sie keine Internet-Konnektivität benötigen, um einen EMR-Cluster auszuführen. Sie müssen dieNetzwerkadressenübersetzung (Network Address Translation, NAT) und VPN-Gateways allerdings fürden Zugriff auf Services und Ressourcen außerhalb von VPC konfigurieren, z. B. in einem Intranet oderöffentlichen AWS-Service-Endpunkten wie AWS Key Management Service.

Important

Amazon EMR unterstützt nur das Starten von Clustern in privaten Subnetzen in den Versionen 4.2oder höher.

Weitere Informationen über Amazon VPC finden Sie im Amazon VPC Benutzerhandbuch.

Themen• Amazon VPC-Optionen (p. 145)• Einrichten einer VPC zum Hosten von Clustern (p. 150)• Starten von Clustern in einer VPC (p. 152)• Amazon S3-Mindestrichtlinie für private Subnetze (p. 154)• Weitere Ressourcen zum Lernen über VPCs (p. 154)

Amazon VPC-Optionen

Wenn Sie ein Amazon EMR-Cluster in einer VPC starten, können Sie diesen Vorgang in einemöffentlichen, privaten oder gemeinsamen Subnetz ausführen. Es gibt geringe, aber erwähnenswerteUnterschiede in Bezug auf die Konfiguration, je nachdem, welchen Subnetztyp Sie für ein Clusterauswählen.

Öffentliche Subnetze

EMR-Cluster in einem öffentlichen Subnetz erfordern ein verbundenes Internet-Gateway. Der Grundhierfür ist, dass Amazon EMR-Cluster auf AWS-Services und Amazon EMR zugreifen müssen. Wenn ein

145

Page 153: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

Service, wie Amazon S3 die Möglichkeit zum Erstellen eines VPC-Endpunkts bietet, können Sie auf dieseServices über den Endpunkt statt über einen öffentlichen Endpunkt und ein Internet-Gateway zugreifen.Darüber hinaus kann Amazon EMR nicht mit Clustern in öffentlichen Subnetzen über eine NAT-Gerät(Netzwerkadressenübersetzung, Network Address Translation) kommunizieren. Zu diesem Zweck ist einInternet-Gateway erforderlich. Sie können dennoch eine NAT-Instance oder ein Gateway für anderenDatenverkehr in komplexeren Szenarien verwenden.

Alle Instances in einem Cluster stellen entweder über einen VPC-Endpunkt oder ein Internet-Gatewayeinen Verbindung mit Amazon S3 her. Andere AWS-Services, die derzeit keine VPC-Endpunkteunterstützen, verwenden nur ein Internet-Gateway.

Wenn Sie über zusätzliche AWS-Ressourcen verfügen, die nicht mit dem Internet-Gateway verbundenwerden sollen, können Sie diese Komponenten in einem privaten Subnetz starten, das Sie in Ihrer VPCerstellen.

Cluster in einem öffentlichen Subnetz verwenden zwei Sicherheitsgruppen: eine für den Master-Knoten undeine für Core- und Aufgabenknoten. Weitere Informationen finden Sie im Steuerung des Netzwerkverkehrsmit Sicherheitsgruppen (p. 316).

Das folgende Diagramm zeigt, wie ein Amazon EMR-Cluster in einer VPC mit einem öffentlichen Subnetzausgeführt wird. Der Cluster kann eine Verbindung mit anderen AWS-Ressourcen wie Amazon S3-Bucketsüber das Internet-Gateway herstellen.

Das folgende Diagramm zeigt, wie Sie eine VPC so einrichten, dass ein Cluster in der VPC Zugriff aufRessourcen in Ihrem eigenen Netzwerk, wie z. B. eine Oracle-Datenbank, hat.

146

Page 154: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

Private Subnetze

In privaten Subnetzen können Sie AWS-Ressourcen starten, ohne dass dem Subnetz ein Internet-Gateway angeschlossen sein muss. Dies kann z. B. in einer Anwendung nützlich sein, die diese privatenRessourcen im Back-End verwendet. Diese Ressourcen können dann ausgehenden Datenverkehrüber eine NAT-Instance in einem anderen Subnetz starten, dem ein Internet-Gateway zugeordnet ist.Weitere Informationen zu diesem Szenario finden Sie unter Szenario 2:. VPC mit öffentlichen und privatenSubnetzen (NAT).

Important

Amazon EMR unterstützt nur das Starten von Clustern in privaten Subnetzen in den Versionen 4.2oder höher.

Nachfolgend sind die Unterschiede zu öffentlichen Subnetzen aufgeführt:

• Für den Zugriff auf AWS-Services, die keinen VPC-Endpunkt zur Verfügung stellen, müssen Sie eineNAT-Instance oder ein Internet-Gateway verwenden.

• Sie müssen mindestens eine Route zum Amazon EMR-Bucket für Serviceprotokolle und Amazon Linux-Repository in Amazon S3 zur Verfügung stellen. Weitere Informationen finden Sie unter Amazon S3-Mindestrichtlinie für private Subnetze (p. 154).

• Wenn Sie EMRFS-Funktionen verwenden, benötigen Sie einen Amazon S3-VPC-Endpunkt und eineRoute von Ihrem privaten Subnetz zu DynamoDB.

• Debugging funktioniert nur, wenn Sie eine Route von Ihrem privaten Subnetz zu einem öffentlichenAmazon SQS-Endpunkt bereitstellen.

• Das Erstellen eines privaten Subnetzes mit einer NAT-Instance oder einem Gateway in einemöffentlichen Subnetz wird nur mithilfe der AWS Management Console unterstützt. Die einfachsteMethode zum Hinzufügen und Konfigurieren von NAT-Instances und Amazon S3-VPC-Endpunkten fürEMR-Cluster besteht in der Verwendung der Seite VPC Subnets List (VPC-Subnetzliste) in der AmazonEMR-Konsole. Informationen zum Konfigurieren von NAT-Gateways finden Sie unter NAT-Gateways imAmazon VPC Benutzerhandbuch.

• Sie können ein Subnetz mit einem vorhandenen EMR-Cluster nicht von öffentlich in privat oderumgekehrt ändern. Um ein EMR-Cluster in einem privaten Subnetz zu finden, muss der Cluster indiesem privaten Subnetz gestartet werden.

Amazon EMR erstellt und verwendet verschiedene Standardsicherheitsgruppen für die Cluster ineinem privaten Subnetz: ElasticMapReduce-Master-Private, ElasticMapReduce-Slave-Private und

147

Page 155: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

ElasticMapReduce-ServiceAccess. Weitere Informationen finden Sie im Steuerung des Netzwerkverkehrsmit Sicherheitsgruppen (p. 316).

Eine vollständige Liste der NACLs Ihres Clusters finden Sie unter Security groups for Master und Securitygroups for Core & Task auf der Seite Amazon EMRCluster Details der -Konsole.

Die folgende Abbildung zeigt, wie ein EMR-Cluster in einem privaten Subnetz konfiguriert wird. Die einzigeKommunikation außerhalb des Subnetzes erfolgt mit Amazon EMR.

In der folgenden Abbildung ist eine Beispielkonfiguration für einen EMR-Cluster in einem privaten Subnetzdargestellt, das mit einer NAT-Instance in einem öffentlichen Subnetz verbunden ist.

148

Page 156: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

Gemeinsame Subnetze

Mit VPC können Kunden Subnetze mit anderen AWS-Konten innerhalb derselben AWS-Organisationgemeinsam nutzen. Sie können Amazon EMR-Cluster sowohl in öffentlichen als auch privatengemeinsamen Subnetzen starten, wobei folgende Einschränkungen gelten.

Der Subnetzbesitzer muss ein Subnetz für Sie freigeben, bevor Sie ein Amazon EMR-Cluster darinstarten können. Die Freigabe für gemeinsame Subnetze kann jedoch zu einem späteren Zeitpunkt wiederaufgehoben werden. Weitere Informationen finden Sie unter Arbeiten mit freigegebenen VPCs. Wennein Cluster in einem freigegebenen Subnetz gestartet wird und die Freigabe dieses Subnetzes dannaufgehoben wird, können Sie bestimmte Verhaltensweisen basierend auf dem Status des Amazon EMR-Clusters beobachten, wenn die Freigabe des Subnetzes aufgehoben wird.

• Die Freigabe des Subnetzes wird vor dem erfolgreichen Start des Clusters aufgehoben – Wenn derBesitzer die Freigabe der Amazon VPC oder des Subnetzes aufhebt, während der Teilnehmer einCluster startet, kann das Cluster nicht gestartet werden oder wird nur teilweise initialisiert, ohne alleangeforderten Instances bereitzustellen.

• Die Freigabe des Subnetzes wird nach dem erfolgreichen Start des Clusters aufgehoben – Wenn derBesitzer die Freigabe einer Amazon VPC oder eines Subnetzes für den Teilnehmer aufhebt, sind dieCluster des Teilnehmers nicht in der Lage, ihre Größe anzupassen, um neue Instances hinzuzufügenoder fehlerhafte Instances zu ersetzen.

149

Page 157: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

Wenn Sie ein Amazon EMR-Cluster starten, werden mehrere Sicherheitsgruppen erstellt. In einemgemeinsamen Subnetz steuert der Subnetzteilnehmer diese Sicherheitsgruppen. Der Subnetzbesitzerkann diese Sicherheitsgruppen zwar anzeigen, jedoch keine Aktionen bei diesen durchführen. Wennder Subnetzbesitzer die Sicherheitsgruppe entfernen oder ändern möchte, muss der Teilnehmer, der dieSicherheitsgruppe erstellt hat, die Aktion durchführen.

Steuern von VPC-Berechtigungen mit IAM

Standardmäßig können alle IAM-Benutzer sämtliche Subnetze für das Konto sehen einen Cluster in einemSubnetz starten.

Wenn Sie einen Cluster in einer VPC starten, können Sie mit AWS Identity and Access Management (IAM)den Zugriff auf Cluster kontrollieren und Aktionen mithilfe von Richtlinien einschränken, genau wie beiClustern, die in EC2-Classic gestartet werden. Mehr über IAM erfahren Sie unter IAM-Benutzerhandbuch.

Sie können auch IAM verwenden, um zu kontrollieren, wer Subnetze erstellen und verwalten kann. Siekönnen beispielsweise ein Benutzerkonto zum Verwalten von Subnetzen und ein zweites Benutzerkontoerstellen, das Cluster starten, aber keine Amazon VPC-Einstellungen ändern kann. Weitere Informationenzum Verwalten von Richtlinien und Aktionen in Amazon EC2 und Amazon VPC finden Sie unter IAM-Richtlinien für Amazon EC2 im Amazon EC2-Benutzerhandbuch für Linux-Instances.

Einrichten einer VPC zum Hosten von ClusternBevor Sie Cluster in einer VPC starten können, müssen Sie eine VPC und ein Subnetz erstellen. Füröffentliche Subnetze müssen Sie ein Internet-Gateway erstellen und es dem Subnetz hinzufügen. Diefolgenden Anweisungen beschreiben, wie Sie eine VPC erstellen, die Amazon EMR-Cluster hostenkönnen.

So erstellen Sie ein Subnetz für die Ausführung von Amazon EMR-Clustern

1. Öffnen Sie die Amazon VPC-Konsole unter der Adresse https://console.aws.amazon.com/vpc/.2. Wählen Sie in der Navigationsleiste die Region aus, in der Sie Ihren Cluster ausführen möchten.3. Wählen Sie Start VPC Wizard.4. Wählen Sie die VPC-Konfiguration mit einer der folgenden Optionen aus:

• VPC with a Single Public Subnet (VPC mit einem einzelnen öffentlichen Subnetz): Wählen Sie dieseOption aus, wenn die Daten im Cluster im Internet verfügbar sind (z. B. in Amazon S3 oder AmazonRDS).

• VPC mit öffentlichen und privaten Subnetzen und Hardware-VPN-Zugriff — Wählen Sie dieseOption, um ein privates Subnetz zu verwenden oder wenn die Daten für Ihre Anwendung in Ihremeigenen Netzwerk (z. B. in einer Oracle-Datenbank) gespeichert werden. Mit dieser Option könnenSie auch öffentliche Subnetze innerhalb derselben VPC als private Subnetze integrieren.

5. Bestätigen Sie die VPC-Einstellungen. Die Abbildungen zeigen einzelne öffentliche sowie private undöffentliche Szenarien.

150

Page 158: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

• Für die Zusammenarbeit mit Amazon EMR muss die VPC mit einem öffentlichen Subnetz sowohlüber ein Internet-Gateway und als auch ein Subnetz verfügen.

Für eine VPC in einem privaten Subnetz müssen alle EC2-Instances mindestens über eine Route zuAmazon EMR über die Elastic Network-Schnittstelle verfügen. In der Konsole wird diese automatischkonfiguriert.

• Verwenden Sie einen privaten IP-Adressraum für Ihre VPC, um eine ordnungsgemäße Auflösungdes DNS-Hostnamens sicherzustellen. Andernfalls können Amazon EMR-Cluster-Ausfälle auftreten.Dieser Raum umfasst die folgenden IP-Adressbereiche:• 10.0.0.0 – 10.255.255.255• 172.16.0.0 – 172.31.255.255• 192.168.0.0 – 192.168.255.255

• Wählen Sie Use a NAT instance instead (Stattdessen NAT-Instance auswählen) und dieentsprechenden Optionen aus.

• Optional können Sie mit der Option Add endpoints for S3 to your subnets (Ihren SubnetzenEndpunkte für S3 hinzufügen) Ihren Subnetzen Endpunkte für S3 hinzufügen.

151

Page 159: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

• Überprüfen Sie, ob die Option Enable DNS hostnames (DNS-Hostnamen aktivieren) markiertist. Sie haben die Möglichkeit, beim Erstellen der VPC DNS-Hostnamen zu aktivieren. Um dieEinstellung von DNS-Hostnamen zu ändern, wählen Sie Ihre VPC in der VPC-Liste aus und klickenanschließend im Detailbereich auf Edit (Bearbeiten). Um einen DNS-Eintrag ohne Domänennamenzu erhalten, erstellen Sie einen Wert für DHCP Options Set (DHCP-Optionssatz)und ordnen diesenanschließend Ihrer VPC zu. Sie können den Domänennamen nicht mit der Konsole bearbeiten,nachdem die DNS-Optionsliste festgelegt wurde.

Weitere Informationen finden Sie unter Using DNS with Your VPC.• Es ist eine bewährte Methode mit Hadoop und verwandten Anwendungen, um die Auflösung des

vollständig qualifizierten Domänennamens (FQDN, Fully Qualified Domain Name) für Knotensicherzustellen. Um die ordnungsgemäße DNS-Auflösung sicherzustellen, müssen Sie eine VPCkonfigurieren, die eine DHCP-Optionsliste enthält, deren Parameter auf die folgenden Wertefestgelegt sind:• domain-name = ec2.internal

Verwenden Sie ec2.internal, wenn Ihre Region USA Ost (Nord-Virginia) ist. Für andereRegionen verwenden Sie region-name.compute.internal: Beispiele für us-west-2finden Sie unter us-west-2.compute.internal. Für die Region AWS GovCloud (US-West)verwenden Sie us-gov-west-1.compute.internal.

• domain-name-servers = AmazonProvidedDNS

Weitere Informationen finden Sie unter DHCP-Optionsgruppen im Amazon VPC Benutzerhandbuch.6. Wählen Sie Create VPC aus. Wenn Sie eine NAT-Instance erstellen, kann es einige Minuten dauern,

bis dieser Vorgang abgeschlossen ist.

Navigieren Sie nach Erstellung der VPC zur Seite Subnets (Subnetze). Notieren Sie die ID eines derSubnetze Ihrer VPC. Diese Information benötigen Sie, wenn Sie den EMR-Cluster in der VPC starten.

Starten von Clustern in einer VPCNachdem Sie ein Subnetz zum Hosten von Amazon EMR-Clustern konfiguriert haben, starten Sie denCluster in diesem Subnetz, indem Sie die zugewiesene Subnetz-ID beim Erstellen des Clusters angeben.

Note

Amazon EMR unterstützt private Subnetze in Version 4.2 und höher.

Wenn der Cluster gestartet wird, fügt Amazon EMR Sicherheitsgruppen hinzu, je nachdem, ob der Clusterin privaten oder öffentlichen Subnetzen der VPC gestartet wird. Alle Sicherheitsgruppen ermöglichen denZugang über Port 8443 für die Kommunikation mit dem Amazon EMR-Service. Die IP-Adressbereichefür öffentliche und private Subnetze unterscheiden sich jedoch. Amazon EMR verwaltet alle dieseSicherheitsgruppen und muss dem AWS-Bereich im Laufe der Zeit möglicherweise zusätzliche IP-Adressen hinzufügen. Weitere Informationen finden Sie im Steuerung des Netzwerkverkehrs mitSicherheitsgruppen (p. 316).

Zum Verwalten des Cluster in einer VPC fügt Amazon EMR dem Master-Knoten ein Netzwerkgerätan und verwaltet ihn über dieses Gerät. Sie können dieses Gerät mit der Amazon EC2-API-AktionDescribeInstances anzeigen. Wenn Sie dieses Gerät in irgendeiner Weise ändern, schlägt der Clustermöglicherweise fehl.

So starten Sie einen Cluster in einer VPC mit der Amazon EMR-Konsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Wählen Sie Go to advanced options (Zu erweiterten Optionen navigieren) aus.

152

Page 160: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

4. Wählen Sie im Abschnitt Hardware Configuration (Hardwarekonfiguration) für Network (Netzwerk)dieID eines zuvor von Ihnen erstellen VPC-Netzwerks aus.

5. Wählen Sie in EC2 Subnet (EC2-Subnetz) die ID eines zuvor von Ihnen erstellten Subnetzes aus.

a. Wenn das private Subnetz ordnungsgemäß NAT-Instance- und S3-Endpunkt-Optionen konfiguriertwurde, wird oberhalb der Subnetznamen und -IDs (EMR Ready) (EMR-kompatibel) angezeigt.

b. Wenn Ihr privates Subnetz nicht über eine NAT-Instance und/oder einen S3-Endpunkt verfügt,können Sie diese konfigurieren, indem Sie Add S3 endpoint and NAT instance (S3-Endpunkt undNAT-Instance hinzufügen), Add S3 endpoint (S3-Endpunkt hinzufügen) oder Add NAT instance(NAT-Instanz hinzufügen) auswählen. Wählen Sie die gewünschten Optionen für NAT-Instanceund S3-Endpunkt aus und klicken Sie auf Configure (Konfigurieren).

Important

Um eine NAT-Instance in Amazon EMR zu erstellen,benötigen Sie die Berechtigungen ec2:CreateRoute,ec2:RevokeSecurityGroupEgress, ec2:AuthorizeSecurityGroupEgress,cloudformation:DescribeStackEvents und cloudformation:CreateStack.

Note

Es fallen für das Starten einer EC2 Instance für Ihr NAT-Gerät zusätzliche Kosten an.6. Fahren Sie mit der Erstellung des Clusters fort.

So starten Sie einen Cluster in einer VPC mit der AWS CLI

Note

Mit der AWS CLI können Sie eine NAT-Instance nicht automatisch erstellen und mit Ihrem privatenSubnetz verbinden. Um jedoch einen S3-Endpunkt in Ihrem Subnetz zu erstellen, können Sie dieAmazon VPC-CLI-Befehle nutzen. Verwenden Sie die Konsole zum Erstellen von NAT-Instancesund Starten von Clustern in einem privaten Subnetz.

Nachdem Sie Ihre VPC konfiguriert haben, können Sie darin vorhandene EMR-Cluster mithilfe desUnterbefehls create-cluster mit dem Parameter --ec2-attributesstarten. Verwenden Sie denParameter --ec2-attributes, um das VPC-Subnetz für den Cluster anzugeben.

• Um einen Cluster in einem bestimmten Subnetz zu erstellen, geben Sie den folgenden Befehl einund ersetzen myKey durch den Namen Ihres EC2-Schlüsselpaares ersetzen 77XXXX03 durch IhreSubnetz-ID.

aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --applications Name=Hadoop Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey,SubnetId=subnet-77XXXX03 --instance-type m5.xlarge --instance-count 3

Wenn Sie die Instance-Anzahl ohne den Parameter --instance-groups angeben, wird eineinzelner Master-Knoten gestartet. Die verbleibenden Instances werden als Core-Knoten aufgerufen.Alle Knoten verwenden den im Befehl angegebenen Instance-Typ.

Note

Wenn Sie zuvor nicht die standardmäßige Amazon EMR-Servicerolle und das EC2 Instance-Profil erstellt haben, geben Sie aws emr create-default-roles ein, um sie zu erstellen,bevor Sie den Unterbefehl create-cluster eingeben.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unter AWSCLI.

153

Page 161: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren des Netzwerks

Amazon S3-Mindestrichtlinie für private SubnetzeFür private Subnetze müssen Sie Amazon EMR mindestens den Zugriff auf Amazon Linux-Repositorysermöglichen. Mit Amazon EMR 5.25.0 oder höher müssen Sie Amazon EMR den Zugriff auf den System-Bucket ermöglichen, in dem die Spark-Ereignisprotokolle erfasst werden, um den Zugriff auf denpersistenten Spark History-Server mit nur einem Klick zu aktivieren. Weitere Informationen finden Sie unterZugriff auf den persistenten Spark History Server mit nur einem Klick.

Es ist dem Benutzer überlassen, den Businessanforderungen entsprechende Richtlinieneinschränkungenfestzulegen. Sie können beispielsweise die Region („packages.us-west-1.amazonaws.com“) angeben, umeinen mehrdeutigen S3-Bucket-Namen zu vermeiden. Die folgende Beispielrichtlinie bietet Berechtigungenfür den Zugriff auf Amazon Linux-Repositorys und den EMR-System-Bucket zum Sammeln von Spark-Ereignisprotokollen. Ersetzen MyRegion mit der Region, in der sich Ihre Protokoll-Buckets befinden, z. B.us-east-1.

{ "Version": "2008-10-17", "Statement": [ { "Sid": "AmazonLinuxAMIRepositoryAccess", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::packages.*.amazonaws.com/*", "arn:aws:s3:::repo.*.amazonaws.com/*" ] }, { "Sid": "EnableApplicationHistory", "Effect": "Allow", "Principal": "*", "Action": [ "s3:Put*", "s3:Get*", "s3:Create*", "s3:Abort*", "s3:List*" ], "Resource": [ "arn:aws:s3:::prod.MyRegion.appinfo.src/*" ] } ]}

Weitere Ressourcen zum Lernen über VPCsIn den folgenden Themen erfahren Sie mehr über VPCs und Subnetze.

• Private Subnetze in einer VPC• Szenario 2: VPC mit öffentlichen und privaten Subnetzen (NAT)• NAT-Instances• Hohe Verfügbarkeit für Amazon VPC NAT-Instances: Ein Beispiel

• Öffentliche Subnetze in einer VPC• Szenario 1: VPC mit einem einzelnen öffentlichen Subnetz

• Allgemeine VPC-Informationen• Amazon VPC Benutzerhandbuch

154

Page 162: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

• VPC Peering• Verwenden von Elastic Network-Schnittstellen mit Ihrer VPC• Sichere Verbindung mit Linux-Instances, die in einer privaten VPC ausgeführt werden

Erstellen eines Clusters mit Instance-Flotten odereinheitlichen Instance-GruppenWenn Sie einen Cluster erstellen und die Konfiguration der Master-, Core- und Aufgabenknoten angeben,stehen Ihnen zwei Konfigurationsoptionen zur Verfügung. Sie können Instance-Flotten oder einheitlicheInstance-Gruppen verwenden. Die Konfigurationsoption, die Sie auswählen, gilt für alle Knoten und für diegesamte Nutzungsdauer des Clusters. Instance-Flotten und Instance-Gruppen können nicht gleichzeitig ineinem Cluster vorhanden sein. Die Instance-Flottenkonfiguration ist in Amazon EMR-Versionen 4.8.0 undhöher verfügbar, nicht in 5.0.x-Versionen.

Sie können die EMR-Konsole, die AWS CLI oder die EMR-API verwenden, um Cluster mit einer derKonfigurationen zu erstellen. Wenn Sie den Befehl create-cluster in der AWS CLI verwenden,erstellen Sie den Cluster mit den --instance-fleets-Parametern, um den Cluster mittels Instance-Flotten zu erstellen, oder mit den --instance-groups-Parametern, um den Cluster mittels einheitlicherInstance-Gruppen zu erstellen.

Dasselbe gilt auch, wenn Sie die EMR-API verwenden. Sie geben mit der Konfiguration InstanceGroupseine Reihe von InstanceGroupConfig-Objekten oder mit der Konfiguration InstanceFleets eineReihe von InstanceFleetConfig-Objekten an.

Wenn Sie in der EMR-Konsole beim Erstellen eines Clusters die Standardeinstellungen in Quick Options(Schnelloptionen) verwenden, konfiguriert Amazon EMR den Cluster mit einheitlichen Instance-Gruppenund verwendet On-Demand-Instances. Um Spot-Instances mit einheitlichen Instance-Gruppen zuverwenden oder Instance-Flotten und anderen Anpassungen zu konfigurieren, wählen Sie AdvancedOptions (Erweiterte Optionen) aus.

Tip

Um einen Cluster, den Sie bereits erstellt haben, schnell und einfach zu replizieren, bietet AmazonEMR zwei Optionen in der Konsole. Sie können den Cluster klonen oder einen create cluster-CLI-Befehl generieren. Wählen Sie zunächst Cluster list (Cluster-Liste) und dann den Clusteraus, den Sie replizieren möchten. Wählen Sie AWS CLI export (AWS-CLI-Export) aus, damitAmazon EMR den entsprechenden create cluster-CLI-Befehl für den Cluster generiert, denSie anschließend kopieren und einfügen können. Wählen Sie die Schaltfläche Clone (Klonen)aus, damit Amazon EMR die Einrichtung Ihrer Konsole repliziert. Amazon EMR zeigt Ihnenzur Bestätigung der Cluster-Konfiguration den letzten Schritt in Advanced Options (ErweiterteOptionen) an. Sie können die Option Create Cluster (Cluster erstellen) zum Erstellen des neuenClusters (mit demselben Namen und einer anderen Cluster-ID) oder die Option Previous (Zurück)auswählen, um die Einstellungen zu ändern.

Instance-FlottenDie Instance-Flottenkonfiguration bietet eine Vielzahl von Bereitstellungsoptionen für EC2 Instances. JederKnotentyp verfügt über eine einzelne Instance-Flotte und die Aufgaben-Instance-Flotte ist optional. Fürjede Instance-Flotte geben Sie bis zu fünf Instance-Typen an (bei Verwendung einer Zuordnungsstrategie,bis zu 15 Instance-Typen auf Aufgaben-Instance-Flotten), die als On-Demand- und Spot-Instancesbereitgestellt werden können. Für die Core- und Aufgaben-Instance-Flotten weisen Sie eine Zielkapazitätfür On-Demand-Instances und eine andere für Spot-Instances zu. Amazon EMR wählt eine beliebigeMischung der angegebenen Instance-Typen aus, um die Zielkapazitäten zu erfüllen, und stellt sowohl On-Demand- als auch Spot-Instances bereit.

155

Page 163: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

Für den Master-Knoten-Typ wählt Amazon EMR einen einzelnen Instance-Typ aus Ihrer Liste derInstances aus und Sie geben an, ob er als On-Demand- oder Spot-Instance bereitgestellt wird. Instance-Flotten bieten außerdem zusätzliche Optionen für Spot-Instance- und On-Demand-Käufe. Zu den Spot-Instance-Optionen gehören eine definierte Dauer (auch als Spot-Block bezeichnet), ein Timeout, daseine Aktion angibt, die ausgeführt werden soll, wenn Spot-Kapazität nicht bereitgestellt werden kann, undeine bevorzugte Zuweisungsstrategie (kapazitätsoptimiert) für das Starten von Spot-Instance-Flotten.On-Demand-Instance-Flotten können auch mit einer Zuweisungsstrategie (niedrigster Preis) gestartetwerden. Weitere Informationen finden Sie im Konfigurieren von Instance-Flotten (p. 156). Wenn Sieeine Servicerolle verwenden, bei der es sich nicht um die EMR-Standardservicerolle oder EMR-verwalteteRichtlinie in Ihrer Servicerolle handelt, müssen Sie der benutzerdefinierten Cluster-Servicerolle zusätzlicheBerechtigungen hinzufügen, um die Zuordnungsstrategie zu aktivieren. Weitere Informationen finden Sie imService Role for Amazon EMR (EMR Role) (p. ).

Einheitliche Instance-GruppenEinheitliche Instance-Gruppen bieten eine vereinfachte Einrichtung. Jeder Amazon EMR-Cluster kannbis zu 50 Instance-Gruppen umfassen: eine Master-Instance-Gruppe mit einer EC2 Instance, eine Core-Instance-Gruppe mit einer oder mehreren EC2 Instances und bis zu 48 optionale Aufgaben-Instance-Gruppen. Jede Core- und Aufgaben-Instance-Gruppe kann eine beliebige Anzahl von EC2 Instancesenthalten. Sie können jede Instance-Gruppe durch Hinzufügen und Entfernen von EC2 Instances manuelloder mit Auto Scaling automatisch skalieren. Weitere Informationen zum Konfigurieren von einheitlichenInstance-Gruppen finden Sie unter Konfigurieren einheitlicher Instance-Gruppen (p. 166). WeitereInformationen über das Hinzufügen und Entfernen von Instances finden Sie unter Skalieren von Cluster-Ressourcen (p. 403).

Themen• Konfigurieren von Instance-Flotten (p. 156)• Konfigurieren einheitlicher Instance-Gruppen (p. 166)

Konfigurieren von Instance-FlottenDie Instance-Flottenkonfiguration für einen Cluster bietet eine Vielzahl von Bereitstellungsoptionen fürEC2 Instances. Im Fall von Instance-Flotten geben Sie Zielkapazitäten für On-Demand-Instances undSpot-Instances innerhalb der einzelnen Flotten an. Wenn der Cluster gestartet wird, stellt Amazon EMRInstances bereit, bis die Ziele erfüllt sind. Sie können bis zu fünf EC2-Instance-Typen pro Flotte angeben,die Amazon EMR bei der Erfüllung der Ziele verwenden soll. Sie können auch mehrere Subnetze fürverschiedene Availability Zones auswählen. Wenn Amazon EMR den Cluster startet, sieht er auf dieseSubnetze, um die Instances und Kaufoptionen zu finden, die Sie angeben.

Wenn Amazon EC2 während der Ausführung eines Clusters eine Spot-Instance aufgrund einesPreisanstiegs zurückfordert oder eine Instance ausfällt, versucht Amazon EMR, die Instance durcheinen der von Ihnen angegebenen Instance-Typen zu ersetzen. Dies erleichtert die Wiedererlangungder Kapazität während eines Anstiegs der Spot-Preise. Mit Instance-Flotten können Sie eine flexible undelastische Beschaffungsstrategie für jeden Knotentyp entwickeln. Innerhalb bestimmter Flotten können Siez. B. einen Core-Knoten mit On-Demand-Kapazität bereitstellen, die durch kostengünstigere Spot-Kapazitätergänzt wird, falls verfügbar, und wechseln Sie dann zu On-Demand-Kapazität, wenn Spot nicht zu IhremPreis verfügbar ist.

Note

Die Instance-Flottenkonfiguration ist nur in Amazon EMR-Versionen 4.8.0 und höher verfügbar,nicht in 5.0.0 und 5.0.3.

Optionale On-Demand- und Spot-Instance-Zuordnungsstrategien sind in Amazon EMR Version 5.12.1 undhöher verfügbar.

156

Page 164: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

Als Erweiterung der Standard-Cluster-Konfiguration für EMR-Instance-Flotten ist dieZuweisungsstrategiefunktion in EMR-Version 5.12.1 und höher verfügbar. Es optimiert die Zuweisung derInstance-Flottenkapazität und ermöglicht Ihnen die Auswahl einer Zielstrategie für jeden Cluster-Knoten.

• On-Demand-Instances verwenden eine kostengünstigste Strategie, die die kostengünstigsten Instanceszuerst startet.

• Spot-Instances verwenden eine kapazitätsoptimierte Strategie, die Spot-Instances aus Spot-Instance-Pools startet, die über eine optimale Kapazität für die Anzahl der gestarteten Instances verfügen.

Mit der Zuweisungsstrategieoption können Sie beim Erstellen Ihres Clusters zudem bis zu fünf EC2-Instance-Typen pro Aufgabenknoten angeben, im Gegensatz zu fünf maximal zulässigen Instance-Flottenkonfigurationen des EMR-Clusters.

Zusammenfassung der wichtigsten Funktionen

• Es wird genau eine Instance-Flotte pro Knoten-Typ (Master, Core, Aufgaben) festgelegt. Bis zu fünfEC2-Instance-Typen für jede Flotte angegeben (15 Typen pro Aufgaben-Instance-Flotte, wenn dieZuweisungsstrategieoption verwendet wird).

• Amazon EMR wählt einen oder alle der fünf EC2 Instance-Typen für die Bereitstellung sowohl mit Spot-als auch On-Demand-Kaufoptionen aus.

• Legen Sie Zielkapazitäten für Spot- und On-Demand-Instances für die Core- und Aufgaben-Flotte fest.Verwenden Sie vCPU- oder generische Einheiten, die den einzelnen EC2-Instances zugeordnet sindund für die Ziele berücksichtigt werden. Amazon EMR stellt so lange Instances bereit, bis die jeweiligeZielkapazität vollständig erreicht wurde. Für die Master-Flotte ist das Ziel immer auf 1 gesetzt.

• Wählen Sie ein Subnetz (eine Availability Zone) oder einen Bereich aus. Amazon EMR stellt Kapazitätenin der Availability Zone bereit, die am besten geeignet ist.

• Hinweise zum Angeben der Zielkapazität für Spot-Instances:• Geben Sie für jeden Instance-Typ einen Spot-Höchstpreis an. Amazon EMR stellt Spot-Instances

bereit, wenn der Spot-Preis unter dem Spot-Höchstpreis liegt. Sie zahlen den Spot-Preis, nichtunbedingt den maximalen Spot-Preis.

• Geben Sie optional eine definierte Dauer (auch als Spot-Block bekannt) für jede Flotte an. Spot-Instances werden erst nach Ablauf der definierten Dauer beendet.

• Für jede Flotte definieren Sie einen Timeout-Zeitraum für die Bereitstellung von Spot-Instances.Wenn Amazon EMR keine Spot-Kapazität bereitstellen kann, können Sie den Cluster beenden oderstattdessen zur Bereitstellung von On-Demand-Kapazität wechseln.

• Wählen Sie optional für jede Flotte Zuweisungsstrategien aus – den niedrigsten Preis für On-Demand-Instances; Kapazitätsoptimiert für Spot-Instances.

Instance-Flotten-OptionenVerwenden Sie die folgenden Richtlinien, um Instance-Flotten-Optionen zu verstehen.

Festlegen von Zielkapazitäten

Geben Sie die Zielkapazitäten für die Core- und Aufgaben-Flotte an. Wenn Sie dies tun, wird die Anzahlder On-Demand-Instances und Spot-Instances festgelegt, die Amazon EMR bereitstellt. Wenn Sie eineInstance angeben, können Sie entscheiden, wie viel jede Instance beim Ziel mit eingerechnet wird. Wenneine On-Demand-Instance bereitgestellt wird, wird sie beim On-Demand-Ziel mit eingerechnet. Dies giltauch für Spot-Instances. Im Gegensatz zu Core- und Aufgaben-Flotten besteht die Master-Flotte immer auseiner Instance. Daher ist die Zielkapazität für diese Flotte immer auf 1 gesetzt.

Wenn Sie die Konsole verwenden, wird die vCPUs des EC2-Instance-Typs standardmäßig als Anzahlfür die Zielkapazitäten verwendet. Sie können dies in Generic units (Generische Einheiten) ändernund anschließend die Anzahl für die einzelnen EC2-Instance-Typen angeben. Wenn Sie die AWS CLIverwenden, weisen Sie generische Einheiten für jeden Instance-Typ manuell zu.

157

Page 165: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

Important

Wenn Sie über die AWS Management Console einen Instance-Typ auswählen, steht die Anzahlvon vCPU, die für jeden Instance type (Instance-Typ) angezeigt wird, für die Anzahl der YARN-vcores für diesen Instance-Typ und nicht für die Anzahl der EC2-vCPUs für diesen Instance-Typ.Weitere Informationen zur Anzahl der vCPUs für jeden Instance-Typ finden Sie unter AmazonEC2-Instance-Typen.

Für jede Flotte geben Sie bis zu fünf EC2-Instance-Typen an. Wenn Sie die Anwendungsstrategieoptionverwenden, können Sie bis zu fünfzehn EC2-Instance-Typen für eine Aufgaben-Instance-Flotte angeben.Amazon EMR wählt eine beliebige Kombination dieser EC2-Instance-Typen aus, um Ihre Zielkapazitätenzu erfüllen. Da Amazon EMR die Zielkapazität vollständig ausfüllen möchte, könnte es zu einer Übermengekommen. Beispiel: Wenn zwei unerfüllte Einheiten vorhanden sind und Amazon EMR nur eine Instance miteiner Anzahl von fünf Einheiten bereitstellen kann, wird die Instance dennoch bereitgestellt. Dies bedeutet,dass die Zielkapazität im drei Einheiten überschritten wird.

Wenn Sie die Zielkapazität verringern, um die Größe eines laufenden Clusters zu ändern, versucht AmazonEMR, Anwendungsaufgaben abzuschließen und beendet Instances, um dem neuen Ziel zu entsprechen.Weitere Informationen finden Sie unter Beendigung bei Task-Abschluss (p. 435). Amazon EMR besitztein 60-Minuten-Timeout für den Abschluss von Operationen zur Änderung der Größe. In einigen Fällenwerden bei einem Knoten noch nach 60 Minuten Aufgaben ausgeführt und Amazon EMR meldet, dass dieGrößenanpassung erfolgreich war und dass das neue Ziel nicht erreicht wurde.

Startoptionen

Für Spot-Instances können Sie einen Maximum Spot price (Spot-Höchstpreis) für jeden der fünf Instance-Typen in einer Flotte angeben. Sie können diesen Preis als Prozentsatz des On-Demand-Preises oderals spezifischen Dollarbetrag festlegen. Amazon EMR stellt Spot-Instances bereit, wenn der aktuelleSpot-Preis in einer Availability Zone unter Ihrem Spot-Höchstpreis liegt. Sie zahlen den Spot-Preis, nichtunbedingt den maximalen Spot-Preis.

Sie können eine Defined duration (Definierten Dauer) für Spot-Instances in einer Flotte angeben. Wennsich der Spot-Preis ändert, beendet Amazon EMR Instances erst, wenn Defined duration (Definierte Dauer)abgelaufen ist. Preise mit definierter Dauer gelten, wenn Sie diese Option auswählen. Wenn Sie keinedefinierte Dauer festlegen, werden die Instances beendet, sobald der Spot-Preis den maximalen Spot-Preisübersteigt. Weitere Informationen zu den Preisen für definierte Dauern finden Sie unter Angeben einerDauer für Ihre Spot-Instances und Amazon EC2-Preise für Spot-Instances for defined duration pricing.

Darüber hinaus definieren Sie für jede Flotte das Provisioning timeout (Bereitstellungs-Timeout). DerTimeout gilt, wenn der Cluster bei seiner Erstellung Kapazität bereitstellt und nicht genügend Spot-Instances zur Erfüllung der Zielkapazität entsprechend Ihren Spezifikationen bereitstellen kann. Sie gebendie Timeout-Dauer und die Aktion an, die durchgeführt werden soll. Sie können festlegen, dass der Clusterbeendet wird oder zur Bereitstellung von On-Demand-Kapazität wechselt, um die verbleibende Spot-Kapazität zu erfüllen. Wenn Sie zu On-Demand wechseln, wird die verbleibende Spot-Kapazität effektiv derOn-Demand-Zielkapazität hinzugefügt, nachdem der Timeout abgelaufen ist.

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 Zuweisungsstrategieoption kann in derAWS-Managementkonsole oder über die API RunJobFlow festgelegt werden. Die Zuweisungsstrategieerfordert zusätzliche Servicerollenberechtigungen. Wenn Sie die standardmäßige EMR-Servicerolle und dieverwaltete Richtlinie (EMR_DefaultRole und AmazonElasticMapReduceRole) für den Cluster verwenden,sind die Berechtigungen für die Zuweisungsstrategie bereits enthalten. Wenn Sie die standardmäßigeEMR-Servicerolle und verwaltete Richtlinie nicht verwenden, müssen Sie sie hinzufügen, um diese Optionzu verwenden. Siehe Service Role for Amazon EMR (EMR Role) (p. ).

Weitere Informationen zu Spot-Instances finden Sie unter Spot-Instances im Amazon EC2-Benutzerhandbuch für Linux-Instances. Weitere Informationen zu On-Demand-Instances finden Sie unterOn-Demand-Instances im Amazon EC2-Benutzerhandbuch für Linux-Instances.

158

Page 166: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

Optionen für mehrere Subnetze (Availability Zones)

Wenn Sie Instance-Flotten verwenden, können Sie mehrere EC2-Subnetze innerhalb einer VPC angeben,die jeweils einer anderen Availability Zone entsprechen. Wenn Sie EC2-Classic verwenden, geben SieAvailability Zones explizit an. Amazon EMR identifiziert die beste Availability Zone zum Starten vonInstances entsprechend den Spezifikationen Ihrer Flotte. Instances werden immer nur in einer AvailabilityZone bereitgestellt. Sie können private Subnetze oder öffentliche Subnetze auswählen, aber nicht beideszusammen. Die Subnetze, die Sie angeben, müssen sich in derselben VPC befinden.

Master-Knoten-Konfiguration

Da die Master-Instance-Flotte ist nur eine einzelne Instance ist, unterscheidet sich ihre Konfiguration etwasvon Core- und Task-Instance-Flotten. Wählen Sie entweder On-Demand oder Spot für die Master-Instance-Flotte aus, da sie nur aus einer Instance besteht. Wenn Sie die Konsole verwenden, um die Instance-Flottezu erstellen, wird die Zielkapazität für die Kaufoption, die Sie auswählen, auf "1" festgelegt. Wenn Sie dieAWS CLI verwenden, müssen Sie stets TargetSpotCapacity oder TargetOnDemandCapacity auf1 festlegen, je nachdem. Sie können nach wie vor bis zu fünf Instance-Typen für die Master-Instance-Flotte auswählen. Im Gegensatz zu Core- und Aufgaben-Instance-Flotten, für die Amazon EMR mehrereInstances mit verschiedenen Typen bereitstellen kann, wählt Amazon EMR einen einzelnen Instance-Typzur Bereitstellung für die Master-Instance-Flotte aus.

Verwenden der Konsole zum Konfigurieren von Instance-FlottenUm einen Cluster mit Instance-Flotten zu erstellen, verwenden Sie die Konfiguration Advanced options(Erweiterte Optionen) in der Amazon EMR-Konsole.

Ab EMR-Version 5.12.1 ist die bevorzugte Methode zum Erstellen einer Cluster-Instance-Flottedie Anwendung von Zuweisungsstrategien. Diese neue Option wird für eine schnellere Cluster-Bereitstellung, eine genauere Spot-Instance-Zuweisung und weniger Spot-Instance-Unterbrechungenim Vergleich zu einer Instance-Flotte ohne die neue Zuweisungsstrategieoption empfohlen. DasErstellen eines Clusters mit der neuen Zuweisungsstrategieoption erfordert mehrere Berechtigungen,die automatisch die Standard-EMR-Servicerolle und die EMR-verwaltete Richtlinie (EMR_DefaultRoleund AmazonElasticMapReduceRole) enthalten. Wenn Sie eine benutzerdefinierte Servicerolle oder eineverwaltete Richtlinie für Ihren Cluster verwenden, müssen Sie die folgenden neuen Berechtigungen für dieZuweisungsstrategie hinzufügen, bevor Sie den Cluster erstellen. Siehe Service Role for Amazon EMR(EMR Role) (p. 228).

"ec2:DeleteLaunchTemplate", "ec2:CreateLaunchTemplate","ec2:DescribeLaunchTemplates", "ec2:CreateFleet"

So erstellen Sie einen Cluster mit Instance-Flotten mithilfe der Konsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/..4. Wählen Sie Create cluster aus.5. Wählen Sie oben im Konsolenfenster Go to advanced options (Zu erweiterten Optionen wechseln) aus,

geben Sie die Optionen für Software Configuration (Softwarekonfiguration) ein und wählen Sie dannNext (Weiter) aus.

6. Wählen Sie unter Cluster Composition (Clusterzusammensetzung) die Option Instance fleets(Instance-Flotten) aus.

7. Geben Sie einen Wert in Network (Netzwerk) ein. Wenn Sie in Network (Netzwerk) VPC auswählen,wählen Sie ein einzelnes EC2 Subnet (EC2-Subnetz) aus oder drücken STRG und klicken, ummehrere EC2-Subnetze auszuwählen. Die ausgewählten Subnetze müssen denselben Typ haben(öffentlich oder privat). Wenn Sie nur ein Subnetz auswählen, wird Ihr Cluster in diesem Subnetzgestartet. Wenn Sie eine Gruppe auswählen, wird das am besten passende Subnetz aus der Gruppeausgewählt, wenn der Cluster startet.

159

Page 167: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

Note

Je nach Konto und Region können Sie in Network (Netzwerk) die Option Launch into EC2-Classic (In EC2-Classic starten) auswählen. Wenn Sie diese Option auswählen, geben Sieeine oder mehrere EC2 Availability Zones (EC2 Availability Zones) anstelle von EC2 Subnets(EC2-Subnetzen) an. Weitere Informationen finden Sie unter Amazon EC2 und Amazon VPCim Amazon EC2-Benutzerhandbuch für Linux-Instances.

8. Aktivieren Sie unter Allocation Strategy (Zuordnungsstrategie) das Kontrollkästchen, umZuweisungsstrategien anzuwenden.

Wenn Sie die neue Zuweisungsstrategieoption nicht verwenden möchten, lassen Sie dasKontrollkästchen deaktiviert.

9. Wenn Sie für jeden Node type (Knotentyp) den Standardnamen einer Instance-Flotte ändern möchten,klicken Sie auf das Stiftsymbol und geben Sie dann einen Anzeigenamen ein. Wenn Sie die Instance-Flotte Task (Aufgabe) entfernen möchten, klicken Sie auf das X-Symbol auf der rechten Seite derAufgabenzeile.

10. Klicken Sie auf Add/remove instance types to fleet (Instance-Typen zur Flotte hinzufügen/entfernen)und wählen Sie bis zu fünf Instance-Typen aus der Liste für Master- und Core-Instance-Flotten aus.Fügen Sie bis zu fünfzehn Instance-Typen für Aufgaben-Instance-Flotten hinzu. Amazon EMR kanneine beliebige Kombination dieser Instance-Typen bereitstellen, wenn der Cluster gestartet wird.

11. Legen Sie für jeden Core- und Aufgaben-Instance-Typ fest, wie die gewichtete Kapazität (Eachinstance counts as X units (Jede Instance zählt als X-Einheiten)) für diese Instance definiert werdensoll. Die Anzahl von YARN vCores für jeden Flotten-Instance-Typ wird als Standardeinheiten fürgewichtete Kapazität verwendet. Sie können den Wert jedoch in beliebige Einheiten ändern, die fürIhre Anwendungen sinnvoll sind.

12. Definieren Sie unter Target capacity (Zielkapazität) die Gesamtzahl der On-Demand- und Spot-Instances, die Sie pro Flotte wünschen. EMR stellt sicher, dass Instances in der Flotte dieangeforderten Einheiten für On-Demand- und Spot-Zielkapazität erfüllen. Wenn für eine Flottekeine On-Demand- oder Spot-Einheiten angegeben werden, wird für diese Flotte keine Kapazitätbereitgestellt.

13. Wenn eine Flotte mit einer Zielkapazität für Spot konfiguriert ist, können Sie Ihren maximalen Spot-Preis als % der On-Demand-Preise oder einen Betrag in USD eingeben.

14. Um dem Instance-Typ bei der Bereitstellung EBS-Volumes anzufügen, klicken Sie auf das Stiftsymbolneben EBS Storage (EBS-Speicher) und geben dann die EBS-Konfigurationsoptionen ein.

15. Wenn Sie eine sofortige Anzahl für Spot festgelegt haben, wählen Sie Advanced Spot options(Erweiterte Spot-Optionen) gemäß den folgenden Richtlinien aus:

• Defined duration (Definierte Dauer) – Wenn die Option Not set (Nicht festgelegt) (Standard) aktiviertist, werden Spot-Instances beendet, sobald der Spot-Preis den maximalen Spot-Preis überschreitetoder wenn der Cluster beendet wird. Wenn Sie einen Wert festlegen, werden die Spot-Instances erstbeendet, wenn die Dauer abgelaufen ist.

Important

Wenn Sie im Feld Defined duration (Definierte Dauer) eine definierte Dauer festlegen,gelten während dieses Zeitraums spezielle Preise. Weitere Informationen zu Preisen findenSie unter Amazon EC2-Preise für Spot-Instances.

• Provisioning timeout (Bereitstellungs-Timeout) – Mit diesen Einstellungen können Sie die Aktionensteuern, die Amazon EMR ausführt, wenn keine Spot-Instances aus den von Ihnen angegebenenFleet instance types (Flotten-Instance-Typen) bereitgestellt werden können. Geben Sie einenTimeout-Zeitraum in Minuten ein und wählen Sie dann die Aktion Terminate the cluster (Den Clusterbeenden) oder Switch to provisioning On-Demand-Instances (Zur Bereitstellung von On-Demand-Instances wechseln) aus. Wenn Sie zu On-Demand-Instances wechseln, wird die zugewieseneKapazität von On-Demand-Instances auf die Zielkapazität für Spot-Instances angerechnet undAmazon EMR stellt On-Demand-Instances bereit, bis die Zielkapazität für Spot-Instances erfüllt ist.

160

Page 168: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

16. Wählen Sie Next (Weiter), ändern Sie andere Cluster-Einstellungen und klicken Sie dann auf Next(Weiter).

17. Wenn Sie die neue Zuweisungsstrategieoption anwenden möchten, wählen Sie in den Einstellungenunter Security Options (Sicherheitsoptionen) eine EMR role (EMR-Rolle) und ein EC2 instance profile(EC2-Instance-Profil) aus, die die erforderlichen Berechtigungen für die Zuweisungsstrategieoptionenthalten. Andernfalls schlägt die Cluster-Erstellung fehl.

18. Klicken Sie auf Create Cluster.

Verwenden der CLI zum Konfigurieren von Instance-Flotten

• Zum Erstellen und Starten eines Clusters mit Instance-Flotten verwenden Sie den Befehl create-cluster zusammen mit --instance-fleet-Parametern.

• Um mehr Konfigurationsdetails der Instance-Flotten in einem Cluster zu erhalten, verwenden Sie denBefehl list-instance-fleets.

• Wenn Sie die Zielkapazität für eine Instance-Flotte ändern möchten, verwenden Sie den Befehl modify-instance-fleet.

• Zum Hinzufügen einer Aufgaben-Instance-Flotte zu einem Cluster, dem noch keine Flotte zugewiesenwurde, verwenden Sie den Befehl add-instance-fleet.

• Um die Zuweisungsstrategie-Option beim Erstellen einer Instance-Flotte zu verwenden, aktualisieren Siedie Service-Rolle, um das nachstehende Beispielrichtliniendokument aufzunehmen.

Example Richtliniendokument für die Servicerolle

Dies sind die zusätzlichen Servicerollenberechtigungen, die erforderlich sind, um einen Cluster zu erstellen,der die Instance-Flottenzuweisungsstrategie-Option verwendet.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DeleteLaunchTemplate", "ec2:CreateLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:CreateFleet" ], "Resource": "*" }

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie können entwederentfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichen unter Windowsdurch ein Caret-Zeichen (^).

Erstellen eines Clusters mit der Instance-Flotten-Konfiguration

Die folgenden Beispiele zeigen create-cluster-Befehle mit einer Vielzahl von Optionen, die Siekombinieren können.

Note

Wenn Sie zuvor nicht die standardmäßige EMR-Servicerolle und das EC2 Instance-Profil erstellthaben, verwenden Sie aws emr create-default-roles, um sie zu erstellen, bevor Sie denBefehl create-cluster eingeben.

161

Page 169: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

Example Beispiel: On-Demand-Master, On-Demand-Core mit einzelnem Instance-Typ, 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}']

Example Beispiel: Spot-Master, Spot-Core mit einzelnem Instance-Typ, 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}']

Example Beispiel: On-Demand-Master, gemischter Core mit einzelnem Instance-Typ, einzelnesEC2-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}']

Example Beispiel: On-Demand-Master, Spot-Core mit mehreren gewichteten Instance-Typen,definierter Dauer und Timeout für Spot, Bereich von EC2-Subnetzen

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='{BlockDurationMinutes=180,TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}

Example Beispiel: On-Demand-Master, gemischter Core und Aufgabe mit mehreren gewichtetenInstance-Typen, definierter Dauer und Timeout für Core-Spot-Instances, Bereich von EC2-Subnetzen

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'] \

162

Page 170: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

--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='{BlockDurationMinutes=180,TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} \InstanceFleetType=TASK,TargetOnDemandCapacity=3,TargetSpotCapacity=3,\InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']

Example Beispiel: Spot-Master, kein Core oder keine Aufgabe, EBS-Konfiguration, 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,\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}]}}']

Example Verwenden einer JSON-Konfigurationsdatei

Sie können Instance-Flotten-Parameter in einer JSON-Datei konfigurieren und dann auf die JSON-Dateials einzigen Parameter für Instance-Flotten verweisen. Mit dem folgenden Befehl wird z. B. auf die JSON-Konfigurationsdatei my-fleet-config.json verwiesen:

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

Die my-fleet-config.json-Datei gibt die Master-, Core- und Aufgaben-Instance-Flotten an, wie im folgendenBeispiel dargestellt: Die Core-Instance-Flotte verwendet einen maximalen Spot-Preis (BidPrice)als Prozentsatz des On-Demand-Preises, während die Aufgaben- und Master-Instance-Flotten einenmaximalen Spot-Preis (BidPriceAsPercentageofOnDemandPrice) als Zeichenfolge in USD verwenden.

[ { "Name": "Masterfleet", "InstanceFleetType": "MASTER", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "SWITCH_TO_ON_DEMAND" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] },

163

Page 171: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

{ "Name": "Corefleet", "InstanceFleetType": "CORE", "TargetSpotCapacity": 1, "TargetOnDemandCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price" }, "SpotSpecification": { "AllocationStrategy": "capacity-optimized", "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }]

Abrufen der Konfigurationsdetails der Instance-Flotten in einem Cluster

Verwenden Sie den Befehl list-instance-fleets, um Konfigurationsdetails der Instance-Flotten ineinem Cluster abzurufen. Der Befehl erfordert die Eingabe einer Cluster-ID. Das folgende Beispiel zeigtden Befehl und die Ausgabe für einen Cluster mit einer Master-Aufgaben-Instance-Gruppe und einer Core-Aufgaben-Instance-Gruppe. Die vollständige Antwortsyntax finden Sie unter ListInstanceFleets im .AmazonEMR API Reference.

list-instance-fleets --cluster-id 'j-12ABCDEFGHI34JK'

{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 },

164

Page 172: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

"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" } ]}

Ändern von Zielkapazitäten für eine Instance-Flotte

Verwenden Sie den Befehl modify-instance-fleet, um neue Zielkapazitäten für eine Instance-Flotteanzugeben. Sie müssen die Cluster-ID und die Instance-Flotten-ID angeben. Verwenden Sie den Befehllist-instance-fleets, um die Instance-Flotte IDs abzurufen.

aws emr modify-instance-fleet --cluster-id 'j-12ABCDEFGHI34JK' /--instance-fleet InstanceFleetId='if-2ABC4DEFGHIJ4',TargetOnDemandCapacity=1,TargetSpotCapacity=1

165

Page 173: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

Hinzufügen einer Aufgaben-Instance-Flotte zu einem Cluster

Wenn ein Cluster nur über Master- 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 diesenBefehl verwenden, um Aufgaben-Instance-Flotten hinzuzufügen.

aws emr add-instance-fleet --cluster-id 'j-12ABCDEFGHI34JK' --instance-fleet InstanceFleetType=TASK,TargetSpotCapacity=1,/LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},/InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']

Konfigurieren einheitlicher Instance-GruppenBei der Konfiguration der Instance-Gruppen besteht jeder Knotentyp (Master, Core oder Aufgabe) ausdemselben Instance-Typ und derselben Kaufoption für Instances: On-Demand oder Spot. Sie geben dieseEinstellungen 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 derselbenKaufoption hinzufügen. Außerdem können Sie Instances entfernen.

Zum Hinzufügen verschiedener Instance-Typen nach dem Erstellen eines Clusters können Sie zusätzlicheAufgaben-Instance-Gruppen hinzufügen. Sie können verschiedene Instance-Typen und Kaufoptionenfür jede Instance-Gruppe auswählen. Weitere Informationen finden Sie im Skalieren von Cluster-Ressourcen (p. 403).

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 Entfernenvon Instances manuell oder automatisch mit Auto Scaling finden Sie unter Manage Clusters (p. 335).

Verwenden der Konsole zum Konfigurieren einheitlicher Instance-Gruppen

Das folgende Verfahren beschreibt die Einstellungen in Advanced options (Erweiterte Optionen), die beimErstellen eines Clusters zur Verfügung stehen. Mit Quick options (Schnelloptionen) können Sie ebenfallseien Cluster mit Instance-Gruppen-Konfiguration erstellen. Weitere Informationen zur Verwendung vonQuick options (Schnelloptionen)finden Sie im Tutorial „Erste Schritte“.

So erstellen Sie einen Cluster mit einheitlichen Instance-Gruppen mithilfe der Konsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Wählen Sie Go to advanced options (Zu erweiterten Optionen navigieren) aus. Wählen Sie in Software

Configuration (Softwarekonfiguration) Optionen und dann Next (Weiter) aus.4. Lassen Sie im Bildschirm Hardware Configuration (Hardwarekonfiguration) die Option Uniform instance

groups (Einheitliche Instance-Gruppen) ausgewählt.5. Wählen Sie in Network (Netzwerk) eine Option und dann das EC2 Subnet (EC2-Subnetz) für Ihren

Cluster aus. Das von Ihnen ausgewählte Subnetz ist einer Verfügbarkeitsgruppe zugeordnet,die unter jedem Subnetz aufgeführt wird. Weitere Informationen finden Sie im Konfigurieren desNetzwerks (p. 144).

Note

Je nach Konto und Region können Sie in Network (Netzwerk) die Option Launch into EC2-Classic (In EC2-Classic starten) auswählen. Wenn Sie diese Option auswählen, geben Sieeine EC2 Availability Zone (EC2 Availability Zone) anstelle eines Werts für EC2 Subnet (EC2-Subnetz) an. Weitere Informationen finden Sie unter Amazon EC2 und Amazon VPC imAmazon EC2-Benutzerhandbuch für Linux-Instances.

166

Page 174: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKonfigurieren von Instance-Flotten oder Instance-Gruppen

6. Führen Sie in jeder Zeile für den Node type (Knotentyp) Folgendes aus:

• Wenn Sie den Standardnamen der Instance-Gruppe ändern möchten, klicken Sie in Node type(Knotentyp) auf das Stiftsymbol und geben einen Anzeigenamen ein. Wenn Sie die Instance-GruppeTask (Aufgabe) entfernen möchten, klicken Sie auf das X-Symbol. Wählen Sie Add task instancegroup (Aufgaben-Instance-Gruppe hinzufügen) aus, um zusätzliche Instance-Gruppen des TypsTask (Aufgabe) hinzuzufügen.

• Klicken Sie unter Instance type (Instance-Typ) auf das Bleistiftsymbol. Wählen Sie anschließend denInstance-Typ für den jeweiligen Knotentyp aus.

Important

Wenn Sie über die AWS Management Console einen Instance-Typ auswählen, steht dieAnzahl von vCPU, die für jeden Instance type (Instance-Typ) angezeigt wird, für die Anzahlder YARN-vcores für diesen Instance-Typ und nicht für die Anzahl der EC2-vCPUs fürdiesen Instance-Typ. Weitere Informationen zur Anzahl der vCPUs für jeden Instance-Typfinden Sie unter Amazon EC2-Instance-Typen.

• Klicken Sie unter Instance type (Instance-Typ) auf das Bleistiftsymbol für Configurations(Konfigurationen)und bearbeiten Sie dann die Konfigurationen für Anwendungen für die einzelnenInstance-Gruppen.

• Geben Sie in Instance count (Instance-Zahl) die Anzahl der Instances ein, die für die einzelnenKnotentypen jeweils verwendet werden sollen.

• Wählen Sie in Purchasing option (Kaufoption) die Option On-Demand (On-Demand) oder Spot(Spot) aus. Wenn Sie Spot (Spot) auswählen, wählen Sie eine Option für den Höchstpreis für Spot-Instances aus. Standardmäßig ist die Option Use on-demand as max price (On-Demand-Preis alsHöchstpreis verwenden) ausgewählt. Sie können Set max $/hr (Max. USD/Std. festlegen) und dannIhren Höchstpreis eingeben. Die Availability Zone für das von Ihnen ausgewählte EC2 Subnet (EC2-Subnetz) liegt unter dem Maximum Spot price (Spot-Höchstpreis).

Tip

Zeigen Sie mit der Maus auf die QuickInfo für Spot (Spot), um den aktuellen Spot-Preis fürAvailability Zones in der aktuellen Region anzuzeigen. Der niedrigste Spot-Preis ist grünunterlegt. Möglicherweise sollten Sie auf der Basis dieser Informationen Ihre Auswahl inEC2 Subnet (EC2-Subnetz) ändern.

• Klicken Sie in Auto Scaling for Core and Task node types (Auto Scaling für Core- undAufgabenknotentypen) auf das Bleistiftsymbol und wählen Sie dann die Optionen für Auto Scalingaus. Weitere Informationen finden Sie im Verwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-Gruppen (p. 421).

7. Wählen Sie Add task instance group (Aufgaben-Instance-Gruppe hinzufügen) wie gewünscht aus undkonfigurieren Sie die Einstellungen wie im vorherigen Schritt beschrieben.

8. Wählen Sie Next (Weiter) aus, ändern Sie weitere Cluster-Einstellungen und starten Sie den Cluster.

Verwenden der AWS CLI zum Erstellen eines Clusters mit einheitlichen Instance-Gruppen

Um die Konfiguration von Instance-Gruppen für einen Cluster über die AWS CLI anzugeben, verwendenSie den Befehl create-cluster mit dem Parameter --instance-groups. Amazon EMR setzt die On-Demand-Kaufoption voraus, es sei denn, Sie geben das Argument BidPrice für eine Instance-Gruppean. Um Beispiele für create-cluster-Befehle anzuzeigen, die einheitliche Instance-Gruppen mit On-Demand-Instances und verschiedenen Cluster-Optionen starten, geben Sie aws emr create-clusterhelp in der Befehlszeile ein oder navigieren zu create-cluster in der AWS CLI Command Reference.

Sie können die AWS CLI zum Erstellen einheitlicher Instance-Gruppen in einem Cluster verwenden, derSpot-Instances nutzt. Der angebotene Spot-Preis hängt der von Availability Zone ab. Wenn Sie die CLIoder API verwenden, können Sie die Availability Zone entweder mit dem Argument AvailabilityZone

167

Page 175: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideLeitlinien und Bewährte Methoden

(wenn Sie ein EC2-Classic-Netzwerk verwenden) oder mit dem Argument SubnetID des Parameters--ec2-attributes angeben. Die ausgewählte Availability Zone oder das Subnetz gilt für den Clusterund wird daher für alle Instance-Gruppen verwendet. Wenn Sie keine Availability Zone oder kein Subnetzexplizit angeben, wählt Amazon EMR beim Starten des Clusters die Availability Zone mit dem niedrigstenSpot-Preis aus.

Das folgende Beispiel zeigt einen Befehl create-cluster, mit dem Master-, Core- und zwei Aufgaben-Instance-Gruppen erstellt werden, die alle Spot-Instances verwenden. Ersetzen myKey durch den NamenIhres EC2-Schlüsselpaares.

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie können entwederentfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichen unter Windowsdurch ein Caret-Zeichen (^).

aws emr create-cluster --name "MySpotCluster" --release-label emr-5.31.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

Verwenden des Java SDK zum Erstellen einer Instance-Gruppe

Instanziieren Sie ein Objekt InstanceGroupConfig, das die Konfiguration einer Instance-Gruppe füreinen Cluster angibt. Um Spot-Instances zu verwenden, legen Sie die Eigenschaften withBidPrice undwithMarket für das Objekt InstanceGroupConfig fest. Der folgende Code zeigt, wie Master-, 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");

Richtlinien für die Cluster-Konfiguration und bewährteMethodenVerwenden Sie die Richtlinien in diesem Abschnitt zum Festlegen der Instance-Typen, Kaufoptionen undSpeicherkapazität, die für jeden Knotentyp in einem EMR-Cluster bereitgestellt wird.

168

Page 176: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideLeitlinien und Bewährte Methoden

Welchen Instance-Typ sollten Sie verwenden?Es gibt mehrere Methoden, einem Cluster EC2-Instances hinzuzufügen. Die verwendete Methode hängtdavon ab, ob Sie die Instance-Gruppenkonfiguration oder die Instance-Flotten-Konfiguration für den Clusterverwenden.

• Instance-Gruppen• Fügen Sie vorhandenen Core- und Task-Instance-Gruppen manuell Instances desselben Typs hinzu.• Fügen Sie manuell eine Task-Instance-Gruppe hinzu, die einen anderen Instance-Typ verwenden

kann.• Richten Sie Amazon EMR Auto Scaling für eine Instance-Gruppe ein, um Instances basierend auf dem

Wert für die von Ihnen angegebene Amazon CloudWatch-Metrik automatisch hinzuzufügen und zuentfernen. Weitere Informationen finden Sie im Skalieren von Cluster-Ressourcen (p. 403).

• Instance-Flotten• Fügen Sie eine einzelne Task-Instance-Flotte hinzu.• Ändern Sie die Zielkapazität für On-Demand- und Spot-Instances für vorhandene Core- und Task-

Instance-Flotten. Weitere Informationen finden Sie im Konfigurieren von Instance-Flotten (p. 156).

Eine Möglichkeit zum Planen der Instances Ihres Clusters ist die Ausführung eines Test-Clusters mit einemrepräsentativen Beispielsatz von Daten und die Überwachung der Auslastung der Knoten im Cluster.Weitere Informationen finden Sie im View and Monitor a Cluster (p. 335). Eine andere Möglichkeit bestehtin der Berechnung der Kapazität der Instances, die Sie erwägen, und im Vergleichen dieses Werts mit derGröße Ihrer Daten.

Im Allgemeinen erfordert Master-Knoten, der Aufgaben zuweist, keine EC2 Instance mit vielVerarbeitungsleistung. EC2 Instances für den Core-Knotentyp, der Aufgaben verarbeitet und Daten inHDFS speichert benötigen sowohl Verarbeitungsleistung als auch Speicherkapazität. EC2 Instancesfür den Aufgabenknotentyp, der keine Daten speichert, brauchen nur Verarbeitungsleistung. Richtlinienzu verfügbaren EC2 Instances und deren Konfiguration finden Sie unter Konfigurieren von EC2-Instances (p. 138).

Die folgenden Richtlinien gelten für die meisten Amazon EMR-Cluster.

• Der Master-Knoten stellt keine großen Datenverarbeitungsanforderungen. Erwägen Sie für die meistenCluster mit 50 oder weniger Knoten die Verwendung einer m5.xlarge-Instance. Für Cluster mit mehrals 50 Knoten sollten Sie eine m4.xlarge verwenden, da vCores in m4.xlarge doppelt so groß sind wiem5.xlarge.

• Die benötigte Rechenleistung der Core- und Aufgabenknoten hängt von der Art der Verarbeitung ab, dieIhre Anwendung durchführt. Viele Aufträge können auf m5.xlarge-Instance-Typen ausgeführt werden,die eine ausgewogene Leistung in Bezug auf CPU, Festplattenspeicher und E/A-Durchsatz bieten. WennIhre Anwendung externe Abhängigkeiten aufweist, die zu Verzögerungen führen (z. B. Web-Crawlingzum Sammeln von Daten), können Sie den Cluster auf t2.medium-Instances ausführen, um die Kostenzu senken, während die Instances darauf warten, dass Abhängigkeiten abgeschlossen werden. Umdie Leistung zu optimieren, sollten Sie die Ausführung des Clusters mithilfe von m4.xlarge-Instancesfür die Core- und Aufgabenknoten erwägen. Wenn einzelne Phasen Ihres Clusters unterschiedlicheKapazitätserfordernisse haben, können Sie mit einer geringen Anzahl von Core-Knoten beginnenund die Anzahl von Aufgabenknoten den wechselnden Anforderungen der Auftragsverlaufskapazitätentsprechend erhöhen oder verringern.

• Die meisten Amazon EMR-Cluster können auf EC2-Instance-Standardtypen wie m5.xlarge undm4.xlarge ausgeführt werden. Rechenintensive Cluster profitieren von der Ausführung auf High-CPU-Instances, die proportional über mehr CPU-Leistung verfügen als RAM. Datenbank- undArbeitsspeicher-Caching-Anwendungen können von der Ausführung auf High-Memory-Instancesprofitieren. Netzwerkintensive und CPU-intensive Anwendungen wie Analyse-, NLP- und MachineLearning-Tools, können von der Ausführung auf Cluster Compute-Instances profitieren, da dieseproportional hohe CPU-Ressourcen und eine erhöhten Netzwerkleistung bieten.

169

Page 177: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideLeitlinien und Bewährte Methoden

• Die Menge der Daten, die Sie verarbeiten können, hängt von der Kapazität Ihrer Core-Knoten und derDatenmenge als Eingabe, während der Verarbeitung, und als Ausgabe ab. Die Eingabe-, intermediärenund Ausgabedatensätze befinden sich während der Verarbeitung alle auf dem Cluster.

• Standardmäßig beträgt die Gesamtanzahl von EC2 Instances, die Sie auf einem einzigen AWS-Kontoausführen können, 20. Das bedeutet, dass die Gesamtanzahl der möglichen Knoten in einem Cluster 20ist. Weitere Informationen zum Anfordern einer Limiterhöhung für Ihr Konto finden Sie unter AWS Limits(AWS-Limits).

Wann sollten Sie Spot-Instances verwenden?Wenn Sie einen Cluster in Amazon EMR starten, können Sie auswählen, ob Sie Master-, Core- oderAufgaben-Instances auf Spot-Instances starten möchten. Da jeder Typ von Instance-Gruppe eineandere Rolle im Cluster hat, hat das Starten der einzelnen Knotentypen auf Spot-Instances bestimmteAuswirkungen. Sie können eine Instance-Kaufoption nicht ändern, während der Cluster ausgeführt wird.Um On-Demand-Instances in Spot-Instances oder umgekehrt zu ändern, müssen Sie im Fall von Master-und Core-Knoten den Cluster beenden und einen neuen Cluster starten. Im Fall von Aufgabenknotenkönnen Sie eine neue Aufgaben-Instance-Gruppe oder -Flotte starten und die alte entfernen.

Themen• Amazon EMR-Einstellungen, die Aufgabenfehler aufgrund des Beendens von Aufgabenknoten-Spot-

Instances verhindern (p. 170)• Master-Knoten auf einer Spot-Instance (p. 171)• Core-Knoten auf Spot-Instances (p. 171)• Aufgabenknoten auf Spot-Instances (p. 172)• Instance-Konfigurationen für Anwendungsszenarien (p. 172)

Amazon EMR-Einstellungen, die Aufgabenfehler aufgrund des Beendens vonAufgabenknoten-Spot-Instances verhindern

Da Spot-Instances häufig zur Ausführung von Aufgabenknoten verwendet werden, verfügt Amazon EMRüber eine standardmäßige Funktionalität für die Planung von YARN-Aufträgen. So wird sichergestellt, dassAufträge, die gerade ausgeführt werden, nicht fehlschlagen, wenn die auf Spot-Instances ausgeführtenAufgabenknoten beendet werden. Zu diesem Zweck lässt Amazon EMR die Ausführung von Anwendungs-Masterprozessen nur auf Core-Knoten zu. Der Anwendungs-Masterprozess steuert die Ausführung vonAufträgen und muss während der Lebenszeit des Auftrags verfügbar bleiben.

Um dies sicherzustellen, verwendet Amazon EMR ab der Release-Version 5.19.0 die integrierteFunktion für YARN-Knotenkennzeichnungen. (Frühere Versionen verwendeten einen Code-Patch.) DieEigenschaften in den yarn-site- und capacity-scheduler-Konfigurationsklassifikationen werdenstandardmäßig so konfiguriert, dass der YARN capacity-scheduler und der fair-scheduler die Knoten-Kennzeichnungen nutzen. Amazon EMR kennzeichnet Core-Knoten automatisch mit der KennzeichnungCORE und legt die Eigenschaften so fest, dass Anwendungs-Master nur auf Knoten mit der CORE-Kennzeichnung geplant werden. Die manuelle Änderung zugehöriger Eigenschaften in den yarn-site- undcapacity-scheduler-Konfigurationsklassifikationen oder direkt in den verknüpften XML-Dateien könnte dieseFunktion zerstören oder verändern.

Amazon EMR konfiguriert die folgenden Eigenschaften und Werte standardmäßig. Seien Sie vorsichtig,wenn Sie diese Eigenschaften konfigurieren.

• yarn-site (yarn-site.xml) auf allen Knoten• yarn.node-labels.enabled: true

• yarn.node-labels.am.default-node-label-expression: 'CORE'

• yarn.node-labels.fs-store.root-dir: '/apps/yarn/nodelabels'

170

Page 178: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideLeitlinien und Bewährte Methoden

• yarn.node-labels.configuration-type: 'distributed'

• yarn-site (yarn-site.xml) auf Master- und Core-Knoten• yarn.nodemanager.node-labels.provider: 'config'

• yarn.nodemanager.node-labels.provider.configured-node-partition: 'CORE'

• capacity-scheduler (capacity-scheduler.xml) auf allen Knoten• yarn.scheduler.capacity.root.accessible-node-labels: '*'

• yarn.scheduler.capacity.root.accessible-node-labels.CORE.capacity: 100

• yarn.scheduler.capacity.root.default.accessible-node-labels: '*'

• yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity:100

Note

Beginnend mit der Amazon EMR 6.x-Release-Reihe ist die Funktion YARN-Knotenbeschriftungenstandardmäßig deaktiviert. Die Anwendungs-Master-Prozesse können standardmäßig sowohlauf Kern- als auch auf Aufgabenknoten ausgeführt werden. Sie können die Funktion für YARN-Knotenbeschriftungen aktivieren, indem Sie folgende Eigenschaften konfigurieren:

• yarn.node-labels.enabled: true

• yarn.node-labels.am.default-node-label-expression: 'CORE'

Master-Knoten auf einer Spot-InstanceDer Master-Knoten kontrolliert und steuert den Cluster. Wenn er beendet wird, wird der Cluster beendet.Daher sollten Sie den Master-Knoten nur als Spot-Instance starten, wenn Sie einen Cluster ausführen,dessen plötzliche Beendigung akzeptabel ist. Dies kann der Fall sein, wenn Sie eine neue Anwendungtesten, wenn Sie einen Cluster vorliegen haben, der Daten in regelmäßigen Abständen in einem externenSpeicher wie Amazon S3 ablegt oder wenn Sie einen Cluster ausführen, bei dem die Kosten einewichtigere Rollen spielen als der Abschluss des Clusters.

Wenn Sie die Master-Instance-Gruppe als Spot-Instance starten, wird der Cluster erst gestartet, wenn dieSpot-Instance-Anforderung erfüllt ist. Diese Tatsache muss bei der Auswahl des maximalen Spot-Preisesberücksichtigt werden.

Sie können einen Spot-Instance-Master-Knoten nur beim Starten des Clusters hinzufügen. Master-Knotenkönnen einem aktuell ausgeführten Cluster weder hinzugefügt noch daraus entfernt werden.

Normalerweise führen Sie den Master-Knoten nur als Spot-Instance aus, wenn Sie den gesamten Cluster(alle Instance-Gruppen) als Spot Instances ausführen.

Core-Knoten auf Spot-InstancesCore-Knoten verarbeiten Daten und speichern Informationen mit HDFS. Das Beenden einer Core-Instancebirgt das Risiko eines Datenverlusts. Aus diesem Grund sollten Sie Core-Knoten auf Spot-Instances nurdann ausführen, wenn ein teilweiser Verlust von HDFS-Daten toleriert werden kann.

Beim Starten des Core-Instance-Gruppe als Spot-Instances wartet Amazon EMR vor dem Starten derInstance-Gruppe, bis alle angeforderten Core-Instances bereitgestellt werden können. Mit anderenWorten: Wenn Sie sechs Amazon EC2-Instances anfordern und nur fünf Instances zu oder unter IhremSpot-Höchstpreis verfügbar sind, wird die Instance-Gruppe nicht gestartet. Amazon EMR wartet, bis allesechs Amazon EC2-Instances verfügbar sind oder bis Sie den Cluster beenden. Sie können die Anzahlder Spot-Instances in einer Core-Instance-Gruppe ändern, um einem ausgeführten Cluster Kapazitätenhinzuzufügen. Weitere Informationen zum Arbeiten mit Instance-Gruppen und zur Art, wie Spot-Instancesmit Instance-Flotten funktionieren, finden Sie unter the section called “Konfigurieren von Instance-Flottenoder Instance-Gruppen” (p. 155).

171

Page 179: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideLeitlinien und Bewährte Methoden

Aufgabenknoten auf Spot-InstancesDie Aufgabenknoten verarbeiten Daten, bewahren jedoch keine persistente Daten in HDFS auf. Wennsie beendet werden da der Spot-Preis über Ihren maximalen Spot-Preis geklettert ist, gehen keine Datenverloren und die Auswirkung auf Ihrem Cluster ist minimal.

Wenn Sie einen oder mehrere Aufgaben-Instance-Gruppen als Spot-Instances starten, stellt Amazon EMRso viele Aufgabenknoten wie zu Ihrem maximalen Spot-Preis möglich bereit. Das bedeutet, dass wenn Sieeine Aufgaben-Instance-Gruppe mit sechs Knoten anfordern und nur fünf Spot-Instances zu oder unterIhrem maximalen Spot-Preis verfügbar sind, Amazon EMR die Instance-Gruppe mit fünf Knoten startet undden sechsten nach Möglichkeit später hinzufügt.

Das Starten von Aufgaben-Instance-Gruppen als Spot-Instances stellt eine strategische Möglichkeit dar,die Kapazität Ihres Clusters zu erweitern und gleichzeitig die Kosten zu minimieren. Wenn Sie Ihre Master-und Kern-Instance-Gruppen als On-Demand-Instances starten, ist ihre Kapazität für die Ausführung desClusters garantiert. Sie können Ihren Instance-Gruppen nach Bedarf Task-Instances hinzufügen, um einSpitzenaufkommen an Datenverkehr zu verarbeiten oder die Datenverarbeitung zu beschleunigen.

Sie können Aufgabenknoten über die Konsole, die AWS CLI oder die API hinzufügen oder entfernen. Siekönnen auch zusätzliche Aufgabengruppen hinzufügen, können aber diese nach dem Erstellen nicht mehrentfernen.

Instance-Konfigurationen für AnwendungsszenarienDie folgende Tabelle stellt eine kurze Referenz für Knotentyp-Kaufoptionen und -Konfigurationen dar, diefür bestimmte Anwendungsszenarien in der Regel geeignet sind. Klicken Sie auf den Link, um weitereInformationen zu den einzelnen Szenariotypen anzuzeigen.

Anwendungsszenario Kaufoption fürMaster-Knoten

Kaufoption für Core-Knoten

Kaufoption fürAufgabenknoten

Langläufer-Cluster und DataWarehouses (p. 172)

On-Demand On-Demandoder Instance-Flottenkombination

Spot- oder Instance-Flottenkombination

KostengesteuerteWorkloads (p. 172)

Spot-Instances Spot-Instances Spot-Instances

DatenkritischeWorkloads (p. 173)

On-Demand On-Demand Spot- oder Instance-Flottenkombination

Testen vonAnwendungen (p. 173)

Spot-Instances Spot-Instances Spot-Instances

Es gibt verschiedene Szenarien, in denen Spot-Instances für die Ausführung eines Amazon EMR-Clustersnützlich sind.

Langläufer-Cluster und Data Warehouses

Wenn Sie einen permanenten Amazon EMR-Cluster, z. B. ein Data Warehouse, ausführen, dervorhersehbare Schwankungen der Rechenkapazität bietet, können Sie die Nachfrage in Spitzenzeiten mitSpot-Instances kostengünstiger bewältigen. Sie können Ihre Master- und Core-Instance-Gruppen als On-Demand starten, um die normale Kapazität zu bewältigen, und die Aufgaben-Instance-Gruppe als Spot-Instances für Ihre maximale Workload-Anforderungen starten.

Kostengesteuerte Workloads

Wenn Sie kurzlebige Cluster ausführen, für die niedrige Kosten wichtiger sind als die Zeit bis zumAbschluss des Vorgangs, der Verlust von Teilarbeiten akzeptabel ist, können Sie den gesamten Cluster

172

Page 180: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideLeitlinien und Bewährte Methoden

(Master-, Core- und Aufgaben-Instance-Gruppen) als Spot-Instances ausführen, um von den größtenKosteneinsparungen zu profitieren.

Datenkritische Workloads

Wenn Sie einen Cluster ausführen, für den niedrige Kosten wichtiger sind als die Zeit bis zum Abschlussdes Vorgangs, der Verlust von Teilarbeiten jedoch nicht akzeptabel ist, können Sie die Master- undCore-Instance-Gruppen als On-Demand-Typ starten und durch eine oder mehrere Aufgaben-Instance-Gruppen der Spot-Instances ergänzen. Wenn Sie die Master- und Core-Instance-Gruppen als On-Demand-Typ ausführen, wird sichergestellt, dass Ihre Daten in HDFS persistent sind und dass der Cluster voreiner Beendigung aufgrund der Fluktuation des Spot-Markts geschützt ist. Gleichzeitig profitieren Sievon Kosteneinsparungen, die aus der Ausführung der Aufgaben-Instance-Gruppen als Spot-Instancesresultieren.

Testen von Anwendungen

Wenn Sie eine neue Anwendung testen, um sie für den Start in einer Produktionsumgebung vorzubereiten,können Sie den gesamten Cluster (Master-, Core- und Aufgaben-Instance-Gruppen) als Spot-Instancesausführen, um die Kosten der Tests zu senken.

Berechnen der erforderlichen HDFS-Kapazität eines ClustersDie Größe des verfügbaren HDFS-Speicher für Ihren Cluster hängt von den folgenden Faktoren ab:

• Die Anzahl der EC2-Instances, die für Core-Knoten verwendet werden.• Die Kapazität des EC2 Instance-Speichers für den verwendeten Instance-Typ. Weitere Informationen

zu Instance-Speicher-Volumes finden Sie unter Amazon EC2-Instance-Speicher im Amazon EC2-Benutzerhandbuch für Linux-Instances.

• Anzahl und Größe von EBS-Volumes, die Core-Knoten angefügt sind• Ein Replikationsfaktor, der bestimmt, wie jeder Datenblock in HDFS für RAID-Redundanz gespeichert

wird. Standardmäßig beträgt der Replikationsfaktor 3 für einen Cluster mit 10 oder mehr Core-Knoten, 2für einen Cluster mit 4 bis 9 Core-Knoten und 1 für einen Cluster mit maximal 3 Knoten.

Zum Berechnen der Kapazität eines HDFS-Clusters addieren Sie für jeden Core-Knoten die Instance-Speicher-Volume-Kapazität zu der EBS-Speicherkapazität (falls verwendet). Multiplizieren Sie dasErgebnis mit der Anzahl der Core-Knoten und dividieren Sie dann die Summe durch den Replikationsfaktorbasierend auf der Anzahl der Core-Knoten. Beispiel: Ein Cluster mit 10 Core-Knoten des Typs i2.xlarge, die800 GB Instance-Speicher ohne angeschlossenen EBS-Volumes haben, besitzt insgesamt etwa 2.666 GBfür HDFS (10 Knoten x 800 GB ÷ 3 Replikationsfaktor).

Wenn der berechnete HDFS-Kapazitätswert kleiner ist als Ihre Daten, können Sie die HDFS-Speicherkapazität wie folgt erhöhen:

• Erstellen eines Clusters mit zusätzlichen EBS-Volumes oder Hinzufügen von Instance-Gruppen mitangefügten EBS-Volumes zu einem vorhandenen Cluster

• Hinzufügen weiterer Core-Knoten• Auswählen eines EC2 Instance-Typ mit größerer Speicherkapazität• Verwenden der Datenkomprimierung• Ändern der Hadoop-Konfigurationseinstellungen zum Verringern des Replikationsfaktors

Verwenden Sie diese Option mit Bedacht, da durch Verringern des Replikationsfaktors die Redundanz derHDFS-Daten sowie die Cluster-Funktion zur Wiederherstellung von verlorenen oder beschädigten HDFS-Blöcken beeinträchtigt wird.

173

Page 181: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Cluster Logging and Debugging

Configure Cluster Logging and DebuggingBei der Planung Ihres Clusters müssen Sie sich unter anderem für die verfügbare Debugging-Unterstützung entscheiden. Wenn Sie Ihre Datenverarbeitungsanwendung erstmals entwickeln, empfehlenwir Ihnen, die Anwendung auf einem Cluster zu testen, indem Sie eine kleine, aber repräsentativeUntermenge Ihrer Daten verarbeiten. Wenn Sie dies tun, möchten Sie wahrscheinlich die Vorteile all derDebugging-Tools in Amazon EMR nutzen, z. B. die Archivierung von Protokolldateien in Amazon S3.

Wenn Sie die Entwicklung Ihrer Anwendung abgeschlossen haben und die Datenverarbeitung in dieProduktionsumgebung wechselt, können Sie das Debuggen verringern. Auf diese Weise können Sie dieKosten für die Speicherung von Protokolldateiarchiven in Amazon S3 einsparen und die Verarbeitungslastfür den Cluster reduzieren, da dieser den Zustand nicht mehr zu Amazon S3 schreiben muss. Der Nachteilist, das Ihnen bei Problemen weniger Tools zur Verfügung stehen, um das Problem zu untersuchen.

Default Log FilesStandardmäßig schreibt jeder Cluster Protokolldateien auf dem Master-Knoten. Die Dateien werden in das/mnt/var/log/-Verzeichnis geschrieben. Sie können darauf zugreifen, indem Sie sich, wie in Verbindenmit dem Master-Knoten über SSH (p. 385) beschrieben, per SSH mit dem Master-Knoten verbinden. Dasich diese Protokolle auf dem Master-Knoten befinden, sind sie nicht mehr verfügbar, wenn der Clusterheruntergefahren wurde oder ein Fehler aufgetreten ist und der Cluster somit beendet wurde.

Sie müssen nicht alles aktivieren, um die Protokolldateien auf dem Master-Knoten schreiben zu lassen.Dies ist das Standardverhalten von Amazon EMR und Hadoop.

Ein Cluster generiert mehrere Arten von Protokolldateien. Diese umfassen unter anderem:

• Step logs — These logs are generated by the Amazon EMR service and contain information aboutthe cluster and the results of each step. The log files are stored in /mnt/var/log/hadoop/steps/directory on the master node. Each step logs its results in a separate numbered subdirectory: /mnt/var/log/hadoop/steps/s-stepId1/ for the first step, /mnt/var/log/hadoop/steps/s-stepId2/, for the second step, and so on. The 13-character step identifiers (e.g. stepId1, stepId2) areunique to a cluster.

• Hadoop and YARN component logs — The logs for components associated with both Apache YARN andMapReduce, for example, are contained in separate folders in /mnt/var/log. The log file locationsfor the Hadoop components under /mnt/var/log are as follows: hadoop-hdfs, hadoop-mapreduce,hadoop-httpfs, and hadoop-yarn. The hadoop-state-pusher directory is for the output of the Hadoop statepusher process.

• Bootstrap action logs — If your job uses bootstrap actions, the results of those actions are logged. Thelog files are stored in /mnt/var/log/bootstrap-actions/ on the master node. Each bootstrap action logs itsresults in a separate numbered subdirectory: /mnt/var/log/bootstrap-actions/1/ for the firstbootstrap action, /mnt/var/log/bootstrap-actions/2/, for the second bootstrap action, and soon.

• Instance state logs — These logs provide information about the CPU, memory state, and garbagecollector threads of the node. The log files are stored in /mnt/var/log/instance-state/ on themaster node.

Archive Log Files to Amazon S3Note

Sie können zurzeit die Protokollaggregation zu Amazon S3 nicht mit dem Dienstprogramm yarnlogs verwenden.

Sie können einen Cluster konfigurieren, um die auf dem Master-Knoten gespeicherten Protokolldateienin regelmäßigen Abständen in Amazon S3 zu archivieren Auf diese Weise wird sichergestellt, dass die

174

Page 182: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArchive Log Files to Amazon S3

Protokolldateien auch nach dem Beenden des Clusters verfügbar sind, unabhängig davon, ob dies durchnormales Herunterfahren oder aufgrund eines Fehlers erfolgt. Amazon EMR archiviert die Protokolldateienin 5-Minuten-Intervallen zu Amazon S3.

Um die Protokolldateien in Amazon S3 zu archivieren, müssen Sie diese Funktion beim Start des Clustersaktivieren. Sie können dies entweder über Konsole, die CLI oder die API erledigen. Die Protokollierung istbei über die Konsole gestarteten Clustern standardmäßig aktiviert. Für Cluster, die per CLI oder über dieAPI gestartet wurden, muss die Protokollierung in Amazon S3 manuell aktiviert werden.

To archive log files to Amazon S3 using the console1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Wählen Sie Go to advanced options (Zu erweiterten Optionen navigieren) aus.4. Im Allgemeine Optionen im Abschnitt Protokollierung und akzeptieren Sie die Standardoption: Aktiviert

Diese Option legt fest, ob Amazon EMR detaillierte Protokolldaten zu Amazon S3 schreibt. Sie kannnur festgelegt werden, wenn der Cluster erstellt wird. Weitere Informationen finden Sie im View LogFiles (p. 349).

5. Geben Sie im Feld S3 folder (S3-Ordner) einen Amazon S3-Pfad zum Speichern Ihrer Protokolleein (oder navigieren Sie zu einem Pfad). Sie können auch von der Konsole einen Amazon S3-Pfadgenerieren lassen. Wenn Sie den Namen eines Ordners eingeben, der im Bucket nicht existiert, wirdder Ordner erstellt.

Wenn dieser Wert festgelegt ist, kopiert Amazon EMR die Protokolldateien aus den EC2-Instances imCluster zu Amazon S3. Dadurch können die Protokolldateien nicht verloren gehen, wenn das Clusterbeendet wird und die EC2-Instances, von denen das Cluster gehostet wird, beendet werden. DieseProtokolle sind bei der Fehlerbehebung hilfreich.

Weitere Informationen finden Sie unter Anzeigen von Protokolldateien.6. Wählen Sie im Feld Log encryption (Protokollverschlüsselung) die Option Encrypt logs stored

in S3 with an AWS KMS customer managed key (Protokolle verschlüsseln, die in S3 mit einemkundenverwalteten AWS KMS-Schlüssel gespeichert sind). Wählen Sie dann einen AWS KMS-Schlüssel aus der Liste aus oder geben Sie einen Schlüssel-ARN ein. Sie können auch einen neuenKMS-Schlüssel erstellen.

Diese Option ist nur für Amazon EMR Version 5.30.0 und höher verfügbar. Um diese Option zuverwenden, fügen Sie KMS-Berechtigungen für Ihr EC2-Instance-Profil und die EMR-Rolle hinzu.Weitere Informationen finden Sie im To encrypt log files stored in Amazon S3 with an AWS KMScustomer managed key (p. 175).

7. Fahren Sie mit der Erstellung des Clusters wie unter Plan and Configure Clusters (p. 52)beschrieben fort.

To encrypt log files stored in Amazon S3 with an AWS KMScustomer managed keyMit Amazon EMR Version 5.30.0 und höher (außer Amazon EMR 6.0.0) können Sie Protokolldateienverschlüsseln, die in Amazon S3 mit einem kundenverwalteten AWS KMS-Schlüssel gespeichert sind. Umdiese Option über die Konsole zu aktivieren, führen Sie die Schritte unter To archive log files to Amazon S3using the console (p. 175) aus. Ihr Amazon EC2-Instance-Profil und Ihre Amazon EMR-Rolle müssen diefolgenden Voraussetzungen erfüllen:

• The Amazon EC2 instance profile used for your cluster must have permission to usekms:GenerateDataKey.

175

Page 183: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArchive Log Files to Amazon S3

• The Amazon EMR role used for your cluster must have permission to use kms:DescribeKey.• The Amazon EC2 instance profile and Amazon EMR role must be added to the list of key users for the

specified AWS KMS customer managed key, as the following steps demonstrate:1. Open the AWS Key Management Service (AWS KMS) console at https://console.aws.amazon.com/

kms.2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. Select the alias of the CMK to modify.4. On the key details page under Key Users, choose Add.5. In the Add key users dialog box, select your Amazon EC2 instance profile and Amazon EMR role.6. Choose Add.

Weitere Informationen finden Sie unter Von Amazon EMR verwendete Servicerollen und Verwendung vonSchlüsselrichtlinien im AWS Key Management Service-Entwicklerhandbuch.

To archive log files to Amazon S3 using the AWS CLIUm Protokolldateien über die AWS CLI zu Amazon S3 zu archivieren, geben Sie den Befehl create-cluster ein und geben mittels des Parameters --log-uri den Amazon S3-Protokollpfad an.

• So protokollieren Sie Dateien Amazon S3 folgenden Befehl eingeben und ersetzen myKey mit demNamen Ihres EC2-Schlüsselpaars.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --log-uri s3://mybucket/logs/ --applications Name=Hadoop Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3

Wenn Sie die Instance-Anzahl ohne den Parameter --instance-groups angeben, wird ein einzelnerMaster-Knoten gestartet. Die verbleibenden Instances werden dabei als Core-Knoten gestartet. Alle Knotenverwenden den im Befehl angegebenen Instance-Typ.

Note

Wenn Sie zuvor nicht die standardmäßige EMR-Servicerolle und das EC2-Instance-Profil erstellthaben, geben Sie "aws emr create-default-roles" ein, um sie zu erstellen, bevor Sie denUnterbefehl create-cluster eingeben.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

To aggregate logs in Amazon S3 using the AWS CLINote

Sie können mit dem yarn logs-Dienstprogramm derzeit keine Protokollzusammenführungdurchführen. Sie können die durch dieses Verfahren unterstützte Aggregation nutzen.

Bei der Protokollaggregation (Hadoop 2.x) werden Protokolle für eine bestimmte Anwendung aus allenContainern in einer einzigen Datei zusammengestellt. Um die Protokollaggregation zu Amazon S3 überdie AWS CLI zu aktivieren, verwenden Sie beim Starten des Clusters eine Bootstrap-Aktion, um dieProtokollaggregation zu aktivieren und den Bucket zum Speichern der Protokolle anzugeben.

• Important

Diese Einstellung hat in den letzten 4.x-Updates von EMR nicht funktioniert. Bitte verwendenSie Versionen nach 4.3.0, wenn Sie diese Option konfigurieren.

176

Page 184: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideEnable the Debugging Tool

Zum Aktivieren der Protokollaggregation erstellen Sie die Konfigurationsdatei (myConfig.json) mitfolgendem Inhalt:

[ { "Classification": "yarn-site", "Properties": { "yarn.log-aggregation-enable": "true", "yarn.log-aggregation.retain-seconds": "-1", "yarn.nodemanager.remote-app-log-dir": "s3:\/\/mybucket\/logs" } }]

Geben Sie den folgenden Befehl ein und ersetzen Sie ihn myKey mit dem Namen Ihres EC2-Schlüsselpaars.

aws emr create-cluster --name "Test cluster" --release-label emr-4.5.0 --applications Name=Hadoop --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --configurations file://./myConfig.json

Wenn Sie die Instance-Anzahl ohne den Parameter --instance-groups angeben, wird eineinzelner Master-Knoten gestartet. Die verbleibenden Instances werden dabei als Core-Knotengestartet. Alle Knoten verwenden den im Befehl angegebenen Instance-Typ.

Note

Wenn Sie zuvor nicht die standardmäßige EMR-Servicerolle und das EC2-Instance-Profilerstellt haben, geben Sie "aws emr create-default-roles" ein, um sie zu erstellen,bevor Sie den Unterbefehl create-cluster eingeben.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Enable the Debugging ToolDas Debugging-Tool ermöglicht Ihnen, Protokolldateien aus der EMR-Konsole zu durchsuchen. WeitereInformationen finden Sie im View Log Files in the Debugging Tool (p. 352). Wenn Sie in einemCluster Debugging aktivieren, archiviert Amazon EMR die Protokolldateien zu Amazon S3 und indiziertanschließend diese Dateien. Sie können dann die Konsole zum intuitiven Durchsuchen der Schritt-,Auftrags-, Aufgaben- und Aufgabenversuchsprotokolle für den Cluster nutzen.

Um das Debugging-Tool in der EMR-Konsole zu verwenden, müssen Sie das Debugging aktivieren, wennSie den Cluster mithilfe der Konsole, der Befehlszeilen-Schnittstelle oder der API starten.

So aktivieren Sie das Debugging-Tool mithilfe der Amazon EMR-Konsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create cluster aus.3. Wählen Sie Go to advanced options (Zu erweiterten Optionen navigieren) aus.4. Wählen Sie im Abschnitt Cluster Configuration (Clusterkonfiguration) im Feld Logging (Protokollierung)

die Standardoption Enabled (Aktiviert) aus. Sie können die Debugging-Funktion nicht ohne dieAktivierung der Protokollierung aktivieren.

5. Geben Sie im Feld Log folder S3 location (S3-Speicherort des Protokollordners) einen Amazon S3-Pfad zum Speichern Ihrer Protokolle ein.

177

Page 185: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideDebugging Option Information

6. Wählen Sie im Feld Debugging (Debuggen) die Option Enabled (Aktiviert) aus.

Die Debugging-Option erstellt einen Amazon SQS-Austausch zur Veröffentlichung von Debugging-Meldungen zum Backend des Amazon EMR-Services. Möglicherweise fallen Gebühren für dieVeröffentlichung von Nachrichten über den Austausch an. Weitere Informationen finden Sie im https://aws.amazon.com/sqs.

7. Fahren Sie mit der Erstellung des Clusters wie unter Plan and Configure Clusters (p. 52)beschrieben fort.

So aktivieren Sie das Debugging-Tool mithilfe der AWS CLI

Um das Debugging über die AWS CLI zu aktivieren, geben Sie den Unterbefehl create-cluster mitdem Parameter --enable-debugging ein. Außerdem müssen Sie den --log-uri-Parameter beimAktivieren des Debuggings angeben.

• So aktivieren Sie das Debuggen mit dem AWS CLI, geben Sie den folgenden Befehl ein und ersetzenSie ihn myKey mit dem Namen Ihres EC2-Schlüsselpaars.

aws emr create-cluster --name "Test cluster" --release-label emr-4.1.0 --log-uri s3://mybucket/logs/ --enable-debugging --applications Name=Hadoop Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3

Wenn Sie die Instance-Anzahl ohne den Parameter --instance-groups angeben, wird eineinzelner Master-Knoten gestartet. Die verbleibenden Instances werden dabei als Core-Knotengestartet. Alle Knoten verwenden den im Befehl angegebenen Instance-Typ.

Note

Wenn Sie zuvor nicht die standardmäßige EMR-Servicerolle und das EC2-Instance-Profilerstellt haben, geben Sie "aws emr create-default-roles" ein, um sie zu erstellen,bevor Sie den Unterbefehl create-cluster eingeben.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Example Aktivieren des Debuggings mit dem Java-SDK

Aktivieren Sie das Debugging mit der folgenden StepConfig:

StepFactory stepFactory = new StepFactory(); StepConfig enabledebugging = new StepConfig() .withName("Enable debugging") .withActionOnFailure("TERMINATE_JOB_FLOW") .withHadoopJarStep(stepFactory.newEnableDebuggingStep());

In diesem Beispiel verwendet new StepFactory() us-east-1 als Standardregion.Wenn der Cluster in einer anderen Region gestartet wird, müssen Sie die Region mit newStepFactory("region_name.elasticmapreduce") angeben, z. B. new StepFactory("ap-northeast-2.elasticmapreduce").

Debugging Option InformationAmazon EMR-Version 4.1 oder höher unterstützt das Debugging in allen Regionen.

178

Page 186: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideTag Clusters

Amazon EMR erstellt eine Amazon SQS-Warteschlange zum Verarbeiten der Debugging-Daten.Möglicherweise fallen Kosten für Nachrichten an. Amazon SQS bietet jedoch ein kostenloses Kontingentvon bis zu 1.000.000 Anforderungen. Weitere Informationen finden Sie auf der Amazon SQS-Detailseite.

Das Debugging erfordert die Verwendung von Rollen. Ihre Service-Rolle und das Instance-Profil müssendie Verwendung aller Amazon SQS-API-Operationen zulassen. Wenn Ihre Rollen zu verwaltetenAmazon EMR-Richtlinien zugeordnet sind, müssen Sie keine Änderungen an Ihren Rollen vornehmen.Wenn Sie benutzerdefinierte Rollen nutzen, müssen Sie sqs:*-Berechtigungen hinzufügen. WeitereInformationen finden Sie im Configure IAM Service Roles for Amazon EMR Permissions to AWS Servicesand Resources (p. 223).

Tag ClustersEs kann nützlich sein, Ihre AWS-Ressourcen auf unterschiedliche Weise zu kategorisieren (z. B. nachZweck, Eigentümer oder Umgebung). Sie können dies in Amazon EMR durch Zuweisen benutzerdefinierterMetadaten zu Ihren Amazon EMR-Clustern mithilfe von Tags erreichen. Ein Tag besteht aus einemSchlüssel und einem Wert, die Sie beide selbst definieren können. Für Amazon EMR stellt der Cluster dieRessourcenebene dar, die Sie taggen können. Sie können beispielsweise eine Gruppe von Tags für dieCluster Ihres Kontos definieren, mit deren Hilfe Sie den Besitzer der einzelnen Cluster verfolgen oder eineProduktions-Cluster von einem Test-Cluster unterscheiden können. Wir empfehlen das Erstellen eineseinheitlichen Satzes von Tags, um Anforderungen Ihres Unternehmens zu erfüllen.

Wenn Sie einem Amazon EMR-Cluster ein Tag hinzufügen, wird das Tag zu allen aktiven Amazon EC2-Instances verteilt, die dem Cluster zugeordnet sind. Entsprechend wird beim Entfernen eines Tags auseinem Amazon EMR-Cluster das Tag auch aus der zugeordneten aktiven Amazon EC2-Instance entfernt.

Important

Sie sollten die Amazon EMR-Konsole oder -CLI verwenden, um Tags in Amazon EC2-Instanceszu verwalten, die Teil eines Clusters sind, und nicht die Amazon EC2-Konsole oder -CLI, da inAmazon EC2 durchgeführte Änderungen nicht zurück zum Amazon EMR-Markierungssystemsynchronisiert werden.

Sie können eine Amazon EC2-Instance identifizieren, die Teil eines Amazon EMR-Clusters ist, indem Siedie folgenden System-Tags suchen. In diesem Beispiel: CORE ist der Wert für die Instanz der Instanzgruppeund j-12345678 ist ein exemplarischer Wert für den Arbeitsfluss (Cluster)-Identifikator:

• aws:elasticmapreduce:instance-group-role=CORE• aws:elasticmapreduce:job-flow-id=j-12345678

Note

Amazon EMR und Amazon EC2 interpretieren Ihre Tags als eine Zeichenfolge ohne semantischeBedeutung.

Sie können mit der AWS Management Console, CLI und API mit Tags arbeiten.

Sie können Tags beim Erstellen eines neuen Amazon EMR-Clusters hinzufügen. Außerdem könnenSie Tags einem ausgeführten Amazon EMR-Cluster hinzufügen, in diesem bearbeiten oder aus diesementfernen. Die Bearbeitung eines Tags bezieht sich auf die Amazon EMR-Konsole. Wenn Sie die CLIund API zum Bearbeiten eines Tags verwenden, entfernen Sie das alte Tag und fügen ein neues hinzu.Sie können Tag-Schlüssel und Werte bearbeiten und Tags jederzeit aus einer Ressource entfernen,während der Cluster ausgeführt wird. Sie können Tags jedoch nicht hinzufügen, bearbeiten oder aus einembeendeten Cluster oder beendeten Instances entfernen, die zuvor einem Cluster zugeordnet waren, dernoch aktiv ist. Darüber hinaus können Sie den Wert eines Tags zwar auf eine leere Zeichenfolge, jedochnicht auf Null festlegen.

179

Page 187: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideTag Restrictions

Wenn Sie AWS Identity and Access Management (IAM) mit Ihren Amazon EC2-Instances fürressourcenbasierte Berechtigungen nach Tag verwenden, werden Ihre IAM-Richtlinien auf Tagsangewendet, die Amazon EMR zu den Amazon EC2-Instances eines Clusters verteilt. Damit AmazonEMR-Tags zu Ihren Amazon EC2-Instances verteilt werden, benötigt Ihre IAM-Richtlinie für Amazon EC2Berechtigungen zum Aufrufen der Amazon EC2-APIs CreateTags und DeleteTags. Außerdem könnensich verteilte Tags auf die ressourcenbasierten Berechtigungen in Amazon EC2 auswirken. Tags, die zuAmazon EC2 verteilt werden, können genau wie andere IAM-Tags als Bedingungen in Ihrer Amazon EC2-Richtlinie gelesen werden. Denken Sie an Ihre IAM-Richtlinie, wenn Sie Ihren Amazon EMR-Clustern Tagshinzufügen, um zu verhindern, dass IAM-Benutzer falsche Berechtigungen für einen Cluster erhalten.Stellen Sie sicher, dass Ihre IAM-Richtlinien keine Bedingungen für Tags enthalten, die Sie auch in IhrenAmazon EMR-Clustern verwenden möchten, um Probleme zu vermeiden. Weitere Informationen finden Sieunter Steuern des Zugriffs auf Amazon EC2-Ressourcen.

Tag RestrictionsDie folgenden grundlegenden Einschränkungen gelten für -Tags:

• Restrictions that apply to Amazon EC2 resources apply to Amazon EMR as well. For more information,see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions.

• Do not use the aws: prefix in tag names and values because it is reserved for AWS use. In addition, youcannot edit or delete tag names or values with this prefix.

• You cannot change or edit tags on a terminated cluster.• A tag value can be an empty string, but not null. In addition, a tag key cannot be an empty string.• Keys and values can contain any alphabetic character in any language, any numeric character, white

spaces, invisible separators, and the following symbols: _ . : / = + - @

Weitere Informationen zum Tagging unter Verwendung der AWS Management Console, siehe Arbeitenmit Tags in der Konsole im Amazon EC2-Benutzerhandbuch für Linux-Instances. Weitere Informationenzum Tagging unter Verwendung der Amazon EC2API oder Befehlszeile, siehe API- und CLI-Übersicht imAmazon EC2-Benutzerhandbuch für Linux-Instances.

Tag Resources for BillingSie können Tags auch zum Strukturieren Ihrer AWS-Kontorechnung verwenden, um Ihre eigeneKostenstruktur darzustellen. Dazu müssen Sie sich registrieren, um Ihre AWS-Kontorechnung mit Tag-Schlüsselwerten zu erhalten. Anschließend können Sie Ihre Abrechnungsdaten nach Tag-Schlüsselwertenorganisieren, um die Kosten kombinierter Ressourcen zu ermitteln. Obwohl Amazon EMR and AmazonEC2 unterschiedliche Abrechnungen besitzen, werden die Tags für jeden Cluster auch in jede verknüpfteInstance platziert, sodass Sie Tags zum Verknüpfen ähnlicher Amazon EMR- und Amazon EC2-Kostenverwenden können.

Beispielsweise können Sie mehrere Ressourcen mit einem bestimmten Anwendungsnamen markierenund dann Ihre Fakturierungsinformationen so organisieren, dass Sie die Gesamtkosten dieser Anwendungüber mehrere Services hinweg sehen können. Weitere Informationen finden Sie unter Kostenzuteilung undMarkierung im Benutzerhandbuch für AWS Billing and Cost Management.

Add Tags to a New ClusterSie können Tags zu einem Cluster hinzufügen, während Sie ihn erstellen.

So fügen Sie Tags beim Erstellen eines neuen Clusters über die Konsole hinzu

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create Cluster (Cluster erstellen) und Go to advanced options (Erweiterte Optionen

aufrufen) aus.

180

Page 188: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAdding Tags to an Existing Cluster

3. Am Schritt 3: Allgemeine Cluster-Einstellungen Seite, im Tags geben Sie einen Schlüssel für Ihr Tag.

Wenn Sie mit der Eingabe des neuen Werts für den Schlüssel beginnen, wird automatisch eine neueZeile für das nächste neue Tag angezeigt.

4. Optional können Sie einen Wert für das Tag eingeben.5. Wiederholen Sie die vorherigen Schritte für jedes Tag-Schlüssel/Wert-Paar, das zum Cluster

hinzugefügt werden soll. Wenn der Cluster startet, werden alle eingegebenen Tags automatisch mitdem Cluster verknüpft.

So fügen Sie Tags beim Erstellen eines neuen Clusters über die AWS CLI hinzu

Im folgenden Beispiel wird gezeigt, wie ein Tag einem neuen Cluster über die AWS CLI hinzugefügt wird.Zum Hinzufügen von Tags beim Erstellen eines Clusters geben Sie den Unterbefehl create-cluster mitdem Parameter --tags ein.

• So fügen Sie ein Tag hinzu costCenter mit Schlüsselwert marketing Wenn Sie einen Clustererstellen, geben Sie den folgenden Befehl ein und ersetzen Sie ihn myKey mit dem Namen Ihres EC2-Schlüsselpaars.

aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 --applications Name=Hadoop Name=Hive Name=Pig --tags "costCenter=marketing" --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3

Wenn Sie die Instance-Anzahl ohne den Parameter --instance-groups angeben, wird eineinzelner Master-Knoten gestartet. Die verbleibenden Instances werden dabei als Core-Knotengestartet. Alle Knoten verwenden den im Befehl angegebenen Instance-Typ.

Note

Wenn Sie zuvor nicht die standardmäßige EMR-Servicerolle und das EC2-Instance-Profilerstellt haben, geben Sie "aws emr create-default-roles" ein, um sie zu erstellen,bevor Sie den Unterbefehl create-cluster eingeben.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Adding Tags to an Existing ClusterSie können Tags auch einem vorhandenen Cluster hinzufügen.

So fügen Sie Tags einem vorhandenen Cluster über die Konsole hinzu

1. Wählen Sie in der Amazon EMR-Konsole die Seite Cluster List (Cluster-Liste) aus und klicken Sie aufden Cluster, dem Sie Tags hinzufügen möchten.

2. Klicken Sie auf der Seite Cluster Details (Cluster-Details) im Feld Tags (Tags) auf View All/Edit (Alleanzeigen/Bearbeiten).

3. Klicken Sie auf der Seite View All/Edit (Alle anzeigen/Bearbeiten) auf Add (Hinzufügen).4. Klicken Sie auf das leere Feld in der Spalte Key (Schlüssel) und geben Sie den Namen Ihres

Schlüssels ein.5. Optional können Sie auf das leere Feld in der Spalte Value (Wert) klicken und den Namen Ihres Werts

eingeben.6. Bei jedem neuen Tag, das Sie eingeben, erscheint eine weitere, leere Tag-Zeile unter dem Tag, den

Sie gerade bearbeiten. Wiederholen Sie die vorherigen Schritte für die neue Tag-Zeile für jedes Tag,den Sie hinzufügen möchten.

181

Page 189: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Tags on a Cluster

So fügen Sie Tags einem aktiven Cluster über die AWS CLI hinzu

Im folgenden Beispiel wird gezeigt, wie zwei Tags einem aktiven Cluster über die AWS CLI hinzugefügtwerden. Geben Sie den Unterbefehl add-tags mit dem Parameter --tag ein, um Tags einemRessourcenbezeichner (Cluster-ID) zuzuweisen. Der Ressourcenbezeichner ist die Cluster-ID, die über dieKonsole oder den Befehl list-clusters verfügbar ist.

Note

Der Unterbefehl add-tags akzeptiert derzeit nur einen Ressourcenbezeichner.

• So fügen Sie einem Lauf-Cluster zwei Tags hinzu (eine mit einem Schlüssel namens productionohne Wert und andere mit einem Schlüssel costCenter mit einem Wert von marketing) denfolgenden Befehl eingeben und ersetzen j-KT4XXXXXXXX1NM mit Ihrer Cluster-ID.

aws emr add-tags --resource-id j-KT4XXXXXXXX1NM --tag "costCenter=marketing" --tag "other=accounting"

Note

Wenn Tags mit der AWS-Befehlszeilenschnittstelle (CLI) hinzugefügt werden, erfolgt keineAusgabe durch den Befehl.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

View Tags on a ClusterWenn Sie alle Tags anzeigen möchten, die mit einem Cluster verknüpft sind, können Sie diese in derKonsole oder CLI ansehen.

So zeigen Sie die Tags in einem Cluster mithilfe der Konsole an

1. Wählen Sie in der Amazon EMR-Konsole die Seite Cluster List (Cluster-Liste) aus und klicken Sie aufeinen Cluster, um die Tags anzeigen.

2. Auf der Seite Cluster Details (Cluster-Details) im Feld Tags (Tags) werden einige Tags angezeigt.Klicken Sie auf View All/Edit (Alle anzeigen/Bearbeiten), um alle verfügbaren Tags im Clusteranzuzeigen.

So zeigen Sie die Tags in einem Cluster mithilfe der AWS CLI an

Um die Tags in einem Cluster über die AWS CLI anzuzeigen, geben Sie den Unterbefehl describe-cluster mit dem Parameter --query ein.

• Um die Tags eines Clusters anzuzeigen, geben Sie den folgenden Befehl ein und ersetzen Sie ihn j-KT4XXXXXXXX1NM mit Ihrer Cluster-ID.

aws emr describe-cluster --cluster-id j-KT4XXXXXX1NM --query Cluster.Tags

Die Ausgabe enthält alle Tag-Informationen über den Cluster ähnlich wie diese:

Value: accounting Value: marketing Key: other Key: costCenter

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

182

Page 190: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRemove Tags from a Cluster

Remove Tags from a ClusterWenn Sie ein Tag nicht mehr benötigen, können Sie es aus dem Cluster entfernen.

So entfernen Sie Tags aus einem Cluster mithilfe der Konsole

1. Wählen Sie in der Amazon EMR-Konsole die Seite Cluster List (Cluster-Liste) aus und klicken Sie aufden Cluster, aus dem Sie Tags entfernen möchten.

2. Klicken Sie auf der Seite Cluster Details (Cluster-Details) im Feld Tags (Tags) auf View All/Edit (Alleanzeigen/Bearbeiten).

3. Klicken Sie im Dialogfeld View All/Edit (Alle anzeigen/Bearbeiten) auf das Symbol X neben dem zulöschenden Tag und dann auf Save (Speichern).

4. (Optional) Wiederholen Sie den vorherigen Schritt für jedes Tag-Schlüssel/Wert-Paar, das aus demCluster entfernt werden soll.

So entfernen Sie Tags aus einem Cluster mithilfe der AWS CLI

Um die Tags aus einem Cluster über die AWS CLI zu entfernen, geben Sie den Unterbefehl remove-tagsmit dem Parameter --tag-keys ein. Beim Entfernen eines Tags ist nur der Schlüsselname erforderlich.

• Um ein Tag aus einem Cluster zu entfernen, geben Sie den folgenden Befehl ein und ersetzen Sie ihnj-KT4XXXXXXXX1NM mit Ihrer Cluster-ID.

aws emr remove-tags --resource-id j-KT4XXXXXX1NM --tag-keys "costCenter"

Note

Sie können derzeit nicht mehrere Tags mit einem einzigen Befehl entfernen.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Drivers and Third-Party Application IntegrationSie können verschiedene beliebte Big-Data-Anwendungen in Amazon EMR zu Preisen einesDienstprogramms ausführen. Das bedeutet, dass Sie eine geringe zusätzliche Gebühr pro Stunde für dieDrittanbieter-Anwendung zahlen, während der Cluster ausgeführt wird. So können Sie die Anwendungnutzen, ohne eine Jahreslizenz erwerben zu müssen. Die folgenden Abschnitte beschreiben einige derTools, die Sie mit EMR verwenden können.

Themen• Use Business Intelligence Tools with Amazon EMR (p. 183)

Use Business Intelligence Tools with Amazon EMRSie können beliebte Business-Intelligence-Tools wie Microsoft Excel, MicroStrategy, QlikView und Tableaumit Amazon EMR verwenden, um Daten zu erkunden und zu visualisieren. Viele dieser Tools erforderneinen ODBC- (Open Database Connectivity) oder JDBC-Treiber (Java Database Connectivity). Sie könnendie neuesten Treiber aus dem folgenden Link herunterladen und installieren:

http://awssupportdatasvcs.com/bootstrap-actions/Simba/latest/

183

Page 191: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Business Intelligence Tools with Amazon EMR

Ältere Versionen von Treibern sind hier:

http://awssupportdatasvcs.com/bootstrap-actions/Simba/

Weitere Informationen dazu, wie Sie ein Business Intelligence-Tool wie Microsoft Excel mit Hive verbinden,finden Sie unter http://cdn.simba.com/products/Hive/doc/Simba_Hive_ODBC_Quickstart.pdf.

184

Page 192: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSicherheitskonfigurationen

Sicherheit in Amazon EMRCloud-Sicherheit hat bei AWS höchste Priorität. Als AWS-Kunde profitieren Sie von einer Rechenzentrums-und Netzwerkarchitektur, die zur Erfüllung der Anforderungen von Organisationen entwickelt wurden, fürdie Sichherheit eine kritische Bedeutung hat.

Sicherheit ist eine übergreifende Verantwortlichkeit zwischen AWS und Ihnen. Im Modell derübergreifenden Verantwortlichkeit wird Folgendes mit „Sicherheit der Cloud“ bzw. „Sicherheit in der Cloud“umschrieben:

• Sicherheit der Cloud selbst – AWS ist dafür verantwortlich, die Infrastruktur zu schützen, mit derAWS-Services in der AWS- Cloud ausgeführt werden. AWS stellt Ihnen außerdem Services bereit,die Sie sicher nutzen können. Auditoren von Drittanbietern testen und überprüfen die Effektivitätunserer Sicherheitsmaßnahmen im Rahmen der AWS-Compliance-Programme regelmäßig. WeitereInformationen zu den Compliance-Programmen für Amazon EMR finden Sie unter Im Rahmen desCompliance-Programms zugelassene AWS-Services.

• Sicherheit in der Cloud in – Ihr Verantwortungsumfang wird durch den AWS-Service bestimmt, den Sieverwenden. Sie sind auch für andere Faktoren verantwortlich, etwa für die Vertraulichkeit Ihrer Daten, fürdie Anforderungen Ihres Unternehmens und für die geltenden Gesetze und Vorschriften.

In dieser Dokumentation wird die Bedeutung des Modells der übergreifenden Verantwortlichkeit beider Verwendung von Amazon EMR beschrieben. Wenn Sie Lösungen in Amazon EMR entwickeln,verwenden Sie die folgenden Technologien, um Cluster-Ressourcen und -Daten entsprechend IhrenGeschäftsanforderungen zu sichern. Die Themen in diesem Kapitel zeigen Ihnen, wie Sie Amazon EMRund andere AWS-Services konfigurieren und verwenden, um Ihre Sicherheits- und Compliance-Ziele zuerfüllen.

SicherheitskonfigurationenBei den Sicherheitskonfigurationen in Amazon EMR handelt es sich um Vorlagen für eineSicherheitseinrichtung. Sie können eine Sicherheitskonfiguration erstellen, um eine Sicherheitseinrichtungwiederverwenden zu können, wenn Sie einen Cluster erstellen. Weitere Informationen finden Sie imVerwenden von Sicherheitskonfigurationen zum Einrichten der Cluster-Sicherheit (p. 187).

DatenschutzSie können Datenverschlüsselung implementieren, um in Amazon S3 Daten im Ruhezustand, im Instance-Speicher des Clusters und während der Übertragung zu schützen. Weitere Informationen finden Sie imVerschlüsseln von Daten im Ruhezustand und im Transit (p. 207).

AWS Identity and Access Management mit AmazonEMR

AWS Identity and Access Management (IAM) ist ein AWS-Service, der Administratoren bei der sicherenKontrolle des Zugriffs auf AWS-Ressourcen unterstützt. IAM-Administratoren steuern, wer zur Verwendungvon Amazon EMR-Ressourcen authentifiziert (angemeldet) und autorisiert (berechtigt) werden kann. IAMist ein AWS-Service, den Sie ohne zusätzliche Kosten nutzen können.

185

Page 193: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideKerberos

• Identitätsbasierte IAM-Richtlinien – IAM-Richtlinien erteilen oder verweigern IAM-Benutzern und -Gruppen Berechtigungen für die Ausführung von Aktionen. Richtlinien können mit Tagging kombiniertwerden, um den Zugriff auf Basis einzelner Cluster zu kontrollieren. Weitere Informationen finden Sie imAWS Identity and Access Management für Amazon EMR (p. 216).

• IAM-Rollen – Die Amazon EMR-Servicerolle, das Instance-Profil und die serviceverknüpfte Rolle steuernden Zugriff von Amazon EMR auf andere AWS-Services. Weitere Informationen finden Sie im ConfigureIAM Service Roles for Amazon EMR Permissions to AWS Services and Resources (p. 223).

• IAM-Rollen für EMRFS-Anfragen an Amazon S3 –– Wenn Amazon EMR auf Amazon S3 zugreift, könnenSie die zu verwendende IAM-Rolle basierend auf dem Benutzer, der Gruppe oder dem Speicherort derEMRFS-Daten in Amazon S3 angeben. Auf diese Weise können Sie genau steuern, ob Cluster-Benutzerauf Dateien aus Amazon EMR heraus zugreifen können. Weitere Informationen finden Sie im ConfigureIAM Roles for EMRFS Requests to Amazon S3 (p. 244).

KerberosSie können Kerberos zur Bereitstellung einer starken Authentifizierung mit Geheimschlüsselkryptografieeinrichten. Weitere Informationen finden Sie im Use Kerberos Authentication (p. 265).

Lake FormationSie können Lake Formation-Berechtigungen zusammen mit AWS Glue Data Catalog verwenden, umdifferenzierten Zugriff auf Spaltenebene auf Datenbanken und Tabellen im AWS Glue-Datenkatalogzu ermöglichen. ermöglicht Lake Formation über ein Unternehmens-Identitätssystem eine verbundeneeinmalige Anmeldung bei EMR Notebooks oder Apache Zeppelin. Weitere Informationen finden Sie imIntegration von Amazon EMR in AWS Lake Formation (p. 292).

Secure Socket Shell (SSH)SSH bietet eine sichere Möglichkeit für Benutzer, Verbindungen mit der Befehlszeile auf Cluster-Instancesherzustellen. Außerdem bietet es Tunneling zur Anzeige von Weboberflächen, die von Anwendungenauf dem Master-Knoten gehostet werden. Clients können sich mit Kerberos oder einem Amazon EC2-Schlüsselpaar authentifizieren. Weitere Informationen erhalten Sie unter Use an Amazon EC2 Key Pair forSSH Credentials (p. 265) und unter Verbinden mit dem Cluster (p. 383).

Amazon EC2-SicherheitsgruppenSicherheitsgruppen dienen als virtuelle Firewall für EMR-Cluster-Instances und begrenzen den ein- undausgehenden Netzwerkverkehr. Weitere Informationen finden Sie im Steuerung des Netzwerkverkehrs mitSicherheitsgruppen (p. 316).

Aktualisierungen an der Amazon Linux-Standard-AMI für Amazon EMR

Wenn eine Amazon EC2-Instance in einem Cluster, der auf dem Amazon Linux-Standard-AMI fürAmazon EMR basiert, zum ersten Mal gestartet wird, werden kritische Sicherheitsupdates standardmäßiginstalliert. Andere Updates werden nicht installiert. Abhängig von der Sicherheit Ihrer Anwendung und der

186

Page 194: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von Sicherheitskonfigurationen

zum Einrichten der Cluster-Sicherheit

Dauer der Ausführung eines Clusters können Sie wählen, ob Sie Ihr Cluster regelmäßig neu starten, umSicherheitsupdates anzuwenden, oder ob Sie eine Bootstrap-Aktion zum Anpassen von Paketinstallationund Updates erstellen. Sie können außerdem Sicherheitsupdates erst testen und dann auf ausgeführtenCluster-Instances installieren. Weitere Informationen finden Sie im Verwenden des Amazon Linux-Standard-AMI für Amazon EMR (p. 123).

Verwenden von Sicherheitskonfigurationen zumEinrichten der Cluster-Sicherheit

Mit Amazon EMR Version 4.8.0 oder höher können Sie Sicherheitskonfigurationen verwenden, um dieDatenverschlüsselung, die Kerberos-Authentifizierung (verfügbar in den Version 5.10.0 und höher) und dieAmazon S3-Autorisierung für EMRFS (verfügbar in den Version 5.10.0 oder höher) zu konfigurieren.

Nach dem Erstellen einer Sicherheitskonfiguration geben Sie an, wenn Sie einen Cluster erstellen. Siekönnen sie für eine beliebige Anzahl von Clustern verwenden.

Sie können die Konsole, die AWS Command Line Interface (AWS CLI) oder die AWS SDKs verwenden,um eine Sicherheitskonfiguration zu erstellen. Sie können zum Erstellen einer Sicherheitskonfigurationauch eine AWS CloudFormation-Vorlage verwenden. Weitere Informationen finden Sie unter AWSCloudFormation Benutzerhandbuch und in der Vorlagenreferenz für AWS::EMR::SecurityConfiguration.

Themen• Erstellen einer Sicherheitskonfiguration (p. 187)• Angabe einer Sicherheitskonfiguration für einen Cluster (p. 205)

Erstellen einer SicherheitskonfigurationIn diesem Thema werden allgemeine Prozeduren für das Erstellen einer Sicherheitskonfiguration mithilfeder EMR-Konsole und der AWS CLI, behandelt. Zudem enthält es eine Referenz der Parameter, die füreine Verschlüsselung und Authentifizierung sowie für IAM-Rollen für EMRFS verwendet werden. WeitereInformationen zu diesen Funktionen finden Sie in den folgenden Themen:

• Verschlüsseln von Daten im Ruhezustand und im Transit (p. 207)• Use Kerberos Authentication (p. 265)• Configure IAM Roles for EMRFS Requests to Amazon S3 (p. 244)

So erstellen Sie eine Sicherheitskonfiguration mithilfe der Konsole

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie im Navigationsbereich Security Configurations (Sicherheitskonfigurationen), Create

security configuration (Sicherheitskonfiguration erstellen) aus.3. Geben Sie in Name (Name) einen Namen für die Sicherheitskonfiguration ein.4. Optionen für wählen Verschlüsselung und Authentifizierung wie in den nachfolgenden Abschnitten

beschrieben, und wählen Sie dann Erstellen.

So erstellen Sie eine Sicherheitskonfiguration mithilfe der AWS CLI

• Verwenden Sie den Befehl create-security-configuration wie im folgenden Beispiel gezeigt.

• : SecConfigName, geben Sie den Namen der Sicherheitskonfiguration an. Dies ist der Name, denSie angeben, wenn Sie einen Cluster erstellen, der diese Sicherheitskonfiguration verwendet.

187

Page 195: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

• für SecConfigDef, legen Sie eine Inline-JSON-Struktur oder den Pfad zu einer lokalen JSON-Datei fest, z. B. file://MySecConfig.json. Die JSON-Parameter definieren Optionen fürVerschlüsselung, IAM-Rollen für EMRFS-Zugriff auf Amazon S3, und Authentifizierung wie in denAbschnitten unten beschrieben.

aws emr create-security-configuration --name "SecConfigName" --security-configuration SecConfigDef

Konfigurieren der DatenverschlüsselungBevor Sie die Verschlüsselung in einer Sicherheitskonfiguration konfigurieren, erstellen Sie die Schlüsselund Zertifikate, die für die Verschlüsselung verwendet werden. Weitere Informationen finden Sieunter Bereitstellen von Schlüsseln für die Verschlüsselung von Daten im Ruhezustand mit AmazonEMR (p. 212) und Bereitstellen von Zertifikaten für die Verschlüsselung von Daten während derÜbertragung mit der Amazon EMR-Verschlüsselung (p. 215).

Beim Erstellen einer Sicherheits-Konfiguration legen Sie zwei Verschlüsselungsoptionen fest:Verschlüsselung von Daten während der Übertragung und im Ruhezustand. Die Optionen für dieVerschlüsselung von Daten im Ruhezustand umfassen sowohl die Amazon S3-Verschlüsselung mitEMRFS und die lokale Laufwerksverschlüsselung. Die Optionen für die Verschlüsselung von Datenwährend der Übertragung aktivieren die Open-Source-Verschlüsselungsfunktionen für bestimmteAnwendungen, die Transport Layer Security (TLS) unterstützen. Die Optionen für die Verschlüsselungwährend der Übertragung und im Ruhezustand können gemeinsam oder einzeln aktiviert werden. WeitereInformationen finden Sie im Verschlüsseln von Daten im Ruhezustand und im Transit (p. 207).

Note

Wenn Sie AWS KMS auswählen, fallen für die Speicherung und Nutzung derVerschlüsselungsschlüssel Gebühren an. Weitere Informationen finden Sie unter AWS KMS –Preise.

Angabe von Verschlüsselungsoptionen mit der KonsoleWählen Sie Optionen unter Encryption (Verschlüsselung) entsprechend den folgenden Anleitungen aus.

• Wählen Sie Optionen unter At rest encryption (Verschlüsselung im Ruhezustand) aus, um innerhalb desDateisystems gespeicherte Daten zu verschlüsseln.

Sie können Daten in Amazon S3, auf lokalen Datenträgern oder in beiden Speichern verschlüsseln.• Wählen Sie unter S3 data encryption (S3-Datenverschlüsselung) für Encryption mode

(Verschlüsselungsmodus) einen Wert aus, um festzulegen, wie Amazon EMR Amazon S3-Daten mitEMRFS verschlüsseln soll.

Der nächste Schritt hängt von dem von Ihnen gewählten Verschlüsselungsmodus ab:• SSE-S3 (SSE-S3)

Gibt serverseitige Verschlüsselung mit Amazon S3-verwalteten Verschlüsselungsschlüsseln an. Siemüssen nicht mehr tun, da Amazon S3 die Handhabung der Schlüssel für Sie übernimmt.

• SSE-KMS (SSE-KMS) oder CSE-KMS (CSE-KMS)

Gibt serverseitige Verschlüsselung mit AWS KMS-verwalteten Schlüsseln (SSE-KMS) oderclientseitige Verschlüsselung mit AWS KMS-verwalteten Schlüsseln (CSE-KMS) an. Wählen Sie unterAWS KMS Key (AWS KMS-Schlüssel) einen Schlüssel aus. Der Schlüssel muss sich in derselbenRegion befinden wie Ihr EMR-Cluster. Schlüsselanforderungen finden Sie unter Verwenden von AWSKMS-Kundenmasterschlüsseln (CMKs) für die Verschlüsselung (p. 212).

• CSE-Custom (CSE-Custom)

188

Page 196: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Gibt clientseitige Verschlüsselung mit einem benutzerdefinierten clientseitigen Masterschlüssel (CSE-Custom) an. Geben Sie in S3 object (S3-Objekt) den Speicherort in Amazon S3 oder den Amazon S3-ARN der JAR-Datei Ihres benutzerdefinierten Schlüsselanbieters an. Geben Sie dann im Feld Keyprovider class (Schlüsselanbieterklasse) den vollständigen Klassennamen einer in Ihrer Anwendungdeklarierten Klasse ein, die die EncryptionMaterialsProvider-Schnittstelle implementiert.

• Wählen Sie unter Local disk encryption (Lokale Laufwerksverschlüsselung) einen Wert für Key providertype (Schlüsselanbietertyp) aus.• AWS KMS

Wählen Sie diese Option aus, um einen AWS KMS-Kundenmasterschlüssel (CMK) festzulegen.Wählen Sie für AWS KMS customer master key (AWS KMS-Kundenmasterschlüssel) einenSchlüssel aus. Der Schlüssel muss sich in derselben Region befinden wie Ihr EMR-Cluster. WeitereInformationen zu den Anforderungen für Schlüssel finden Sie unter Verwenden von AWS KMS-Kundenmasterschlüsseln (CMKs) für die Verschlüsselung (p. 212).

EBS-Verschlüsselung

Wenn Sie AWS KMS als Schlüsselanbieter angeben, können Sie die EBS-Verschlüsselung aktivieren,um EBS-Root-Volumes und Speicher-Volumes zu verschlüsseln. Um diese Option zu aktivieren,müssen Sie der EMR-Servicerolle EMR_DefaultRole Berechtigungen zur Verwendung desvon Ihnen angegebenen Kundenmasterschlüssels (CMK) erteilen. Weitere Informationen zu denAnforderungen für Schlüssel finden Sie unter Aktivieren der EBS-Verschlüsselung durch Bereitstellenzusätzlicher Berechtigungen für AWS KMS CMKs (p. 213).

• Benutzerdefinierter .

Wählen Sie diese Option aus, um einen benutzerdefinierten Schlüsselanbieter festzulegen. GebenSie in S3 object (S3-Objekt) den Speicherort in Amazon S3 oder den Amazon S3-ARN der JAR-Datei Ihres benutzerdefinierten Schlüsselanbieters an. Geben Sie im Feld Key provider class(Schlüsselanbieterklasse) den vollständigen Klassennamen einer in der Anwendung deklariertenKlasse ein, die die EncryptionMaterialsProvider-Schnittstelle implementiert. Der Klassenname, den Siehier angeben, muss sich von dem Klassennamen für CSE-Custom unterscheiden.

• Wählen Sie In-transit encryption (Verschlüsselung bei Übertragung) aus, um die Open-Source-TLS-Verschlüsselungsfunktionen für Daten während der Übertragung zu aktivieren. Wählen Sie anhand derfolgenden Anleitungen einen Certificate provider type (Zertifikatanbietertyp) aus:• PEM (PEM)

Wählen Sie diese Option zur Verwendung von PEM-Dateien aus, die Sie in einer ZIP-Dateibereitstellen. Zwei Artefakte sind innerhalb der ZIP-Datei erforderlich: privateKey.pem undcertificateChain.pem. Eine dritte Datei, trustedCertificates.pem, ist optional. Einzelheiten dazu findenSie unter Bereitstellen von Zertifikaten für die Verschlüsselung von Daten während der Übertragungmit der Amazon EMR-Verschlüsselung (p. 215). Geben Sie in S3 object (S3-Objekt) den Speicherortin Amazon S3 oder den Amazon S3-ARN des Zip-Datei-Felds an.

• Benutzerdefinierter .

Wählen Sie diese Option aus, um einen benutzerdefinierten Zertifikatanbieter anzugeben. GebenSie anschließend in S3 object (S3-Objekt) den Speicherort in Amazon S3 oder den Amazon S3-ARN der JAR-Datei Ihres benutzerdefinierten Zertifikatanbieters ein. Geben Sie in Key provider class(Schlüsselanbieterklasse) den vollständigen Klassennamen einer in der Anwendung deklariertenKlasse ein, die die TLSArtifactsProvider-Schnittstelle implementiert.

Angabe von Verschlüsselungsoptionen mit der AWS CLI

Die folgenden Abschnitte enthalten Beispielszenarien mit ordnungsgemäß formatiertem --security-configuration JSON für verschiedene Konfigurationen und Schlüsselanbieter, gefolgt von einer Referenz fürJSON-Parameter und geeignete Werte.

189

Page 197: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Beispiel der Verschlüsselungsoptionen für Daten während der Übertragung

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

• Die Verschlüsselung von Daten während der Übertragung ist aktiviert und die Verschlüsselung von Datenim Ruhezustand ist deaktiviert.

• Eine ZIP-Datei mit Zertifikaten in Amazon S3 wird als Schlüsselanbieter verwendet (dieZertifikatanforderungen finden Sie unter Bereitstellen von Zertifikaten für die Verschlüsselung von Datenwährend der Übertragung mit der Amazon EMR-Verschlüsselung (p. 215)).

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : false, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "PEM", "S3Object" : "s3://MyConfigStore/artifacts/MyCerts.zip" } } }}'

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

• Die Verschlüsselung von Daten während der Übertragung ist aktiviert und die Verschlüsselung von Datenim Ruhezustand ist deaktiviert.

• Ein benutzerdefinierter Schlüsselanbieter wird verwendet (die Zertifikatanforderungen finden Sie unterBereitstellen von Zertifikaten für die Verschlüsselung von Daten während der Übertragung mit derAmazon EMR-Verschlüsselung (p. 215)).

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : false, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "Custom", "S3Object" : "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass" : "com.mycompany.MyCertProvider" } } }}'

Beispiel der Verschlüsselungsoptionen für Daten im Ruhezustand

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

• Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung vonDaten im Ruhezustand ist aktiviert.

• Für die Amazon S3-Verschlüsselung wird SSE-S3 verwendet.• Die lokale Laufwerksverschlüsselung verwendet AWS KMS als Schlüsselanbieter.

190

Page 198: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : false, "EnableAtRestEncryption" : true, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "SSE-S3" }, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } }}'

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

• Die Verschlüsselung von Daten während der Übertragung ist aktiviert und verweist unter Verwendungder ARN auf eine ZIP-Datei mit PEM-Zertifikaten in Amazon S3.

• Für die Amazon S3-Verschlüsselung wird SSE-KMS verwendet.• Die lokale Laufwerksverschlüsselung verwendet AWS KMS als Schlüsselanbieter.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : true, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "PEM", "S3Object" : "arn:aws:s3:::MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "SSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } }}'

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

• Die Verschlüsselung von Daten während der Übertragung ist aktiviert und verweist auf eine ZIP-Datei mitPEM-Zertifikaten in Amazon S3.

• Für die Amazon S3-Verschlüsselung wird CSE-KMS verwendet.• Die lokale Laufwerksverschlüsselung verwendet einen benutzerdefinierten Schlüsselanbieter, auf den

anhand des ARN verwiesen wird.

191

Page 199: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : true, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "PEM", "S3Object" : "s3://MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "CSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "Custom", "S3Object" : "arn:aws:s3:::artifacts/MyKeyProvider.jar", "EncryptionKeyProviderClass" : "com.mycompany.MyKeyProvider.jar" } } }}'

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

• Die Verschlüsselung von Daten während der Übertragung anhand eines benutzerdefiniertenSchlüsselanbieters ist aktiviert.

• CSE-Custom wird für Amazon S3-Daten verwendet.• Die lokale Laufwerksverschlüsselung verwendet einen benutzerdefinierten Schlüsselanbieter.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : "true", "EnableAtRestEncryption" : "true", "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "Custom", "S3Object" : "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass" : "com.mycompany.MyCertProvider" } }, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "CSE-Custom", "S3Object" : "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass" : "com.mycompany.MyKeyProvider" }, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "Custom", "S3Object" : "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass" : "com.mycompany.MyKeyProvider" } } }}'

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

192

Page 200: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

• Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung vonDaten im Ruhezustand ist aktiviert.

• DieAmazon S3-Verschlüsselung ist mit SSE-KMS aktiviert und Verschlüsselungsausnahmen werden aufeinzelne S3-Buckets angewendet.

• Die lokale Laufwerksverschlüsselung ist deaktiviert.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode" : "SSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "Overrides" : [ { "BucketName" : "sse-s3-bucket-name", "EncryptionMode" : "SSE-S3" }, { "BucketName" : "cse-kms-bucket-name", "EncryptionMode" : "CSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, { "BucketName" : "sse-kms-bucket-name", "EncryptionMode" : "SSE-KMS", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } ] } }, "EnableInTransitEncryption": false, "EnableAtRestEncryption": true }}'

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

• Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung vonDaten im Ruhezustand ist aktiviert.

• DieAmazon S3-Verschlüsselung wird mit SSE-S3 aktiviert und die lokale Laufwerksverschlüsselung istdeaktiviert.

aws emr create-security-configuration --name "MyS3EncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : false, "EnableAtRestEncryption" : true, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "SSE-S3" } } }}'

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

193

Page 201: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

• Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung vonDaten im Ruhezustand ist aktiviert.

• Die lokale Laufwerksverschlüsselung wird mit AWS KMS als Schlüsselanbieter aktiviert und die AmazonS3-Verschlüsselung ist deaktiviert.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : false, "EnableAtRestEncryption" : true, "AtRestEncryptionConfiguration" : { "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } }}'

Das nachstehende Beispiel veranschaulicht das folgende Szenario:

• Die Verschlüsselung von Daten während der Übertragung ist deaktiviert und die Verschlüsselung vonDaten im Ruhezustand ist aktiviert.

• Die lokale Laufwerksverschlüsselung wird mit AWS KMS als Schlüsselanbieter aktiviert und die AmazonS3-Verschlüsselung ist deaktiviert.

• Die EBS-Verschlüsselung ist aktiviert.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : false, "EnableAtRestEncryption" : true, "AtRestEncryptionConfiguration" : { "LocalDiskEncryptionConfiguration" : { "EnableEbsEncryption" : true, "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } }}'

JSON-Referenz für Verschlüsselungseinstellungen

In der folgenden Tabelle finden Sie die JSON-Parameter für die Verschlüsselungseinstellungen sowie eineBeschreibung der zulässigen Werte für die einzelnen Parameter.

Parameter Description (Beschreibung)

"EnableInTransitEncryption" : true |false

Geben Sie true an, um die Verschlüsselung derDaten während der Übertragung zu aktivieren,und false, um sie zu deaktivieren. Wenn derParameter nicht definiert wird, gilt false unddie Verschlüsselung von Daten während derÜbertragung ist deaktiviert.

194

Page 202: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Parameter Description (Beschreibung)

"EnableAtRestEncryption" : true | false Geben Sie true an, um die Verschlüsselung derDaten im Ruhezustand zu aktivieren, und false,um sie zu deaktivieren. Wenn der Parameter nichtdefiniert wird, gilt false und die Verschlüsselungvon Daten im Ruhezustand ist deaktiviert.

Parameter für die Verschlüsselung während der Übertragung

"InTransitEncryptionConfiguration" : Gibt eine Sammlung von Wertenfür die Verschlüsselung von Datenwährend der Übertragung an, wennEnableInTransitEncryption true ist.

"CertificateProviderType" : "PEM" |"Custom"

Gibt an, ob PEM-Zertifikate verwendet werdensollen, auf die über eine ZIP-Datei oder übereinen Custom Zertifikatsanbieter verwiesen wird.Wenn PEM angegeben ist, muss S3Object eineReferenz auf den Speicherort einer ZIP-Dateimit den Zertifikaten in Amazon S3 sein. Wenn„Custom (Benutzerdefiniert)“ angegeben ist, mussS3Object eine Referenz auf den Speicherort einerJAR-Datei in Amazon S3 sein, gefolgt von einemCertificateProviderClass-Eintrag.

"S3Object" : "ZipLocation" |"JarLocation"

Gibt den Speicherort einer ZIP-Datei in AmazonS3 an, wenn PEM angegeben wurde, oder einerJAR-Datei, wenn Custom angegeben wurde.Das Format kann ein Pfad sein (z. B. s3://MyConfig/artifacts/CertFiles.zip)oder ein ARN (z. B. arn:aws:s3:::Code/MyCertProvider.jar). Wenn eine Zip-Dateiangegeben ist, müssen sie Dateien enthalten,die genau benannt sind privateKey.pem undcertificateChain.pem. Eine Datei benannttrustedCertificates.pem ist optional.

"CertificateProviderClass" :"MyClassID"

Nur erforderlich, wenn Custom fürCertificateProviderType angegeben wurde.MyClassID gibt den vollständigen Namen einerin der JAR-Datei deklarierten Klasse an, die dieTLSArtifactsProvider-Schnittstelle implementiert.Beispiel, com.mycompany.MyCertProvider.

Parameter für die Verschlüsselung im Ruhezustand

"AtRestEncryptionConfiguration" : Gibt eine Sammlung von Werten für dieVerschlüsselung im Ruhezustand an, wennEnableAtRestEncryption auf true festgelegtist, einschließlich Amazon S3-Verschlüsselung undVerschlüsselung auf dem lokalen Datenträger.

Amazon S3 Verschlüsselungsparameter

"S3EncryptionConfiguration" : Gibt eine Sammlung von Werten an, die für dieAmazon S3-Verschlüsselung mit dem EMR FileSystem (EMRFS) verwendet werden.

195

Page 203: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Parameter Description (Beschreibung)

"EncryptionMode" : "SSE-S3" | "SSE-KMS" |"CSE-KMS" | "CSE-Custom"

Gibt den zu verwendenden Typ der Amazon S3-Verschlüsselung an. Wenn SSE-S3 angegebenwurde, sind keine weiteren Amazon S3-Verschlüsselungswerte erforderlich. Wenn SSE-KMS oder CSE-KMS angegeben wurde, muss derARN eines AWS KMS-Kundenmasterschlüssels(Customer Master Key, CMK) als Wert fürAwsKmsKey angegeben werden. Wenn CSE-Custom ausgewählt wurde, müssen S3Object-und EncryptionKeyProviderClass-Werteangegeben werden.

"AwsKmsKey" : "MyKeyARN" Nur erforderlich, wenn SSE-KMS oder CSE-KMS für EncryptionMode angegeben wurden.MyKeyARN muss ein vollständig angegebener ARNfür einen Schlüssel sein (z. B. arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012).

"S3Object" : "JarLocation" Nur erforderlich, wenn CSE-Custom fürCertificateProviderType angegeben wurde.JarLocation gibt den Amazon S3-Speicherorteiner JAR-Datei an. Beim Format kann es sichum einen Pfad (beispielsweise s3://MyConfig/artifacts/MyKeyProvider.jar) oder einenARN (beispielsweise arn:aws:s3:::Code/MyKeyProvider.jar) handeln.

"EncryptionKeyProviderClass" :"MyS3KeyClassID"

Nur erforderlich, wenn CSE-Custom fürEncryptionMode angegeben wurde.MyS3KeyClassID gibt den vollständigenNamen einer in der Anwendung deklariertenKlasse an, die die EncryptionMaterialsProvider-Schnittstelle implementiert; z. B.com.mycompany.MyS3KeyProvider.

Parameter für Verschlüsselung auf dem lokalen Datenträger

"LocalDiskEncryptionConfiguration" Gibt die Schlüsselanbieter und dieentsprechenden Werte an, die für die lokaleLaufwerksverschlüsselung verwendet werdenmüssen.

"EncryptionKeyProviderType" : "AwsKms"| "Custom"

Gibt den Schlüsselanbieter an. WennAwsKms angegeben wurde, muss derARN eines AWS KMS CMK als Wert fürAwsKmsKey angegeben werden. Wenn Customausgewählt wurde, müssen S3Object- undEncryptionKeyProviderClass-Werteangegeben werden.

"AwsKmsKey : "MyKeyARN" Nur erforderlich, wenn AwsKms für Typeangegeben wurde. MyKeyARN muss dervollständig angegebene ARN für einenSchlüssel sein (z. B. arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123).

196

Page 204: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Parameter Description (Beschreibung)

"S3Object" : "JarLocation" Nur erforderlich, wenn CSE-Custom fürCertificateProviderType angegeben wurde.JarLocation gibt den Amazon S3-Speicherorteiner JAR-Datei an. Beim Format kann es sichum einen Pfad (beispielsweise s3://MyConfig/artifacts/MyKeyProvider.jar) oder einenARN (beispielsweise arn:aws:s3:::Code/MyKeyProvider.jar) handeln.

"EncryptionKeyProviderClass" :"MyLocalDiskKeyClassID"

Nur erforderlich, wenn Custom für Typeangegeben wurde. MyLocalDiskKeyClassIDgibt den vollständigen Namen einer inder Anwendung deklarierten Klasse an,die die EncryptionMaterialsProvider-Schnittstelle implementiert; z. B.com.mycompany.MyLocalDiskKeyProvider.

Konfiguration der Kerberos-AuthentifizierungEine Sicherheitskonfiguration mit Kerberos-Einstellungen kann nur von einem Cluster verwendet werden,das mit Kerberos-Attributen erstellt wurde, andernfalls tritt ein Fehler auf. Weitere Informationen finden Sieim Use Kerberos Authentication (p. 265). Kerberos ist nur in Amazon EMR-Version 5.10.0 und höherverfügbar.

Angabe von Kerberos-Einstellungen unter Verwendung der Konsole

Wählen Sie anhand der folgenden Anleitungen Optionen in Kerberos authentication (Kerberos-Authentifizierung) aus.

Parameter Beschreibung

Kerberos Gibt an, dass Kerberos für Cluster aktiviert ist, die dieseSicherheitskonfiguration verwenden. Falls ein Clusterdiese Sicherheitskonfiguration verwendet, müssen fürdas Cluster Kerberos-Einstellungen festgelegt werden.Andernfalls tritt ein Fehler auf.

Cluster-dedizierter KDC Gibt an, dass Amazon EMR einen KDC auf demMaster-Knoten eines jeden Clusters erstellt, der dieseSicherheitskonfiguration verwendet. Sie geben beimErstellen des Clusters den Bereichsnamen und das KDC-Administratorpasswort an.

Sie können diesen KDC bei Bedarf von anderen Clusternaus referenzieren. Erstellen Sie solche Cluster mit eineranderen Sicherheitskonfiguration, geben Sie einenexternen KDC an und verwenden Sie den Bereichsnamenund das KDC-Administratorpasswort, das Sie für denCluster-spezifischen KDC angeben.

Anbieter

Externer KDC Nur mit Amazon EMR 5.20.0 und höher verfügbar. Gibtan, dass Cluster, für die diese Sicherheitskonfigurationverwendet wird, Kerberos-Prinzipale authentifizieren,bei denen einen KDC-Server außerhalb des Clusters

197

Page 205: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Parameter Beschreibungverwendet wird. Ein KDC wird auf dem Cluster nichtangelegt. Sie geben beim Erstellen des Clusters denBereichsnamen und das KDC-Administratorpasswort fürdas externe KDC an.

Ticket-Gültigkeitsdauer Optional. Gibt den Zeitraum an, für den ein Kerberos-Ticket, das vom KDC ausgegeben wird, auf Clustern gültigist, die diese Sicherheitskonfiguration verwenden.

Ticket-Gültigkeitsdauern werden aus Sicherheitsgründenbeschränkt. Cluster-Anwendungen und -Servicesverlängern Tickets automatisch, wenn sie ablaufen.Benutzer, die eine Verbindung mit dem Cluster über SSHmit Kerberos-Anmeldeinformationen einrichten, müssenkinit von der Befehlszeile des Master-Knoten ausausführen, um eine Verlängerung auszuführen, nachdemein Ticket abgelaufen ist.

Bereichsübergreifende Vertrauensstellung Gibt eine bereichsübergreifende Vertrauensstellungzwischen einem Cluster-dedizierten KDC auf Clustern an,die diese Sicherheitskonfiguration und einen KDC in einemanderen Kerberos-Bereich verwenden.

Prinzipale (in der Regel Benutzer) aus einem anderenBereich werden in Clustern authentifiziert, die dieseKonfiguration verwenden. Eine zusätzliche Konfigurationim anderen Kerberos-Bereich ist erforderlich. WeitereInformationen finden Sie unter Tutorial: Configure a Cross-Realm Trust with an Active Directory Domain (p. 287).

Bereich Gibt den Kerberos-Bereichsnamen des anderen Bereichsin der Vertrauensstellung an. Gemäß Konvention sindKerberos-Bereichsnamen mit dem Domänennamenidentisch, werden aber komplett in Großbuchstabengeschrieben.

Domäne Gibt den Domain-Namen des anderen Bereichs in derVertrauensstellung an.

EigenschaftenderbereichsübergreifendeVertrauensstellung

Admin-Server Gibt den vollständig qualifizierten Domänennamen(FQDN, Fully Qualified Domain Name) oder die IP-Adresse des Admin-Servers im anderen Bereich derVertrauensstellung an. Der Admin-Server und KDC-Server werden normalerweise auf demselben Rechner mitdemselben FQDN ausgeführt, kommunizieren jedoch überandere Ports.

Falls kein Port angegeben ist, wird Port 749 verwendet,da es dabei um den Kerberos-Standard handelt. Siekönnen optional einen Port angeben (beispielsweisedomain.example.com:749).

198

Page 206: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Parameter Beschreibung

KDC-Server Gibt den vollqualifizierten Domänennamen (FQDN) oderdie IP-Adresse des KDC-Servers im anderen Bereich derVertrauensstellung an. Der KDC-Server und der Admin-Server werden normalerweise auf derselben Maschinemit demselben FQDN ausgeführt, für sie werden jedochandere Ports verwendet.

Falls kein Port angegeben ist, wird Port 88 verwendet,da es dabei um den Kerberos-Standard handelt. Siekönnen optional einen Port angeben (beispielsweisedomain.example.com:88).

Externer KDC Gibt an, dass der externe KDC des Clusters vom Clusterverwendet wird.

Admin-Server Gibt den vollqualifizierten Domänennamen (FQDN) oderdie IP-Adresse des externen Admin-Servers an. DerAdmin-Server und KDC-Server werden normalerweise aufdemselben Rechner mit demselben FQDN ausgeführt,kommunizieren jedoch über andere Ports.

Falls kein Port angegeben ist, wird Port 749 verwendet,da es dabei um den Kerberos-Standard handelt. Siekönnen optional einen Port angeben (beispielsweisedomain.example.com:749).

KDC-Server Gibt den vollqualifizierten Domänennamen (FQDN) desexternen KDC-Servers an. Der KDC-Server und derAdmin-Server werden normalerweise auf derselbenMaschine mit demselben FQDN ausgeführt, für sie werdenjedoch andere Ports verwendet.

Falls kein Port angegeben ist, wird Port 88 verwendet,da es dabei um den Kerberos-Standard handelt. Siekönnen optional einen Port angeben (beispielsweisedomain.example.com:88).

Active Directory-Integration Gibt an, dass die Kerberos-Hauptauthentifizierung in eineMicrosoft Active Directory-Domäne integriert ist.

ActiveDirectory-Bereich

Gibt den Kerberos-Bereichsnamen der Active Directory-Domäne an. Gemäß Konvention sind Kerberos-Bereichsnamen in der Regel mit dem Domänennamenidentisch, werden aber komplett in Großbuchstabengeschrieben.

ActiveDirectory-Domäne

Gibt den Active Directory-Domänennamen an.

Eigenschaftendes externenKDC

Eigenschaftender ActiveDirectory-Integration

ActiveDirectory-Server

Gibt den vollqualifizierten Domänennamen (FQDN) desMicrosoft Active Directory-Domänencontrollers an.

199

Page 207: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Angabe von Kerberos-Einstellungen unter Verwendung der AWS CLIDie folgende Referenztabelle zeigt JSON-Parameter für Kerberos-Einstellungen in einerSicherheitskonfiguration. Beispielkonfigurationen finden Sie unter Configuration Examples (p. 279).

Parameter Beschreibung

"AuthenticationConfiguration": { Erforderlich für Kerberos. Gibt an, dasseine Authentifizierungskonfiguration Teildieser Sicherheitskonfiguration ist.

"KerberosConfiguration": { Erforderlich für Kerberos. Gibt dieKerberos-Konfigurationseigenschaftenan.

"Provider":"ClusterDedicatedKdc",

—oder—

"Provider: "ExternalKdc",

ClusterDedicatedKdc gibt an,dass Amazon EMR einen KDCauf dem Master-Knoten einesjeden Clusters erstellt, der dieseSicherheitskonfiguration verwendet.Sie geben beim Erstellen des Clustersden Bereichsnamen und das KDC-Administratorpasswort an. Sie könnendiesen KDC bei Bedarf von anderenClustern aus referenzieren. ErstellenSie solche Cluster mit einer anderenSicherheitskonfiguration, geben Sieeinen externen KDC an und verwendenSie den Bereichsnamen und dasKDC-Administratorpasswort, dass Sieangegeben haben, als Sie den Clustermit dem Cluster-dedizierten KDC erstellthaben.

ExternalKdc gibt an, dass der Clustereinen externen KDC verwendet. AmazonEMR erstellt keinen KDC auf demMaster-Knoten. Ein Cluster, der dieseSicherheitskonfiguration verwendet,muss den Bereichsnamen und das KDC-Administratorpasswort für den externenKDC verwenden.

"ClusterDedicatedKdcConfiguration":{

Erforderlich, wennClusterDedicatedKdc angegebenist.

"TicketLifetimeInHours":24,

Optional. Gibt den Zeitraum an, für denein Kerberos-Ticket, das vom KDCausgegeben wird, auf Clustern gültigist, die diese Sicherheitskonfigurationverwenden.

Ticket-Gültigkeitsdauern werden ausSicherheitsgründen beschränkt. Cluster-Anwendungen und -Services verlängernTickets automatisch, wenn sie ablaufen.Benutzer, die eine Verbindung mit

200

Page 208: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Parameter Beschreibungdem Cluster über SSH mit Kerberos-Anmeldeinformationen einrichten,müssen kinit von der Befehlszeile desMaster-Knoten aus ausführen, um eineVerlängerung auszuführen, nachdem einTicket abgelaufen ist.

"CrossRealmTrustConfiguration":{

Gibt eine bereichsübergreifendeVertrauensstellung zwischen einemCluster-dedizierten KDC auf Clustern an,die diese Sicherheitskonfiguration undeinen KDC in einem anderen Kerberos-Bereich verwenden.

Prinzipale (in der Regel Benutzer)aus einem anderen Bereich werdenin Clustern authentifiziert, die dieseKonfiguration verwenden. Einezusätzliche Konfiguration im anderenKerberos-Bereich ist erforderlich.Weitere Informationen finden Sieunter Tutorial: Configure a Cross-Realm Trust with an Active DirectoryDomain (p. 287).

"Realm":"KDC2.COM",

Gibt den Kerberos-Bereichsnamendes anderen Bereichs in derVertrauensstellung an. GemäßKonvention sind Kerberos-Bereichsnamen mit demDomänennamen identisch, werdenaber komplett in Großbuchstabengeschrieben.

"Domain":"kdc2.com",

Gibt den Domain-Namen des anderenBereichs in der Vertrauensstellung an.

"AdminServer":"kdc.com:749",

Gibt den vollständig qualifiziertenDomänennamen (FQDN, Fully QualifiedDomain Name) oder die IP-Adressedes Admin-Servers im anderen Bereichder Vertrauensstellung an. Der Admin-Server und KDC-Server werdennormalerweise auf demselben Rechnermit demselben FQDN ausgeführt,kommunizieren jedoch über anderePorts.

Falls kein Port angegeben ist,wird Port 749 verwendet, da esdabei um den Kerberos-Standardhandelt. Sie können optional einenPort angeben (beispielsweisedomain.example.com:749).

201

Page 209: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Parameter Beschreibung

"KdcServer":"kdc.com:88"

Gibt den vollqualifiziertenDomänennamen (FQDN) oder die IP-Adresse des KDC-Servers im anderenBereich der Vertrauensstellung an.Der KDC-Server und der Admin-Server werden normalerweise aufderselben Maschine mit demselbenFQDN ausgeführt, für sie werden jedochandere Ports verwendet.

Falls kein Port angegeben ist,wird Port 88 verwendet, da esdabei um den Kerberos-Standardhandelt. Sie können optional einenPort angeben (beispielsweisedomain.example.com:88).

}

}

"ExternalKdcConfiguration": { Erforderlich, wenn ExternalKdcangegeben ist.

"TicketLifetimeInHours":24,

Optional. Gibt den Zeitraum an, für denein Kerberos-Ticket, das vom KDCausgegeben wird, auf Clustern gültigist, die diese Sicherheitskonfigurationverwenden.

Ticket-Gültigkeitsdauern werden ausSicherheitsgründen beschränkt. Cluster-Anwendungen und -Services verlängernTickets automatisch, wenn sie ablaufen.Benutzer, die eine Verbindung mitdem Cluster über SSH mit Kerberos-Anmeldeinformationen einrichten,müssen kinit von der Befehlszeile desMaster-Knoten aus ausführen, um eineVerlängerung auszuführen, nachdem einTicket abgelaufen ist.

"KdcServerType":"Single",

Gibt an, dass ein einzelner KDC-Serverreferenziert wird. Single ist derzeit dereinzige Wert, der unterstützt wird.

202

Page 210: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Parameter Beschreibung

"AdminServer":"kdc.com:749",

Gibt den vollqualifiziertenDomänennamen (FQDN) oder dieIP-Adresse des externen Admin-Servers an. Der Admin-Server undKDC-Server werden normalerweise aufdemselben Rechner mit demselbenFQDN ausgeführt, kommunizierenjedoch über andere Ports.

Falls kein Port angegeben ist,wird Port 749 verwendet, da esdabei um den Kerberos-Standardhandelt. Sie können optional einenPort angeben (beispielsweisedomain.example.com:749).

"KdcServer": "kdc.com:88", Gibt den vollqualifiziertenDomänennamen (FQDN) des externenKDC-Servers an. Der KDC-Serverund der Admin-Server werdennormalerweise auf derselben Maschinemit demselben FQDN ausgeführt, für siewerden jedoch andere Ports verwendet.

Falls kein Port angegeben ist,wird Port 88 verwendet, da esdabei um den Kerberos-Standardhandelt. Sie können optional einenPort angeben (beispielsweisedomain.example.com:88).

"AdIntegrationConfiguration":{

Gibt an, dass die Kerberos-Hauptauthentifizierung in eine MicrosoftActive Directory-Domäne integriert ist.

"AdRealm":"AD.DOMAIN.COM",

Gibt den Kerberos-Bereichsnamender Active Directory-Domäne an.Gemäß Konvention sind Kerberos-Bereichsnamen in der Regel mit demDomänennamen identisch, werdenaber komplett in Großbuchstabengeschrieben.

"AdDomain":"ad.domain.com"

Gibt den Active Directory-Domänennamen an.

}

}

}

}

203

Page 211: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideErstellen einer Sicherheitskonfiguration

Konfigurieren von IAM-Rollen für EMRFS-Anfragen an AmazonS3Mit IAM-Rollen für EMRFS können Sie unterschiedliche Berechtigungen für EMRFS-Daten in Amazon S3bereitstellen. Sie erstellen Rollenzuordnungen, die eine IAM-Rolle spezifizieren, die für Berechtigungenverwendet wird, wenn eine Zugriffsanforderung eine von Ihnen angegebene Kennung enthält. Bei der IDkann es sich um einen Hadoop-Benutzer oder eine Hadoop-Rolle oder ein Amazon S3-Präfix handeln.

Weitere Informationen finden Sie im Configure IAM Roles for EMRFS Requests to Amazon S3 (p. 244).

Angeben von IAM-Rollen für EMRFS über die AWS CLI

Es folgt ein Beispiel-JSON-Snippet für die Angabe benutzerdefinierter IAM-Rollen für EMRFS innerhalbeiner Sicherheitskonfiguration. Es veranschaulicht Rollenzuordnungen für die drei verschiedenen ID-Typen,gefolgt von einer Parameterreferenz.

{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1", "IdentifierType": "User", "Identifiers": [ "user1" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } }}

Parameter Beschreibung

"AuthorizationConfiguration": Erforderlich.

"EmrFsConfiguration": Erforderlich. Enthält Rollenzuordnungen.

"RoleMappings": Erforderlich. Enthält mindestens eineRollenzuordnungsdefinition. Rollenzuordnungenwerden von oben nach unten in der angezeigtenReihenfolge ausgewertet. Wenn eineRollenzuordnung für einen EMRFS-Aufruf vonDaten bei Amazon S3 als TRUE bewertet wird,werden keine weiteren Rollenzuordnungenbewertet. EMRFS verwendet die angegebene IAM-Rolle für die Anforderung. Rollenzuordnungenbestehen aus den folgenden erforderlichenParametern:

"Role": Gibt den ARN-Identifier einer IAM-Rolle im Formatarn:aws:iam::account-id:role/role-name an. Das ist die IAM-Rolle, die AmazonEMR annimmt, wenn die EMRFS-Anforderung

204

Page 212: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngabe einer Sicherheitskonfiguration für einen Cluster

Parameter Beschreibungan Amazon S3 einem der angegebenenIdentifiers entspricht.

"IdentifierType": Kann eines der folgenden Elemente sein:

• "User" gibt an, dass es sich bei den IDs ummindestens einen Hadoop-Benutzer handelt,der Linux-Kontobenutzer oder Kerberos-Prinzipal sein kann. Wenn die EMRFS-Anfrage vom angegebenen Benutzer oder denangegebenen Benutzern stammt, wird die IAM-Rolle angenommen.

• "Prefix" gibt an, dass es sich beim Identifierum einen Amazon S3-Speicherort handelt. DieIAM-Rolle wird für Aufrufe am Standort oderan Standorten mit den angegebenen Präfixenangenommen. Beispiel: Das Präfix s3://mybucket/ stimmt mit s3://mybucket/mydir und s3://mybucket/yetanotherdirüberein.

• "Group" gibt an, dass es sich bei den IDs ummindestens eine Hadoop-Gruppe handelt. DieIAM-Rolle wird angenommen, wenn die Anfragevon einem Benutzer in der angegebenen Gruppeoder den angegebenen Gruppen stammt.

"Identifiers": Legt einen oder mehrere IDs des entsprechendenID-Typs fest. Trennen Sie mehrere IDs durchKommas ohne Leerzeichen.

Angabe einer Sicherheitskonfiguration für einenClusterSie können bei der Erstellung eines Clusters die Verschlüsselungseinstellungen festlegen, indem Sieeine Sicherheitskonfiguration angeben. Sie können die AWS Management Console oder die AWS CLIverwenden.

Festlegen einer Sicherheitskonfiguration mithilfe der KonsoleBei der Verwendung der AWS Konsole erstellen, um einen EMR-Cluster zu erstellen, wählen Sie dieSicherheitskonfiguration während Schritt 4: Sicherheit des erweiterten Optionierungsprozesses.

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create Cluster (Cluster erstellen) und Go to advanced options (Zu erweiterten Optionen)

aus.3. AmSchritt 1: Software und Schritte Bildschirm Freigeben Liste, wählen Sie EMR-4.8.0 oder eine

neuere Version. Wählen Sie die gewünschten Einstellungen aus und klicken Sie auf Next (Weiter).4. Am Schritt 2: Hardware wählen Sie die gewünschten Einstellungen und wählen Sie Nächstes.

Dasselbe tun für Schritt 3: Allgemeine Cluster-Einstellungen.5. Am Schritt 4: Sicherheit Bildschirm, unter Verschlüsselungsoptionen, wählen Sie einen Wert für

Sicherheitskonfiguration.

205

Page 213: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideDatenschutz

6. Wählen Sie weitere Sicherheitsoptionen wie gewünscht und wählen Sie anschließend Create cluster(Cluster erstellen) aus.

Festlegen einer Sicherheitskonfiguration mithilfe der CLIWenn Sie aws emr create-cluster verwenden, können Sie mithilfe von --security-configuration MySecConfig wahlweise eine Sicherheitskonfiguration verwenden, wobeiMySecConfig der Name der Sicherheitskonfiguration ist, wie im folgenden Beispiel dargestellt. Derangegebene --release-label muss 4.8.0 oder höher sein und als --instance-type kann jederverfügbare Typ ausgewählt werden.

aws emr create-cluster --instance-type m5.xlarge --release-label emr-5.0.0 --security-configuration mySecConfig

Datenschutz in Amazon EMRDasModell der übergreifenden Verantwortlichkeit von AWS gilt für den Datenschutz in Amazon EMR.Wie in diesem Modell beschrieben, ist AWS verantwortlich für den Schutz der globalen Infrastruktur, aufder die gesamte AWS-Cloud ausgeführt wird. Sie sind dafür verantwortlich, die Kontrolle über Ihre indieser Infrastruktur gehosteten Inhalte zu behalten. Dieser Inhalt enthält die Sicherheitskonfigurations-und Verwaltungsaufgaben für die von Ihnen verwendeten AWS-Services. Weitere Informationen zumDatenschutz finden Sie in den FAQ zum Datenschutz. Informationen über den Datenschutz in Europafinden Sie im Blog-Beitrag AWS-Modell der übergreifende Verantwortlichkeit und die DSGVO im Blog zurAWS-Sicherheit.

Wir empfehlen aus Gründen des Datenschutzes, dass Sie AWS-Anmeldeinformationen schützen unddie Benutzerkonten jeweils mit AWS Identity and Access Management (IAM) einrichten. So erhält jederBenutzer nur die Berechtigungen, die zum Durchführen seiner Aufgaben erforderlich sind. Außerdemsollten Sie die Daten mit folgenden Methoden schützen:

• Verwenden Sie für jedes Konto die Multi-Factor Authentication (MFA).• Verwenden Sie SSL/TLS für die Kommunikation mit AWS-Ressourcen. Wir empfehlen TLS 1.2 oder

höher.• Richten Sie die API und die Protokollierung von Benutzeraktivitäten mit AWS CloudTrail ein.• Verwenden Sie AWS-Verschlüsselungslösungen zusammen mit allen Standardsicherheitskontrollen in

AWS-Services.• Verwenden Sie erweiterte verwaltete Sicherheits-Services wie Amazon Macie, um Unterstützung bei der

Erkennung und beim Schutz von persönlichen Daten zu erhalten, die in Amazon S3 gespeichert sind.• Wenn Sie über eine Befehlszeilenschnittstelle oder eine API auf AWS zugreifen und mit FIPS 140-2

validierte kryptografische Module dafür benötigen, verwenden Sie einen FIPS-Endpunkt. WeitereInformationen über verfügbare FIPS-Endpunkte finden Sie unter Federal Information ProcessingStandard (FIPS) 140-2.

Wir empfehlen dringend, in Freitextfeldern wie z. B. im Feld Name keine sensiblen, identifizierendenInformationen wie Kontonummern von Kunden einzugeben. Dies gilt auch, wenn Sie mit AmazonEMR oder anderen AWS-Services unter Verwendung von Konsole, API, AWS CLI oder AWS-SDKsarbeiten. Alle Daten, die Sie in Amazon EMR oder andere Services eingeben, werden möglicherweise inDiagnoseprotokolle aufgenommen. Wenn Sie eine URL für einen externen Server bereitstellen, schließenSie keine Anmeldeinformationen zur Validierung Ihrer Anforderung an den betreffenden Server in die URLein.

206

Page 214: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerschlüsseln von Daten im Ruhezustand und im Transit

Verschlüsseln von Daten im Ruhezustand und imTransitDie Datenverschlüsselung verhindert, dass nicht autorisierte Benutzer Daten auf einem Cluster und in dendazugehörigen Datenspeichersystemen lesen können. Dies gilt für auf persistenten Medien gespeicherteDaten, auch als Daten im Ruhezustand bezeichnet, und für Daten, die während der Übertragung imNetzwerk möglicherweise abgefangen werden, auch als Daten während der Übertragung bezeichnet.

Ab Amazon EMR-Version 4.8.0 können Sie mit Amazon EMR-SicherheitskonfigurationenDatenverschlüsselungseinstellungen für Cluster einfacher konfigurieren. Sicherheitskonfigurationen stellenEinstellungen bereit, um die Sicherheit von Daten während der Übertragung und im Ruhezustand inAmazon Elastic Block Store (Amazon EBS)-Volumes und EMRFS in Amazon S3 zu unterstützen.

Optional können Sie ab Amazon EMR Version 4.1.0 und höher eine transparente Verschlüsselung inHDFS konfigurieren, die nicht unter Verwendung von Sicherheitskonfigurationen konfiguriert ist. WeitereInformationen finden Sie unter Transparente Verschlüsselung in HDFS in Amazon EMR im Amazon EMR-Versionshinweise.

Themen• Verschlüsselungsoptionen (p. 207)• Schlüssel und Zertifikate für die Datenverschlüsselung erstellen (p. 212)

VerschlüsselungsoptionenAb der Amazon EMR-Version 4.8.0 können Sie eine Sicherheitskonfiguration verwenden, um Einstellungenfür die Verschlüsselung von Daten im Ruhezustand, Daten bei der Übertragung oder beides anzugeben.Wenn Sie die Verschlüsselung von Daten im Ruhezustand aktivieren, können Sie wählen, ob Sie EMRFS-Daten in Amazon S3, Daten auf lokalen Festplatten oder auf beide Weisen verschlüsseln möchten. Jedevon Ihnen erstellte Sicherheitskonfiguration wird in Amazon EMR und nicht in der Cluster-Konfigurationgespeichert. Daher können Sie die Konfiguration bei jeder Cluster-Erstellung problemlos wiederverwenden,um die Datenverschlüsselung zu konfigurieren. Weitere Informationen finden Sie im Erstellen einerSicherheitskonfiguration (p. 187).

Das folgende Diagramm zeigt die verschiedenen Datenverschlüsselungsoptionen, die für dieSicherheitskonfigurationen zur Verfügung stehen.

207

Page 215: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerschlüsseln von Daten im Ruhezustand und im Transit

Die folgenden Verschlüsselungsoptionen stehen ebenfalls zur Verfügung und werden nicht mit einerSicherheitskonfiguration konfiguriert:

• Optional können Sie mit Amazon EMR-Versionen 4.1.0 und höher eine transparente Verschlüsselung inHDFS konfigurieren. Weitere Informationen finden Sie unter Transparente Verschlüsselung in HDFS inAmazon EMR im Amazon EMR-Versionshinweise.

• Wenn Sie eine Version von Amazon EMR verwenden, die Sicherheitskonfigurationen nichtunterstützt, können Sie die Verschlüsselung für EMRFS-Daten in Amazon S3 manuell konfigurieren.Weitere Informationen finden Sie im Angeben der Amazon S3-Verschlüsselung mit EMRFS-Eigenschaften (p. 108).

• Wenn Sie eine Amazon EMR-Version vor 5.24.0 verwenden, wird ein verschlüsseltes EBS-Root-Volumenur unterstützt, wenn Sie ein benutzerdefiniertes AMI verwenden. Weitere Informationen finden Sieunter Erstellen eines benutzerdefinierten AMI mit einem verschlüsselten Amazon EBS-Root-Volume imManagement Guide für Amazon EMR.

Note

Ab Version 5.24.0 von Amazon EMR können Sie eine Sicherheitskonfigurationsoption zumVerschlüsseln der EBS-Root-Gerät-Datenträger und Speichervolumes verwenden, wenn Sie als

208

Page 216: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerschlüsseln von Daten im Ruhezustand und im Transit

Schlüsselanbieter AWS KMS angeben. Weitere Informationen finden Sie unter Verschlüsselunglokaler Datenträger (p. 210).

Die Datenverschlüsselung erfordert Aktivierungsschlüssel und Zertifikate. Eine Sicherheitskonfigurationermöglicht Ihnen die Wahl zwischen verschiedenen Optionen, einschließlich Schlüsseln, die vonAWS Key Management Service verwaltet werden, Schlüsseln, die von Amazon S3 verwaltet werden,sowie Schlüsseln und Zertifikaten, die von Anbietern bereitgestellt werden, die Sie angeben. WennSie AWS KMS als Ihren Schlüsselanbieter auswählen, fallen für die Speicherung und Nutzung derVerschlüsselungsschlüssel Gebühren an. Weitere Informationen finden Sie unter AWS KMS-Preise.

Bevor Sie die Verschlüsselungsoptionen angeben, legen Sie fest, welche VerwaltungssystemeSie für die Schlüssel und Zertifikate verwenden möchten. Auf diese Weise können Sie zunächstdie Schlüssel und Zertifikate bzw. die von Ihnen bestimmten Anbieter erstellen, die Sie als Teil derVerschlüsselungseinstellungen verwenden möchten.

Verschlüsselung im Ruhezustand von EMRFS-Daten in Amazon S3

Die Amazon S3-Verschlüsselung funktioniert mit EMR File System (EMRFS)-Objekten, die aus Amazon S3gelesen und in Amazon S3 geschrieben werden. Sie geben serverseitige (SSE) oder clientseitige (CSE)Amazon S3-Verschlüsselung als Standardverschlüsselungsmodus an, wenn Sie die Verschlüsselungim Ruhezustand aktivieren. Optional können Sie verschiedene Verschlüsselungsmethoden für einzelneBuckets mithilfe von Per bucket encryption overrides (Bucket-weises Überschreiben der Verschlüsselung)angeben. Unabhängig davon, ob Amazon S3-Verschlüsselung aktiviert ist, verschlüsselt Transport LayerSecurity (TLS) EMRFS-Objekte bei der Übertragung zwischen EMR-Cluster-Knoten und Amazon S3.Detaillierte Informationen zur Amazon S3-Verschlüsselung finden Sie unter Schutz von Daten durchVerschlüsselung im Entwicklerhandbuch für Amazon Simple Storage Service.

Note

Wenn Sie AWS KMS auswählen, fallen für die Speicherung und Nutzung derVerschlüsselungsschlüssel Gebühren an. Weitere Informationen finden Sie unter AWS KMS –Preise.

Serverseitige Amazon S3-Verschlüsselung

Wenn Sie serverseitige Verschlüsselung in Amazon S3 einrichten, verschlüsselt Amazon S3 die Datenauf der Objektebene, während die Daten auf den Datenträger geschrieben werden, und entschlüsselt sie,wenn auf sie zugegriffen wird. Weitere Informationen über SSE finden Sie unter Schutz von Daten mitserverseitiger Verschlüsselung im Entwicklerhandbuch für Amazon Simple Storage Service.

Wenn Sie SSE in Amazon EMR einrichten, haben Sie die Wahl zwischen zwei verschiedenen Systemen fürdie Schlüsselverwaltung:

• SSE-S3 – Amazon S3 verwaltet die Schlüssel für Sie.• SSE-KMS – Hierbei verwenden Sie einen AWS KMS-Kundenmasterschlüssel (Customer Master

Key, CMK), dessen Richtlinien für Amazon EMR angepasst sind. Weitere Informationen zuden Schlüsselanforderungen für Amazon EMR finden Sie unter Verwenden von AWS KMS-Kundenmasterschlüsseln (CMKs) für die Verschlüsselung (p. 212).

SSE mit vom Kunden bereitgestellten Schlüsseln (SSE-C) ist für Amazon EMR nicht verfügbar.

Clientseitige Amazon S3-Verschlüsselung

Bei Client-seitiger Verschlüsselung von Amazon S3 erfolgt der Amazon S3-Ver- undEntschlüsselungsvorgang im EMRFS-Client auf Ihrem Cluster. Objekte werden vor dem Hochladennach Amazon S3 verschlüsselt und nach dem Herunterladen entschlüsselt. Der von Ihnen festgelegteAnbieter stellt den vom Client verwendeten Verschlüsselungsschlüssel bereit. Der Client kann vom AWSKMS bereitgestellte Schlüssel (CSE-KMS) oder eine benutzerdefinierte Java-Klasse verwenden, die den

209

Page 217: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerschlüsseln von Daten im Ruhezustand und im Transit

clientseitigen Masterschlüssel (CSE-C) bereitstellt. Die Verschlüsselungseigenschaften unterscheidensich geringfügig zwischen CSE-KMS und CSE-C, abhängig vom festgelegten Anbieter und von denMetadaten des Objekts, das entschlüsselt oder verschlüsselt werden soll. Weitere Informationen über dieseUnterschiede finden Sie unter Protecting Data Using Client-Side Encryption im Entwicklerhandbuch fürAmazon Simple Storage Service.

Note

Amazon S3-CSE stellt nur sicher, dass EMRFS-Daten, die mit Amazon S3 ausgetauscht werden,verschlüsselt sind. Nicht alle Daten auf den Cluster-Instance-Volumes werden verschlüsselt. DaHue EMRFS nicht verwendet, werden darüber hinaus Objekte, die vom Hue S3-Dateibrowser inAmazon S3 geschrieben werden, nicht verschlüsselt.

Verschlüsselung lokaler Datenträger

Die folgenden Mechanismen arbeiten zusammen, um lokale Datenträger zu verschlüsseln, wenn Sie dielokale Laufwerksverschlüsselung mithilfe einer Amazon EMR-Sicherheitskonfiguration aktivieren.

Open-Source-HDFS-Verschlüsselung

HDFS tauscht im Rahmen der verteilten Verarbeitung Daten zwischen Cluster-Instances aus. Außerdemwerden Daten aus Instance-Speicher-Volumes und die an Instances angehängten EBS-Volumes gelesenund in sie geschrieben. Wenn Sie die lokale Laufwerksverschlüsselung aktivieren, werden die folgendenOpen-Source-Hadoop-Verschlüsselungsoptionen aktiviert:

• Secure Hadoop RPC ist auf die Option Privacy festgelegt, die Simple Authentication Security Layer(SASL) verwendet.

• Datenverschlüsselung für HDFS-Block-Datenübertragungen ist auf true festgelegt und für dieVerwendung der AES 256-Verschlüsselung konfiguriert.

Note

Sie können zusätzlich die Apache Hadoop-Verschlüsselung verwenden, indem Sie dieVerschlüsselung während der Übertragung aktivieren (siehe Verschlüsselung während derÜbertragung (p. 211)). Diese Verschlüsselungseinstellungen aktivieren die transparente HDFS-Verschlüsselung nicht, Sie können sie jedoch manuell konfigurieren. Weitere Informationenfinden Sie unter Transparente Verschlüsselung in HDFS in Amazon EMR im Amazon EMR-Versionshinweise.

Instance-Speicher-Verschlüsselung

Bei EC2-Instance-Typen, die NVMe-basiertes SSDs als Instance-Speicher-Volume verwenden, wird dieNVMe-Verschlüsselung unabhängig von den Amazon EMR-Verschlüsselungseinstellungen verwendet.Weitere Informationen finden Sie unter NVMe-SSD-Volumes im Amazon EC2-Benutzerhandbuch für Linux-Instances. Für andere Instance-Speicher-Volumes verwendet Amazon EMR unabhängig davon, ob EBS-Volumes mit der EBS-Verschlüsselung oder LUKS verschlüsselt werden, LUKS zum Verschlüsseln desInstance-Speicher-Volumes, wenn die lokale Laufwerksverschlüsselung aktiviert ist.

EBS-Volume-Verschlüsselung

Wenn Sie einen Cluster in einer Region erstellen, in der die Amazon EC2-Verschlüsselung von EBS-Volumes standardmäßig für Ihr Konto aktiviert ist, werden EBS-Volumes auch dann verschlüsselt,wenn die lokale Laufwerksverschlüsselung nicht aktiviert ist. Weitere Informationen finden Sie unterStandardverschlüsselung im Amazon EC2-Benutzerhandbuch für Linux-Instances. Wenn die lokaleLaufwerksverschlüsselung in einer Sicherheitskonfiguration aktiviert ist, haben die Amazon EMR-Einstellungen Vorrang vor den standardmäßigen Amazon EC2-Verschlüsselungseinstellungen für Cluster-EC2-Instances.

210

Page 218: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerschlüsseln von Daten im Ruhezustand und im Transit

Die folgenden Optionen stehen zum Verschlüsseln von EBS-Volumes mithilfe einerSicherheitskonfiguration zur Verfügung:

• EBS-Verschlüsselung: Ab Amazon EMR-Version 5.24.0 können Sie die EBS-Verschlüsselung aktivieren.Die EBS-Verschlüsselungsoption verschlüsselt das EBS-Root-Volume und die angefügten Speicher-Volumes. Die EBS-Verschlüsselungsoption ist nur verfügbar, wenn Sie AWS Key Management Serviceals Schlüsselanbieter angeben. Wir empfehlen die Verwendung der EBS-Verschlüsselung.

• LUKS-Verschlüsselung: Wenn Sie die LUKS-Verschlüsselung für Amazon EBS-Volumes verwenden,gilt die LUKS-Verschlüsselung nur für angefügte Speicher-Volumes, nicht für das Root-Volume. WeitereInformationen zur LUKS-Verschlüsselung finden Sie unter LUKS-Datenträger-Spezifikation.

Als Schlüsselanbieter können Sie einen AWS KMS-Kundenmasterschlüssel (CMK, Cutomer Master Key)mit für Amazon EMR geeigneten Richtlinien oder eine benutzerdefinierte Java-Klasse einrichten, diedie Verschlüsselungsartefakte bereitstellt. Wenn Sie AWS KMS auswählen, fallen für die Speicherungund Nutzung der Verschlüsselungsschlüssel Gebühren an. Weitere Informationen finden Sie unter AWSKMS-Preise.

Note

Um zu überprüfen, ob die EBS-Verschlüsselung auf Ihrem Cluster aktiviert ist, wird empfohlen,den DescribeVolumes API-Aufruf zu verwenden. Weitere Informationen finden Sie unterDescribeVolumes. Wenn Sie lsblk auf dem Cluster ausführen, wird nur der Status der LUKS-Verschlüsselung anstelle der EBS-Verschlüsselung überprüft.

Verschlüsselung während der Übertragung

Bei der Verschlüsselung während der Übertragung sind mehrere Verschlüsselungsmechanismenaktiviert. Dabei handelt es sich um Open-Source-Funktionen, die anwendungsspezifisch sind und je nachAmazon EMR-Version variieren können. Mithilfe von Sicherheitskonfigurationen können die folgendenanwendungsspezifischen Verschlüsselungsfunktionen aktiviert werden:

• Hadoop (weitere Informationen finden Sie unter Hadoop in Secure Mode in der Apache Hadoop-Dokumentation):• Hadoop MapReduce Encrypted Shuffle verwendet TLS.• Secure Hadoop RPC ist auf „Privacy (Datenschutz)“ festgelegt und verwendet SASL (in Amazon EMR

aktiviert, wenn die Verschlüsselung von Daten im Ruhezustand aktiviert ist).• Data encryption on HDFS block data transfer verwendet AES 256 (in Amazon EMR aktiviert, wenn in

der Sicherheitskonfiguration die Verschlüsselung von Daten im Ruhezustand aktiviert ist).• HBase:

• Wenn Kerberos aktiviert ist, wird die hbase.rpc.protection-Eigenschaft für verschlüsselteKommunikation auf privacy gesetzt. Weitere Informationen finden Sie unter Client-side Configurationfor Secure Operation in der Apache HBase-Dokumentation. Weitere Informationen über Kerberos mitAmazon EMR finden Sie unter Use Kerberos Authentication (p. 265).

• Presto:• Die interne Kommunikation zwischen Presto-Knoten verwendet SSL/TLS (nur Amazon EMR-Version

5.6.0 und höher).• Tez:

• Tez Shuffle Handler verwendet TLS (tez.runtime.ssl.enable).• Spark (weitere Informationen finden Sie unter Spark security settings):

• Interne RPC-Kommunikationen zwischen Spark-Komponenten, z. B. dem Blocktransferdienst unddem externen Shuffle-Service, werden in Amazon EMR Version 5.9.0 und höher mit der AES-256-Bit-Verschlüsselung verschlüsselt. In früheren Versionen werden interne RPC-Kommunikationen mithilfedes Verschlüsselungsverfahrens SASL mit DIGEST-MD5 verschlüsselt.

211

Page 219: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerschlüsseln von Daten im Ruhezustand und im Transit

• HTTP-Protokollkommunikationen mit Benutzeroberflächen wie Spark History Server und HTTPS-fähigen Dateiservern werden mithilfe der SSL-Konfiguration von Spark verschlüsselt. WeitereInformationen finden Sie unter SSL Configuration in der Spark-Dokumentation.

Für die Verwendung der Verschlüsselungsartefakte bei der Verschlüsselung von Daten während derÜbertragung stehen Ihnen zwei Optionen zur Verfügung: die Bereitstellung einer ZIP-Datei mit denZertifikaten, die Sie auf Amazon S3 hochladen, oder der Verweis auf eine benutzerdefinierte Java-Klasse, die Verschlüsselungsartefakte bereitstellt. Weitere Informationen finden Sie im Bereitstellenvon Zertifikaten für die Verschlüsselung von Daten während der Übertragung mit der Amazon EMR-Verschlüsselung (p. 215).

Schlüssel und Zertifikate für die Datenverschlüsselung erstellenBevor Sie Verschlüsselungsoptionen unter Verwendung einer Sicherheitskonfiguration angeben, legen Siezunächst den Anbieter der Schlüssel und Verschlüsselungsartefakte fest. Sie können beispielsweise AWSKMS oder einen benutzerdefinierten, von Ihnen erstellten Anbieter verwenden. Erstellen Sie als Nächstesdie erforderlichen Schlüssel oder den Schlüsselanbieter, wie in diesem Abschnitt beschrieben.

Bereitstellen von Schlüsseln für die Verschlüsselung von Daten im Ruhezustandmit Amazon EMR

Sie können AWS Key Management Service (AWS KMS) oder einen benutzerdefinierten Schlüsselanbieterfür die Verschlüsselung von Daten im Ruhezustand in Amazon EMR verwenden. Wenn Sie AWS KMSauswählen, fallen für die Speicherung und Nutzung der Verschlüsselungsschlüssel Gebühren an. WeitereInformationen finden Sie unter AWS KMS-Preise.

In diesem Thema finden Sie wichtige Richtliniendetails für AWS KMS-CMKs zur Verwendung mitAmazon EMR sowie Anleitungen und Codebeispiele für das Schreiben einer benutzerdefiniertenSchlüsselanbieterklasse für die Amazon S3-Verschlüsselung. Weitere Informationen zum Erstellen vonSchlüsseln finden Sie unter Erstellen von Schlüsseln im AWS Key Management Service Developer Guide.

Verwenden von AWS KMS-Kundenmasterschlüsseln (CMKs) für die Verschlüsselung

Der AWS KMS-Verschlüsselungsschlüssel muss in derselben Region erstellt werden wie die AmazonEMR-Cluster-Instance und die Amazon S3-Buckets, die mit EMRFS verwendet werden. Wenn derangegebene Schlüssel sich in einem anderen Konto befindet als der, mit dem Sie Cluster konfigurieren,müssen sie den Schlüssel anhand seines ARN angeben.

Die Rolle für das Amazon EC2-Instance-Profil muss über Berechtigungen zur Verwendungdes angegebenen CMK verfügen. Die Standardrolle für das Instance-Profil in Amazon EMR istEMR_EC2_DefaultRole. Wenn Sie eine andere Rolle für das Instance-Profil verwenden oder IAM-Rollen für EMRFS-Anforderungen an Amazon S3 verwenden, müssen Sie sicherstellen, dass jedeRolle entsprechend als Schlüsselbenutzer hinzugefügt wird. So erhält die Rolle Berechtigungen zurVerwendung des CMK. Weitere Informationen finden Sie unter Verwenden von Schlüsselrichtlinien im AWSKey Management Service Developer Guide und Service Role for Cluster EC2 Instances (EC2 InstanceProfile) (p. 229).

Mithilfe der AWS Management Console können Sie Ihr Instance-Profil oder EC2-Instance-Profil zur Listeder Schlüsselbenutzer für den angegebenen AWS KMS-CMK hinzufügen oder Sie können die AWS CLIoder ein AWS SDK verwenden, um eine entsprechende Schlüsselrichtlinie anzufügen.

Im folgenden Verfahren wird beschrieben, wie Sie das Standard-EMR-Instance-ProfilEMR_EC2_DefaultRole als Schlüsselbenutzer mithilfe der AWS Management Console hinzufügen. Dabeiwird davon ausgegangen, dass Sie bereits einen CMK erstellt haben. Weitere Informationen über dieErstellung eines neuen CMK finden Sie unter Erstellen von Schlüsseln im AWS Key Management ServiceDeveloper Guide.

212

Page 220: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerschlüsseln von Daten im Ruhezustand und im Transit

So fügen Sie das EC2-Instance-Profil für Amazon EMR zur Liste der Benutzer vonVerschlüsselungsschlüsseln hinzu:

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS Key ManagementService(AWS KMS)-Konsole unter https://console.aws.amazon.com/kms.

2. Um die AWS-Region zu ändern, verwenden Sie die Regionenauswahl in der oberen rechten Ecke derSeite.

3. Wählen Sie den Alias des zu ändernden CMK aus.4. Wählen Sie auf der Seite mit den Schlüsseldetails unter Key Users (Schlüsselbenutzer) die Option Add

(Hinzufügen) aus.5. Wählen Sie die entsprechende Rolle im Dialogfeld Add key users (Schlüsselbenutzer hinzufügen) aus.

Der Name der Standardrolle lautet EMR_EC2_DefaultRole.6. Wählen Sie Add aus.

Aktivieren der EBS-Verschlüsselung durch Bereitstellen zusätzlicher Berechtigungen für AWSKMS CMKs

Ab Amazon EMR Version 5.24.0 können Sie EBS-Root-Volumes und Speicher-Volumes mithilfe einerSicherheitskonfigurationsoption verschlüsseln. Um eine solche Option zu aktivieren, müssen Sie AWS KMSals Schlüsselanbieter angeben. Darüber hinaus müssen Sie der EMR-Servicerolle EMR_DefaultRoleBerechtigungen zur Verwendung des von Ihnen angegebenen Kundenmasterschlüssels (CMK) erteilen.

Sie können mit der AWS Management Console die EC2-Servicerolle der Liste der Schlüsselbenutzerfür den angegebenen AWS KMS-CMK hinzufügen. Alternativ können Sie AWS CLI oder ein AWS-SDKverwenden, um eine entsprechende Schlüsselrichtlinie anzufügen.

Im folgenden Verfahren wird beschrieben, wie Sie die Standard-EMR-Servicerolle EMR_DefaultRole alsSchlüsselbenutzer über die AWS Management Console hinzufügen. Dabei wird davon ausgegangen, dassSie bereits einen CMK erstellt haben. Weitere Informationen über die Erstellung eines neuen CMK findenSie unter Erstellen von Schlüsseln im AWS Key Management Service Developer Guide.

So fügen Sie der Liste der Verschlüsselungsschlüsselbenutzer eine EMR-Servicerolle hinzu

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS Key ManagementService(AWS KMS)-Konsole unter https://console.aws.amazon.com/kms.

2. Um die AWS-Region zu ändern, verwenden Sie die Regionenauswahl in der oberen rechten Ecke derSeite.

3. Wählen Sie den Alias des zu ändernden CMK aus.4. Wählen Sie auf der Seite mit den Schlüsseldetails unter Key Users (Schlüsselbenutzer( die Option Add

(Hinzufügen) aus.5. Wählen Sie die entsprechende Rolle im Dialogfeld Add key users (Schlüsselbenutzer hinzufügen) aus.

Der Name der Standard-EMR-Servicerolle lautet EMR_DefaultRole.6. Wählen Sie Add (Hinzufügen) aus.

Erstellen eines benutzerdefinierten Schlüsselanbieters

Wenn Sie eine Sicherheitskonfiguration verwenden, müssen Sie einen anderen Anbieterklassennamen fürdie Verschlüsselung lokaler Datenträger und die Amazon S3-Verschlüsselung angeben.

Wenn Sie einen benutzerdefinierten Schlüsselanbieter erstellen, implementiert die Anwendung dieEncryptionMaterialsProvider-Schnittstelle, die in AWS SDK for Java-Version 1.11.0 und höher verfügbar ist.Die Implementierung kann jede Strategie zur Bereitstellung der Verschlüsselungsmaterialien verwenden.Sie können beispielsweise die Bereitstellung statischer Verschlüsselungsmaterialien oder die Integrationmit einem komplexeren Schlüsselverwaltungssystem wählen.

213

Page 221: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerschlüsseln von Daten im Ruhezustand und im Transit

Der verwendete Verschlüsselungsalgorithmus für benutzerdefinierte Verschlüsselungsmaterialien mussAES/GCM/NoPadding sein.

Die EncryptionMaterialsProvider-Klasse ruft Verschlüsselungsmaterialien nach Verschlüsselungskontextab. Amazon EMR füllt die Verschlüsselungskontextinformationen während der Laufzeit. So kann derAufrufer leichter feststellen, welche Verschlüsselungsmaterialien zurückzugeben sind.

Example Beispiel: Verwenden eines benutzerdefinierten Schlüsselanbieters für die Amazon S3-Verschlüsselung mit EMRFS

Wenn Amazon EMR zum Durchführen der Verschlüsselung die Verschlüsselungsmaterialienvon der EncryptionMaterialsProvider-Klasse abruft, füllt EMRFS wahlweise zwei Felder desmaterialsDescription-Arguments: den Amazon S3-URI für das Objekt und die JobFlowId des Clusters.Diese Informationen können von der EncryptionMaterialsProvider-Klasse zur selektiven Rückgabe derVerschlüsselungsmaterialien verwendet werden.

Beispielsweise kann der Anbieter unterschiedliche Schlüssel für unterschiedliche Amazon S3-URI-Präfixezurückgeben. Es ist die Beschreibung der zurückgegebenen Verschlüsselungsmaterialien, die schließlichmit dem Amazon S3-Objekt gespeichert wird, und nicht der materialsDescription-Wert, der von EMRFSgeneriert und an den Anbieter weitergeleitet wird. Beim Entschlüsseln eines Amazon S3-Objekts wird dieVerschlüsselungsmaterialbeschreibung an die EncryptionMaterialsProvider-Klasse übergeben, sodassdiese wiederum selektiv den passenden Schlüssel zum Entschlüsseln des Objekts zurückgeben kann.

Nachstehend finden Sie eine EncryptionMaterialsProvider-Referenzimplementation. Ein weiterebenutzerdefinierter Anbieter, EMRFSRSAEncryptionMaterialsProvider, ist auf Github verfügbar.

import com.amazonaws.services.s3.model.EncryptionMaterials;import com.amazonaws.services.s3.model.EncryptionMaterialsProvider;import com.amazonaws.services.s3.model.KMSEncryptionMaterials;import org.apache.hadoop.conf.Configurable;import org.apache.hadoop.conf.Configuration;

import java.util.Map;

/** * Provides KMSEncryptionMaterials according to Configuration */public class MyEncryptionMaterialsProviders implements EncryptionMaterialsProvider, Configurable{ private Configuration conf; private String kmsKeyId; private EncryptionMaterials encryptionMaterials;

private void init() { this.kmsKeyId = conf.get("my.kms.key.id"); this.encryptionMaterials = new KMSEncryptionMaterials(kmsKeyId); }

@Override public void setConf(Configuration conf) { this.conf = conf; init(); }

@Override public Configuration getConf() { return this.conf; }

@Override public void refresh() {

}

214

Page 222: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerschlüsseln von Daten im Ruhezustand und im Transit

@Override public EncryptionMaterials getEncryptionMaterials(Map<String, String> materialsDescription) { return this.encryptionMaterials; }

@Override public EncryptionMaterials getEncryptionMaterials() { return this.encryptionMaterials; }}

Bereitstellen von Zertifikaten für die Verschlüsselung von Daten während derÜbertragung mit der Amazon EMR-VerschlüsselungMit Version Amazon EMR 4.8.0 oder höher haben Sie zwei Möglichkeiten für die Angabe von Artefakten fürdie Verschlüsselung von Daten während der Übertragung mithilfe einer Sicherheitskonfiguration:

• Sie können PEM-Zertifikate manuell erstellen, diese in einer ZIP-Datei einschließen und anschließend inAmazon S3 auf die ZIP-Datei verweisen.

• Sie können einen benutzerdefinierten Zertifikatanbieter als Java-Klasse implementieren. Geben Siedazu die JAR-Datei der Anwendung in Amazon S3 an und nennen Sie anschließend den vollständigenKlassennamen des Anbieters, wie in der Anwendung deklariert. Die Klasse muss die SchnittstelleTLSArtifactsProvider implementieren, die ab Version 1.11.0 verfügbar ist.AWS SDK for Java

Amazon EMR lädt automatisch Artefakte auf jeden Knoten im Cluster herunter und verwendet sie späterdazu, um die Open-Source-Funktionen für die Verschlüsselung von Daten während der Übertragung zuimplementieren. Weitere Informationen zu den verfügbaren Optionen finden Sie unter Verschlüsselungwährend der Übertragung (p. 211).

Verwenden der PEM-Zertifikate

Wenn Sie eine ZIP-Datei für die Verschlüsselung von Daten während der Übertragung angeben, müssendie PEM-Dateien innerhalb der ZIP-Datei für die Sicherheitskonfiguration genau wie nachfolgendangegeben benannt sein:

Zertifikate für Verschlüsselung von Daten während der Übertragung

Dateiname Erforderlich/optional Details

privateKey.pem Erforderlich Privater Aktivierungsschlüssel

certificateChain.pem Erforderlich Zertifikatskette

trustedCertificates.pem Optional Erforderlich, wenn dasbereitgestellte Zertifikatnicht entweder vonder standardmäßigenvertrauenswürdige Java-Stammzertifizierungsstelle(Certification Authority,CA) oder einer CA-Zwischenzertifizierungsstelle,die eine Verbindungzur Java-Standard-Stammzertifizierungsstelleherstellen kann, signiertwurde. Das standardmäßige

215

Page 223: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideIAM mit Amazon EMR

Dateiname Erforderlich/optional Detailsvertrauenswürdige Java-Stammverzeichnis CAs findenSie unter jre/lib/security/cacerts.

Möglicherweise sollten Sie die private Schlüssel-PEM-Datei als Platzhalterzertifikat konfigurieren,so gewähren Sie Zugriff auf die Amazon VPC-Domäne, in der Ihre Cluster-Instances gespeichertsind. Wenn sich Ihr Cluster beispielsweise in der Region us-east-1 (N. Virginia) befindet, könntenSie in der Zertifikatskonfiguration einen allgemeinen Namen angeben, der durch die Angabe vonCN=*.ec2.internal in der Zertifikatsubjektdefinition Zugriff auf den Cluster gewährt. Wenn sich IhrCluster in der Region us-west-2 (Oregon) befindet, können Sie CN=*.us-west-2.compute.internalangeben. Weitere Informationen zur EMR-Cluster-Konfiguration in Amazon VPC finden Sie unterAuswählen eines Amazon VPC-Subnetzes für den Cluster.

Das folgende Beispiel zeigt, wie Sie mit OpenSSL ein selbstsigniertes X.509-Zertifikat mit einem privaten1024-Bit-RSA-Schlüssel generieren. Der Schlüssel ermöglicht den Zugriff auf die Amazon EMR-Cluster-Instances des Ausstellers in der Region us-west-2 (Oregon), wie durch den Domänennamen *.us-west-2.compute.internal als allgemeiner Name angegeben.

Es können weitere optionale Subjektelemente wie Land (Country, C), Status (Status, S), Gebietsschema(Locale, L) usw. angegeben werden. Da ein selbstsigniertes Zertifikat generiert wird, kopiert der zweiteBefehl im Beispiel die Datei certificateChain.pem zur Datei trustedCertificates.pem. Der dritteBefehl verwendet zip zum Erstellen der Datei my-certs.zip, die die Zertifikate enthält.

Important

Dieses Beispiel ist lediglich eine Machbarkeitsnachweis-Demonstration. Die Verwendung vonselbstsignierten Zertifikaten wird nicht empfohlen und stellt ein potenzielles Sicherheitsrisikodar. Verwenden Sie eine vertrauenswürdige Zertifizierungsstelle (CA), um die Zertifikate fürProduktionssysteme auszustellen.

$ openssl req -x509 -newkey rsa:1024 -keyout privateKey.pem -out certificateChain.pem -days 365 -nodes -subj '/C=US/ST=Washington/L=Seattle/O=MyOrg/OU=MyDept/CN=*.us-west-2.compute.internal'$ cp certificateChain.pem trustedCertificates.pem$ zip -r -X my-certs.zip certificateChain.pem privateKey.pem trustedCertificates.pem

AWS Identity and Access Management für AmazonEMR

AWS Identity and Access Management (IAM) ist ein AWS-Service, der Administratoren bei der sicherenKontrolle des Zugriffs auf AWS-Ressourcen unterstützt. IAM-Administratoren steuern, wer zur Verwendungvon Amazon EMR-Ressourcen authentifiziert (angemeldet) und autorisiert (berechtigt) werden kann. IAMist ein AWS-Service, den Sie ohne zusätzliche Kosten nutzen können.

Themen• Audience (p. 217)• Authentifizierung mit -Identitäten (p. 217)• Verwalten des Zugriffs mit Richtlinien (p. 219)• Funktionsweise von Amazon EMR mit IAM (p. 220)• Configure IAM Service Roles for Amazon EMR Permissions to AWS Services and Resources (p. 223)

216

Page 224: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAudience

• Amazon EMR Beispiele für identitätsbasierte Richtlinien (p. 250)

AudienceIhre Verwendung von AWS Identity and Access Management (IAM) ist von der Art Ihrer Aktivitäten inAmazon EMR abhängig.

Service-Benutzer – Wenn Sie bei Ihrer Arbeit den Amazon EMR-Service verwenden, stellt Ihnen IhrAdministrator die erforderlichen Anmeldeinformationen und Berechtigungen bereit. Wenn Sie für Ihre Arbeitweitere Amazon EMR-Funktionen ausführen, benötigen Sie möglicherweise zusätzliche Berechtigungen.Wenn Sie die Funktionsweise der Zugriffskontrolle verstehen, kann Ihnen dies helfen, die richtigenBerechtigungen von Ihrem Administrator anzufordern.

Service-Administrator – Wenn Sie in Ihrem Unternehmen die Verantwortung für Amazon EMR-Ressourcenhaben, haben Sie wahrscheinlich vollständigen Zugriff auf Amazon EMR. Ihre Aufgabe besteht darin, dieAmazon EMR-Funktionen und -Ressourcen festzulegen, auf die Mitarbeiter zugreifen können sollten. Siemüssen anschließend bei Ihrem IAM-Administrator entsprechende Änderungen für die BerechtigungenIhrer Service-Benutzer anfordern. Lesen Sie die Informationen auf dieser Seite, um die Grundkonzepte vonIAM zu verstehen. Weitere Informationen dazu, wie Ihr Unternehmen IAM mit Amazon EMR verwendenkann, finden Sie unter Funktionsweise von Amazon EMR mit IAM (p. 220).

IAM Administrator – Wenn Sie als IAM-Administrator fungieren, sollten Sie Einzelheiten dazu kennen,wie Sie Richtlinien zur Verwaltung des Zugriffs auf Amazon EMR verfassen können. Beispiele füridentitätsbasierte Amazon EMR-Richtlinien, die Sie in IAM verwenden können, finden Sie unter AmazonEMR Beispiele für identitätsbasierte Richtlinien (p. 250).

Authentifizierung mit -IdentitätenDie Authentifizierung ist die Art und Weise, wie Sie sich mit Ihren Anmeldeinformationen bei AWSanmelden. Weitere Informationen zum Anmelden über die AWS Management Console finden Sie unter DieIAM-Konsole und -Anmeldeseite im IAM-Benutzerhandbuch.

Sie müssen als Stammbenutzer des AWS-Kontos, als IAM-Benutzer oder durch Übernahme einer IAM-Rolle authentifiziert (bei AWS angemeldet) sein. Sie können auch die Single-Sign-on-AuthentifizierungIhres Unternehmens verwenden oder sich sogar über Google oder Facebook anmelden. In diesen Fällenhat Ihr Administrator vorher einen Identitätsverbund unter verwendung von IAM-Rollen eingerichtet. WennSie mit Anmeldeinformationen eines anderen Unternehmens auf AWS zugreifen, nehmen Sie indirekt eineRolle an.

Verwenden Sie zur direkten Anmeldung bei AWS Management Console Ihr Kennwort mit Ihrer Root-Benutzer-E-Mail-Adresse oder Ihrem IAM-Benutzernamen. Sie können auf AWS programmgesteuertoder mit Ihren Root-Benutzer- oder IAM-Benutzerzugriffsschlüsseln zugreifen. AWS stellt SDK- undBefehlszeilen-Tools bereit, mit denen Ihre Anforderung anhand Ihrer Anmeldeinformationen kryptografischsigniert wird. Wenn Sie keine AWS-Tools verwenden, müssen Sie die Anforderung selbst signieren.Hierzu verwenden Sie Signature Version 4, ein Protokoll für die Authentifizierung eingehender API-Anforderungen. Weitere Informationen zur Authentifizierung von Anfragen finden Sie unter SignatureVersion 4-Signaturprozess im AWS General Reference.

Unabhängig von der von Ihnen verwendeten Authentifizierungsmethode müssen Sie möglicherweise auchzusätzliche Sicherheitsinformationen angeben. AWS empfiehlt beispielsweise die Verwendung von Multi-Factor Authentication (MFA), um die Sicherheit Ihres Kontos zu verbessern. Weitere Informationen findenSie unter Verwenden der Multi-Factor Authentication (MFA) in AWS im IAM-Benutzerhandbuch.

Stammbenutzer des AWS-KontosWenn Sie ein AWS-Konto neu erstellen, enthält es zunächst nur eine einzelne Anmeldeidentität, die überVollzugriff auf sämtliche AWS-Services und -Ressourcen im Konto verfügt. Diese Identität wird als Root-

217

Page 225: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAuthentifizierung mit -Identitäten

Benutzer des AWS-Kontos bezeichnet. Um auf es zuzugreifen, müssen Sie sich mit der E-Mail-Adresseund dem Passwort anmelden, die zur Erstellung des Kontos verwendet wurden. Wir raten ausdrücklichdavon ab, den Root-Benutzer für Alltagsaufgaben einschließlich administrativen Aufgaben zu verwenden.Bleiben Sie stattdessen bei der bewährten Methode, den Root-Benutzer nur zu verwenden, um Ihrenersten IAM-Benutzer zu erstellen. Anschließend legen Sie die Anmeldedaten für den Root-Benutzeran einem sicheren Ort ab und verwenden ihn nur, um einige Konto- und Service-Verwaltungsaufgabendurchzuführen.

IAM-Benutzer und -GruppenEin IAM-Benutzer ist eine Entität in Ihrem AWS-Konto mit bestimmten Berechtigungen für eine einzelnePerson oder eine einzelne Anwendung. Ein IAM-Benutzer kann langfristige Anmeldeinformationen wieBenutzername und Kennwort oder einen Satz von Zugriffsschlüsseln haben. Informationen zum Generierenvon Zugriffsschlüsseln finden Sie unter Verwalten von Zugriffsschlüsseln für IAM-Benutzer im IAM-Benutzerhandbuch. Achten Sie beim Generieren von Zugriffsschlüsseln für einen IAM-Benutzer darauf,dass Sie das Schlüsselpaar anzeigen und sicher speichern. Sie können den geheimen Zugriffsschlüsselspäter nicht wiederherstellen. Stattdessen müssen Sie ein neues Zugriffsschlüsselpaar generieren.

Ein IAM-Gruppe ist eine Identität, die eine Sammlung von IAM.Benutzern angibt. Sie können sich nichtals Gruppe anmelden. Mithilfe von Gruppen können Sie Berechtigungen für mehrere Benutzer gleichzeitigangeben. Gruppen vereinfachen die Verwaltung von Berechtigungen, wenn es zahlreiche Benutzer gibt.Sie könnten beispielsweise einer Gruppe mit dem Namen IAMAdmins Berechtigungen zum Verwalten vonIAM-Ressourcen erteilen.

Benutzer unterscheiden sich von Rollen. Ein Benutzer ist einer einzigen Person oder Anwendung eindeutigzugeordnet. Eine Rolle kann von allen Personen angenommen werden, die sie benötigen. Benutzerbesitzen permanente langfristige Anmeldeinformationen. Rollen stellen temporäre Anmeldeinformationenbereit. Weitere Informationen finden Sie unter Erstellen eines IAM-Benutzers (anstelle einer Rolle) im IAM-Benutzerhandbuch.

IAM-RollenEine IAMRolle ist eine Entität in Ihrem AWS-Konto mit spezifischen Berechtigungen. Sie ist einem IAM-Benutzer vergleichbar, jedoch nicht mit einer bestimmten Person verknüpft. Sie können eine AWSManagement Console-Rolle vorübergehend in der IAM annehmen, indem Sie Rollen wechseln. Siekönnen eine Rolle annehmen, indem Sie eine AWS CLI- oder AWS-API-Operation aufrufen oder einebenutzerdefinierte URL verwenden. Weitere Informationen zu Methoden für die Verwendung von Rollenfinden Sie unter Verwenden von IAM-Rollen im IAM-Benutzerhandbuch.

IAM-Rollen mit temporären Anmeldeinformationen sind in folgenden Situationen hilfreich:

• Temporäre IAM-Benutzerberechtigungen – Ein IAM-Benutzer kann eine IAM-Rolle annehmen, umvorübergehend andere Berechtigungen für eine bestimmte Aufgabe zu erhalten.

• Zugriff für verbundene Benutzer –Statt einen IAM-Benutzer zu erstellen, können Sie vorhandeneIdentitäten von AWS Directory Service, aus Ihrem Unternehmens-Benutzerverzeichnis oder von einemWeb-Identitätsanbieter verwenden. Diese werden als verbundene Benutzer bezeichnet. AWS weisteinem verbundenen Benutzer eine Rolle zu, wenn der Zugriff über einen Identitätsanbieter angefordertwird. Weitere Informationen zu verbundenen Benutzern finden Sie unter Verbundene Benutzer undRollen im IAM-Benutzerhandbuch.

• Kontenübergreifender Zugriff–: Sie können eine IAM-Rolle verwenden, um einem vertrauenswürdigenPrinzipal in einem anderen Konto den Zugriff auf Ressourcen in Ihrem Konto zu ermöglichen. Rollenstellen die primäre Methode für die Gewährung eines kontenübergreifenden Zugriffs dar. In einigen AWS-Services können Sie jedoch eine Richtlinie direkt an eine Ressource anfügen (anstatt eine Rolle alsProxy zu verwenden). Informationen zu den Unterschieden zwischen Rollen und ressourcenbasiertenRichtlinien für den kontenübergreifenden Zugriff finden Sie unter So unterscheiden sich IAM-Rollen vonressourcenbasierten Richtlinien im IAM-Benutzerhandbuch.

218

Page 226: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwalten des Zugriffs mit Richtlinien

• AWS-Service-Zugriff –Eine Servicerolle ist eine IAM-Rolle, die ein Service übernimmt, um Aktionen inIhrem Namen durchzuführen. Service-Rollen bieten nur Zugriff innerhalb Ihres Kontos und können nichtgenutzt werden, um Zugriff auf Services in anderen Konten zu erteilen. Ein IAM-Administrator kann eineServicerolle in IAM erstellen, ändern und löschen. Weitere Informationen finden Sie unter Erstellen einerRolle zum Delegieren von Berechtigungen an einen AWS-Service im IAM-Benutzerhandbuch.

• Auf Amazon EC2 ausgeführte Anwendungen – Sie können eine IAM-Rolle nutzen, um temporäreAnmeldeinformationen für Anwendungen zu verwalten, die auf einer EC2-Instance ausgeführtwerden und AWS CLI- oder AWS-API-Anforderungen durchführen. Das ist empfehlenswerter alsZugriffsschlüssel innerhalb der EC2 Instance zu speichern. Erstellen Sie ein Instance-Profil, das an dieInstance angefügt ist, um eine AWS-Rolle einer EC2-Instance zuzuweisen und die Rolle für sämtlicheAnwendungen der Instance bereitzustellen. Ein Instance-Profil enthält die Rolle und ermöglicht, dassProgramme, die in der EC2-Instance ausgeführt werden, temporäre Anmeldeinformationen erhalten.Weitere Informationen finden Sie unter Verwenden einer IAM-Rolle zum Erteilen von Berechtigungen fürAnwendungen, die auf Amazon EC2-Instances ausgeführt werden im IAM-Benutzerhandbuch.

Informationen dazu, wann Sie IAM-Rollen verwenden sollten, finden Sie unter Wann Sie eine IAM-Rolle(statt eines Benutzers) erstellen sollten im IAM-Benutzerhandbuch.

Verwalten des Zugriffs mit RichtlinienFür die Zugriffssteuerung in AWS erstellen Sie Richtlinien und weisen sie den IAM-Identitäten oderAWS-Ressourcen zu. Eine Richtlinie ist ein Objekt in AWS, das, wenn es einer Identität oder Ressourcezugeordnet wird, deren Berechtigungen definiert. AWS wertet diese Richtlinien aus, wenn eine Entität(Root-Benutzer, IAM-Benutzer oder IAM-Rolle) eine Anforderung stellt. Berechtigungen in den Richtlinienbestimmen, ob die Anforderung zugelassen oder abgelehnt wird. Die meisten Richtlinien werden inAWS als JSON-Dokumente gespeichert. Weitere Informationen zu Struktur und Inhalten von JSON-Richtliniendokumenten finden Sie unter Übersicht über JSON-Richtlinien im IAM-Benutzerhandbuch.

Ein IAM-Administrator kann mithilfe von Richtlinien die Benutzer, die auf AWS-Ressourcen zugreifenkönnen, und die Aktionen, die diese für diese Ressourcen ausführen dürfen, angeben. Eine IAM-Entität (Benutzer oder Rolle) besitzt zunächst keine Berechtigungen. Anders ausgedrückt, könnenBenutzer standardmäßig keine Aktionen ausführen und nicht einmal ihr Kennwort ändern. Um einemBenutzer die Berechtigung für eine Aktion zu erteilen, muss ein Administrator einem Benutzer eineBerechtigungsrichtlinie zuweisen. Alternativ kann der Administrator den Benutzer zu einer Gruppehinzufügen, die über die gewünschten Berechtigungen verfügt. Wenn ein Administrator einer GruppeBerechtigungen erteilt, erhalten alle Benutzer in dieser Gruppe diese Berechtigungen.

IAM-Richtlinien definieren Berechtigungen für eine Aktion unabhängig von der Methode, die Sie zurAusführung der Aktion verwenden. Angenommen, es gibt eine Richtlinie, die Berechtigungen für dieiam:GetRole-Aktion erteilt. Ein Benutzer mit dieser Richtlinie kann Benutzer informationen über die AWSManagement Console, die AWS CLI oder die AWS-API abrufen.

Identitätsbasierte RichtlinienIdentitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einem Prinzipal (odereiner Identität) anfügen können, wie z. B.IAM-Benutzer, -Rollen oder -Gruppen. Diese Richtlinien steuern,welche Aktionen diese Identität für welche Ressourcen und unter welchen Bedingungen ausführen kann.Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter Erstellen von IAM-Richtlinien imIAM-Benutzerhandbuch.

Identitätsbasierte Richtlinien können weiter als Inline-Richtlinien oder verwaltete Richtlinien kategorisiertwerden. Inline-Richtlinien sind direkt in einen einzelnen Benutzer, eine einzelne Gruppe oder eine einzelneRolle eingebettet. Verwaltete Richtlinien sind eigenständige Richtlinien, die Sie mehreren Benutzern,Gruppen und Rollen in Ihrem AWS-Konto anfügen können. Verwaltete Richtlinien umfassen von AWSverwaltete und von Kunden verwaltete Richtlinien. Informationen dazu, wie Sie zwischen einer verwaltetenRichtlinie und einer Inline-Richtlinie wählen, finden Sie unter Wählen zwischen verwalteten und Inline-Richtlinien im IAM-Benutzerhandbuch.

219

Page 227: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideFunktionsweise von Amazon EMR mit IAM

Weitere RichtlinientypenAWS unterstützt zusätzliche, weniger häufig verwendete Richtlinientypen. Diese Richtlinientypen könnendie maximalen Berechtigungen festlegen, die Ihnen von den häufiger verwendeten Richtlinientypen erteiltwerden können.

• Berechtigungsgrenzen – Eine Berechtigungsgrenze ist eine erweiterte Funktion, mit der Sie diemaximalen Berechtigungen festlegen können, die eine identitätsbasierte Richtlinie einer IAM-Entität(IAM-Benutzer oder Rolle) erteilen kann. Sie können eine Berechtigungsgrenze für eine Entität festlegen.Die resultierenden Berechtigungen sind eine Schnittmenge der identitätsbasierten Richtlinien derEntität und ihrer Berechtigungsgrenzen. Ressourcenbasierte Richtlinien, die den Benutzer oder dieRolle im Feld Principal angeben, werden nicht durch Berechtigungsgrenzen eingeschränkt. Eineexplizite Zugriffsverweigerung in einer dieser Richtlinien setzt eine Zugriffserlaubnis außer Kraft. WeitereInformationen zu Berechtigungsgrenzen finden Sie unter Berechtigungsgrenzen für IAM-Entitäten imIAM-Benutzerhandbuch.

• Service-Kontrollrichtlinien (Service Control Policies, SCPs) – SCPs sind JSON-Richtlinien, die diemaximalen Berechtigungen für eine Organisation oder Organisationseinheit (Organization Unit,OU) in AWS Organizations angeben. AWS Organizations ist ein Service für die Gruppierung undzentrale Verwaltung der AWS-Konten Ihres Unternehmens. Wenn Sie innerhalb einer Organisationalle Funktionen aktivieren, können Sie Service-Kontrollrichtlinien (SCPs) auf alle oder einzelne IhrerKonten anwenden. SCPs schränken Berechtigungen für Entitäten in Mitgliedskonten einschließlich desjeweiligen Stammbenutzer des AWS-Kontos ein. Weitere Informationen zu Organisationen und SCPsfinden Sie unter Funktionsweise von SCPs im AWS Organizations-Benutzerhandbuch.

• Sitzungsrichtlinien – Sitzungsrichtlinien sind erweiterte Richtlinien, die Sie als Parameter übergeben,wenn Sie eine temporäre Sitzung für eine Rolle oder einen verbundenen Benutzer programmgesteuerterstellen. Die resultierenden Sitzungsberechtigungen sind eine Schnittmenge der auf der Identität desBenutzers oder der Rolle basierenden Richtlinien und der Sitzungsrichtlinien. Berechtigungen könnenauch aus einer ressourcenbasierten Richtlinie stammen. Eine explizite Zugriffsverweigerung in einerdieser Richtlinien setzt eine Zugriffserlaubnis außer Kraft. Weitere Informationen finden Sie unterSitzungsrichtlinien im IAM-Benutzerhandbuch.

Mehrere RichtlinientypenWenn mehrere auf eine Anforderung mehrere Richtlinientypen angewendet werden können, sind dieentsprechenden Berechtigungen komplizierter. Informationen dazu, wie AWS die Zulässigkeit einerAnforderung ermittelt, wenn mehrere Richtlinientypen beteiligt sind, finden Sie unter Logik für dieRichtlinienauswertung im IAM-Benutzerhandbuch.

Funktionsweise von Amazon EMR mit IAMMit identitätsbasierten IAM-Richtlinien können Sie angeben, welche Aktionen und Ressourcen erteiltoder abgelehnt werden. Darüber hinaus können Sie die Bedingungen festlegen, unter denen Aktionenzugelassen oder abgelehnt werden. Amazon EMR unterstützt bestimmte Aktionen, Ressourcen undBedingungsschlüssel. Informationen zu sämtlichen Elementen, die Sie in einer JSON-Richtlinie verwenden,finden Sie in der IAM-Referenz für JSON-Richtlinienelemente im IAM-Benutzerhandbuch.

Amazon EMR unterstützt keine ressourcenbasierten Richtlinien.

ActionsDas Element Action einer identitätsbasierten IAM-Richtlinie beschreibt die spezifischen Aktionen,die von der Richtlinie zugelassen oder abgelehnt werden. Richtlinienaktionen haben normalerweisedenselben Namen wie die zugehörige AWS-API-Operation. Die Aktion wird in einer Richtlinie verwendet,um Berechtigungen zur Durchführung der zugehörigen Aktion zu gewähren.

220

Page 228: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideFunktionsweise von Amazon EMR mit IAM

Richtlinienaktionen in Amazon EMR Verwenden Sie das folgende Präfix vor der Aktion:elasticmapreduce:. (z. B.. Um beispielsweise jemandem die Berechtigung zum Erstellen eines Clustersmithilfe der zu erteilen, RunJobFlow API-Operation enthalten Sie die elasticmapreduce:RunJobFlowAktion in ihrer Richtlinie. Richtlinienanweisungen müssen ein Action- oder NotAction-Elemententhalten. Amazon EMR definiert seinen eigenen Satz von Aktionen, die Aufgaben beschreiben, die Sie mitdiesem Service durchführen können.

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie folgendermaßen durchKommas.

"Action": [ "elasticmapreduce:action1", "elasticmapreduce:action2"

Sie können auch Platzhalter verwenden, um mehrere Aktionen anzugeben. Beispielsweise können Sie alleAktionen festlegen, die mit dem Wort Describe beginnen, einschließlich der folgenden Aktion:

"Action": "elasticmapreduce:Describe*"

Die Liste der Amazon EMR-Aktionen finden Sie unter Actions Defined by Amazon EMR im IAM-Benutzerhandbuch.

ResourcesDas Element Resource gibt die Objekte an, auf die die Aktion angewendet wird. Anweisungen müssenentweder ein Resource- oder ein NotResource-Element enthalten. Sie geben eine Ressource unterVerwendung eines ARN oder eines Platzhalters (*) an, um anzugeben, dass die Anweisung für alleRessourcen gilt.

Informationen, dazu, wie Sie die Liste der Amazon EMR-Ressourcentypen und ihrer ARNs anzeigen, findenSie unter Resources Defined by Amazon EMR im IAM-Benutzerhandbuch. Informationen dazu, mit welchenAktionen Sie den ARN der einzelnen Ressourcen angeben können, finden Sie unter Actions Defined byAmazon EMR.

BedingungsschlüsselMithilfe des Elements Condition(oder des Blocks Condition) können Sie die Bedingungen angeben,unter denen eine Anweisung wirksam ist. Das Element Condition ist optional. Sie können bedingteAusdrücke erstellen, die Bedingungsoperatoren verwenden, z. B. ist gleich oder kleiner als, damit dieBedingung in der Richtlinie mit Werten in der Anforderung übereinstimmt.

Wenn Sie mehrere Condition-Elemente in einer Anweisung oder mehrere Schlüssel in einem einzelnenCondition-Element angeben, wertet AWS diese mittels einer logischen AND-Operation aus. Wenn Siemehrere Werte für einen einzelnen Bedingungsschlüssel angeben, wertet AWS die Bedingung mittelseiner logischen OR-Operation aus. Alle Bedingungen müssen erfüllt werden, bevor die Berechtigungen derAnweisung gewährt werden.

Sie können auch Platzhaltervariablen verwenden, wenn Sie Bedingungen angeben. Beispielsweise könnenSie einem IAM-Benutzer die Berechtigung für den Zugriff auf eine Ressource nur dann gewähren, wennsie mit dessen IAM-Benutzernamen gekennzeichnet ist. Weitere Informationen finden Sie unter IAMRichtlinienelemente: Variablen und Tags in der IAM-Benutzerhandbuch.

Amazon EMR definiert einen eigenen Satz von Bedingungsschlüsseln und unterstützt auch einige globalenBedingungsschlüssel. Die Liste aller globalen AWS-Bedingungsschlüssel finden Sie unter Globale AWS-Bedingungskontextschlüssel im IAM-Benutzerhandbuch.

221

Page 229: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideFunktionsweise von Amazon EMR mit IAM

Alle Amazon EC2-Aktionen unterstützen die Bedingungsschlüssel aws:RequestedRegion undec2:Region. Weitere Informationen finden Sie unter Beispiel: Einschränken des Zugriffs auf einebestimmte Region.

Die Liste der Amazon EMR-Bedingungsschlüssel finden Sie unter Condition Keys for Amazon EMRim IAM-Benutzerhandbuch. Informationen dazu, mit welchen Aktionen und Ressourcen Sie einenBedingungsschlüssel verwenden können, finden Sie unter Actions Defined by Amazon EMR.

Verwenden Sie Cluster- und Notebook-Tags mit IAM-Richtlinien für dieZugriffskontrolleDie Berechtigungen für Amazon EMR-Aktionen, die EMR-Notebooks und EMR-Clustern zugeordnet sind,können anhand der Tag-basierten Zugriffskontrolle mit identitätsbasierten IAM-Richtlinien abgestimmtwerden. Sie können Bedingungsschlüssel in einem Condition-Element (auch als Condition-Blockbezeichnet) verwenden, um bestimmte Aktionen nur dann zuzulassen, wenn ein Notebook, ein Clusteroder beide bestimmte Tag-Schlüssel oder Schlüssel-Wert-Kombinationen aufweisen. Sie können auch dieCreateEditor-Aktion (erstellt ein EMR-Notebook) und die RunJobFlow-Aktion (erstellt einen Cluster)einschränken, damit bei der Erstellung der Ressource eine Anforderung für ein Tag eingereicht werdenmuss.

In Amazon EMR gelten die Bedingungsschlüssel, die in einem Condition-Element verwendetwerden können, nur für die Amazon EMR-API-Aktionen, für die ClusterID oder NotebookID einerforderlicher Anforderungsparameter ist. Beispielsweise unterstützt die Aktion ModifyInstanceGroupskeine Kontextschlüssel, da ClusterID ein optionaler Parameter ist.

Wenn Sie ein EMR-Notebook erstellen, wird ein Standard-Tag angewendet. Dabei entspricht dieSchlüsselzeichenfolge creatorUserId der IAM-Benutzer-ID, mit der das Notebook erstellt wurde. Dies istnützlich, um zulässige Aktionen für das Notebook ausschließlich auf den Ersteller zu beschränken.

Die folgenden Bedingungsschlüssel sind in Amazon EMR verfügbar:

• Verwenden Sie den Bedingungskontextschlüsselelasticmapreduce:ResourceTag/TagKeyString, um Benutzeraktionen in Clustern oderNotebooks mit Tags mit dem von Ihnen festgelegten TagKeyString zuzulassen oder abzulehnen.Wenn eine Aktion sowohl NotebookID als auch ClusterID übergibt, gilt die Bedingung sowohlfür den Cluster als auch das Notebook. Das bedeutet, dass beide Ressourcen dieselbe Tag-Schlüsselzeichenfolge oder Schlüssel-Wert-Kombination aufweisen müssen. Sie können das ElementResource verwenden, um die Anweisung nach Bedarf nur auf Cluster oder Notebooks zu beschränken.Weitere Informationen finden Sie im Amazon EMR Beispiele für identitätsbasierte Richtlinien (p. 250).

• Verwenden Sie den Bedingungskontextschlüssel elasticmapreduce:RequestTag/TagKeyString,um ein bestimmtes Tag mit Aktionen/API-Aufrufe anzufordern. Verwenden Sie diesenBedingungskontextschlüssel zusammen mit der CreateEditor-Aktion, um festzulegen, dass bei derErstellung von Notebooks ein Schlüssel mit TagKeyString angewendet wird.

Die Einstellung „EMR-Cluster sichtbar für alle Benutzer“verstehenVisibleToAllUsers ist eine Cluster-Einstellung, die eindeutig ist für Amazon EMR die in Verbindungmit IAM -Richtlinien. Der Standardwert, truegibt an, dass alle IAM-Benutzer im AWS-Konto Cluster-Aktionen ausführen können, wenn sie über die entsprechenden IAM-Richtlinienberechtigungen verfügen.Wenn eingestellt auf falsekann nur der IAM-Benutzer, der den Cluster erstellt hat, Aktionen ausführen.Sie können die Standardeinstellung von true wenn Sie einen Cluster erstellen. Mit dem Amazon EMRkönnen Sie dies tun, indem Sie die Cluster ist für alle IAM-Benutzer im Konto sichtbar Einstellung aufdem Sicherheit Seite, wenn Sie erweiterte Cluster-Erstellungsoptionen verwenden. Mit dem AWS CLI,können Sie die --no-visible-to-all-users Option der emr-gruppierung-erstellen Befehl. Mitder EMR-API können Sie die SichtbarFürAlleBenutzer Eigenschaft der RunJobFlow Maßnahme. Aufeinem ausgeführten Cluster kann nur der IAM-Benutzer, der den Cluster oder den Stammbenutzer

222

Page 230: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

des AWS-Kontos erstellt hat, die Einstellung ändern und die AWS CLI oder EMR API muss verwendetwerden. Mit dem AWS CLI, können Sie die --visible-to-all-users und --no-visible-to-all-users Optionen der emr-gruppierungsattribute-ändern Befehl. Mit der EMR-API können Sie dieSichtbarAufAlleBenutzereinstellen Maßnahme.

ExamplesBeispiele für identitätsbasierte Amazon EMR-Richtlinien finden Sie unter Amazon EMR Beispiele füridentitätsbasierte Richtlinien (p. 250).

Configure IAM Service Roles for Amazon EMRPermissions to AWS Services and ResourcesAmazon EMR und Anwendungen wie Hadoop und Spark benötigen Berechtigungen für den Zugriff aufandere AWS-Ressourcen und die Ausführung von Aktionen während der Ausführung. Jeder Cluster inAmazon EMR muss über einen service role und eine Rolle für die Amazon EC2 instance profile. Die IAMRichtlinien, die an diese Rollen angehängt sind, bieten Berechtigungen für den Cluster, mit anderen AWSDienstleistungen im Auftrag eines Benutzers.

Eine zusätzliche Rolle, die Auto Scaling-Rolle, ist erforderlich, wenn Ihr Cluster Auto Scaling in AmazonEMR verwendet. Die AWS-Servicerolle für EMR-Notebooks ist erforderlich, wenn Sie EMR-Notebooksverwenden. Weitere Informationen finden Sie unter IAM-Rollen und Verwenden von Instance-Profilen imIAM-Benutzerhandbuch.

Amazon EMR bietet Standardrollen und standardmäßig verwaltete Richtlinien für alle Rollen, dieBerechtigungen bestimmen. Verwaltete Richtlinien werden von AWS erstellt und verwaltet, sodass sieautomatisch aktualisiert werden, wenn sich Serviceanforderungen ändern.

Wenn Sie zum ersten Mal einen Cluster oder ein Notebook in einem Konto erstellen, existieren für AmazonEMR noch keine Rollen. Nach ihrer Erstellung können Sie die Rollen, die diesen angefügten Richtlinienund die durch die Richtlinien erteilten oder verweigerten Berechtigungen in der IAM-Konsole (https://console.aws.amazon.com/iam/) anzeigen. Sie können Standardrollen für Amazon EMR zum Erstellen undVerwenden angeben, Sie können Ihre eigenen Rollen erstellen und sie einzeln angeben, wenn Sie einenCluster erstellen, um Berechtigungen anpassen. Und Sie können Standardrollen angeben, die verwendetwerden sollen, wenn Sie einen Cluster mithilfe der AWS CLI erstellen. Weitere Informationen finden Sie imCustomize IAM Roles (p. 242).

Modifying Identity-Based Policies for Permissions to Pass ServiceRoles for Amazon EMRCluster-Benutzer benötigen entsprechende Berechtigungen, damit Anwendungendie Servicerollen für Amazon EMR in ihrem Namen übergeben können. Die RichtlinieAmazonElasticMapReduceFullAccess ist die verwaltete Standardrichtlinie für Benutzer mit Vollzugriffauf Amazon EMR und enthält eine Anweisung, die die iam:PassRole-Berechtigungen für alle Ressourcenerlaubt. Mit dieser Anweisung kann der Benutzer beliebige Rollen an andere AWS-Services übergeben,damit Amazon EMR mit diesen Services im Namen des Benutzers interagieren kann.

Wenn Sie eine restriktivere Richtlinie einrichten möchten, fügen Sie den entsprechenden Benutzernoder Gruppen eine eingebundene Richtlinie hinzu, die iam:PassRole nur für Amazon EMR-spezifischeRollen erlaubt. Das folgende Beispiel zeigt eine Anweisung, die die iam:PassRole-Berechtigungennur für die Amazon EMR-Standardrollen erlaubt: EMR_DefaultRole, EMR_EC2_DefaultRole undEMR_AutoScalingDefaultRole. Wenn Sie benutzerdefinierte Rollen verwenden, ersetzen Sie dieStandardrollennamen durch die Namen Ihrer benutzerdefinierten Rollen.

{ "Action": "iam:PassRole", "Effect": "Allow",

223

Page 231: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

"Resource": [ "arn:aws:iam:::role/EMR_DefaultRole", "arn:aws:iam:::role/EMR_EC2_DefaultRole", "arn:aws:iam:::role/EMR_AutoScaling_DefaultRole", "arn:aws:iam:::role/EMR_Notebooks_DefaultRole" ]}

Service Role SummaryIn der folgenden Tabelle finden Sie als Referenz die IAM-Servicerollen aufgelistet, die Amazon EMRzugeordnet sind.

Funktion Standardrolle Description(Beschreibung)

VerwalteteStandardrichtlinie

Service Role forAmazon EMR (EMRRole) (p. 228)

EMR_DefaultRole Ermöglicht AmazonEMR das Aufrufenanderer AWS-Servicesin Ihrem Namen,wenn Ressourcenbereitgestelltund Aktionen aufServiceebenedurchgeführt werden.Diese Rolle ist für alleCluster erforderlich.

AmazonElasticMapReduceRole

Important

Für dieAnforderungvon Spot-Instancesist eineserviceverknüpfteRolleerforderlich.Wenn dieseRolle nichtvorhanden ist,benötigt dieEMR-Rolle dieBerechtigungen,sie zu erstellen,andernfallstritt einBerechtigungsfehlerauf. DieverwalteteRichtlinieenthält eineAnweisung, diediese Aktionzulässt. WennSie diese Rolleoder Richtlinieanpassen,stellen Siesicher, dass Sieeine Anweisungaufnehmen,die dasErstellen dieserserviceverknüpftenRolle erlaubt.WeitereInformationen

224

Page 232: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Funktion Standardrolle Description(Beschreibung)

VerwalteteStandardrichtlinie

finden Sie unterService Rolefor AmazonEMR (EMRRole) (p. 228)undServiceverknüpfteRollen fürSpot-Instance-Anfragen imAmazon EC2-Benutzerhandbuchfür Linux-Instances.

Service Role forCluster EC2 Instances(EC2 InstanceProfile) (p. 229)

EMR_EC2_DefaultRole Anwendungsprozesse,die auf dem Hadoop-Ökosystem auf Cluster-Instances ausgeführtwerden, verwendendiese Rolle, wenn sieandere AWS-Servicesaufrufen. Für denZugriff auf Daten inAmazon S3 mithilfe vonEMRFS können Sieunterschiedliche Rollenangeben, die abhängigvon den die Anfragesendenden Benutzernbzw. Gruppen odervom Speicherort derDaten in AmazonS3 angenommenwerden sollen. WeitereInformationen finden Sieim Configure IAM Rolesfor EMRFS Requests toAmazon S3 (p. 244).Diese Rolle ist für alleCluster erforderlich.

AmazonElasticMapReduceforEC2Role.Weitere Informationenfinden Sie unter ServiceRole for Cluster EC2Instances (EC2 InstanceProfile) (p. 229).

225

Page 233: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Funktion Standardrolle Description(Beschreibung)

VerwalteteStandardrichtlinie

Service Role forAutomatic Scaling inEMR (Auto ScalingRole) (p. 234)

EMR_AutoScaling_DefaultRoleErmöglicht zusätzlicheAktionen für dynamischskalierte Umgebungen.Nur erforderlich fürCluster mit AutoScaling in AmazonEMR. WeitereInformationen findenSie im Verwendender automatischenSkalierung mit einerbenutzerdefiniertenRichtlinie für Instance-Gruppen (p. 421).

AmazonElasticMapReduceforAutoScalingRole.Weitere Informationenfinden Sie unter ServiceRole for AutomaticScaling in EMR (AutoScaling Role) (p. 234).

Service Role for EMR-Notebooks (p. 235)

EMR_Notebooks_DefaultRoleGewährtBerechtigungen, dasein EMR-NotebookZugriff auf andere AWS-Ressourcen benötigtund Aktionen ausführt.Nur erforderlich, wennEMR-Notebooksverwendet wird.

AmazonElasticMapReduceEditorsRole.Weitere Informationenfinden Sie unterService Role for EMR-Notebooks (p. 235).

S3FullAccessPolicywird auchstandardmäßigangehängt. DerInhalt dieserRichtlinienanweisungwird unten gezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ]}

226

Page 234: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Funktion Standardrolle Description(Beschreibung)

VerwalteteStandardrichtlinie

ServiceverknüpfteRolle (p. 236)

AWSServiceRoleForEMRCleanupAmazon EMR erstelltautomatisch eineserviceverknüpfte Rolle.Wenn der Servicefür Amazon EMRkeine Amazon EC2-Ressourcen mehrbereinigen kann, kannAmazon EMR dieseRolle zum Bereinigenverwenden. Wenn einCluster Spot-Instancesverwendet, muss dieBerechtigungsrichtlinie,die der Service Rolefor Amazon EMR(EMR Role) (p. 228)angefügt ist, dieErstellung einerserviceverknüpftenRolle zulassen. WeitereInformationen findenSie im Berechtigungenvon serviceverknüpftenRollen für AmazonEMR (p. 236).

AmazonEMRCleanupPolicy

Themen• IAM Service Roles Used By Amazon EMR (p. 227)• Customize IAM Roles (p. 242)• Configure IAM Roles for EMRFS Requests to Amazon S3 (p. 244)• Use Resource-Based Policies for Amazon EMR Access to AWS Glue Data Catalog (p. 249)• Use IAM Roles with Applications That Call AWS Services Directly (p. 249)• Allow Users and Groups to Create and Modify Roles (p. 250)

IAM Service Roles Used By Amazon EMRAmazon EMR verwendet IAM-Servicerollen, um Aktionen in Ihrem Namen durchzuführen, wenn Cluster-Ressourcen bereitgestellt, Anwendungen ausgeführt, Ressourcen dynamisch skaliert und EMR-Notebookserstellt und ausgeführt wird. Amazon EMR verwendet die folgenden Rollen bei der Interaktion mit anderenAWS-Services. Jede Rolle verfügt über eine eindeutige Funktion innerhalb von Amazon EMR. DieThemen in diesem Abschnitt beschreiben die Rollenfunktion und stellen die Standardrollen und dieBerechtigungsrichtlinie für jede Rolle bereit.

Ist ein Anwendungscode auf Ihrem Cluster vorhanden, der die AWS-Services direkt aufruft, müssen Siemöglicherweise das SDK verwenden, um Rollen anzugeben. Weitere Informationen finden Sie im Use IAMRoles with Applications That Call AWS Services Directly (p. 249).

Themen• Service Role for Amazon EMR (EMR Role) (p. 228)

227

Page 235: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

• Service Role for Cluster EC2 Instances (EC2 Instance Profile) (p. 229)• Service Role for Automatic Scaling in EMR (Auto Scaling Role) (p. 234)• Service Role for EMR-Notebooks (p. 235)• Verwenden der serviceverknüpften Rolle für Amazon EMR (p. 236)

Service Role for Amazon EMR (EMR Role)

Die EMR-Rolle definiert die zulässigen Aktionen für Amazon EMR bei der Bereitstellung von Ressourcenund der Ausführung von Service-Level-Aufgaben, die nicht im Kontext einer EC2-Instance innerhalbeines Clusters ausgeführt werden. Die Servicerolle wird beispielsweise verwendet, um EC2-Instancesbereitzustellen, wenn ein Cluster gestartet wird.

• The default role is EMR_DefaultRole• The default managed policy attached to EMR_DefaultRole is AmazonElasticMapReduceRole

Der Inhalt von Version 10 AmazonElasticMapReduceRole wird unten angezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotInstanceRequests", "ec2:CreateFleet", "ec2:CreateLaunchTemplate", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteLaunchTemplate", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:DescribeAvailabilityZones", "ec2:DescribeAccountAttributes", "ec2:DescribeDhcpOptions", "ec2:DescribeImages", "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:DescribeLaunchTemplates", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribePrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeSubnets", "ec2:DescribeTags", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcs", "ec2:DetachNetworkInterface", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute",

228

Page 236: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

"ec2:RequestSpotInstances", "ec2:RevokeSecurityGroupEgress", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:DeleteVolume", "ec2:DescribeVolumeStatus", "ec2:DescribeVolumes", "ec2:DetachVolume", "iam:GetRole", "iam:GetRolePolicy", "iam:ListInstanceProfiles", "iam:ListRolePolicies", "iam:PassRole", "s3:CreateBucket", "s3:Get*", "s3:List*", "sdb:BatchPutAttributes", "sdb:Select", "sqs:CreateQueue", "sqs:Delete*", "sqs:GetQueue*", "sqs:PurgeQueue", "sqs:ReceiveMessage", "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms", "application-autoscaling:RegisterScalableTarget", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:PutScalingPolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:Describe*" ] }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot*", "Condition": { "StringLike": { "iam:AWSServiceName": "spot.amazonaws.com" } } } ]}

Service Role for Cluster EC2 Instances (EC2 Instance Profile)

Das Servicerolle für EC2-Cluster-Instances (auch als EC2-Instance-Profil für Amazon EMR bezeichnet)ist eine spezielle Art von Servicerolle, die jeder EC2-Instance in einem Amazon EMR-Cluster zugewiesenwird, wenn die Instance startet. Anwendungsprozesse, die auf der Hadoop-Ökosystem ausgeführt werden,übernehmen diese Rolle für Berechtigungen für die Interaktion mit anderen AWS-Services.

Weitere Informationen zu Servicerollen für EC2-Instances finden Sie unter Verwenden einer IAM-Rolle zumErteilen von Berechtigungen für Anwendungen, die auf Amazon EC2-Instances ausgeführt werden im IAM-Benutzerhandbuch.

Important

Das standardmäßige Servicerolle für EC2-Cluster-Instances und die verwaltete Richtlinie, die esverwendet, werden mit Berechtigungen konfiguriert, die Ihnen die Möglichkeit geben, einen vollfunktionsfähigen Clusters so einfach wie möglich zu erstellen. Wir empfehlen dringend, diese

229

Page 237: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Richtlinie zu ändern und die geringsten für Ihre Anwendung erforderlichen Berechtigungen zugewähren. Weitere Informationen finden Sie im Creating a Service Role for Cluster EC2 InstancesWith Least-Privileged Permissions (p. 231).

Default Role and Managed Policy

• The default role is EMR_EC2_DefaultRole.• The default managed policy attached to EMR_EC2_DefaultRole isAmazonElasticMapReduceforEC2Role

Der Inhalt von Version 3 von AmazonElasticMapReduceforEC2Role wird unten angezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "cloudwatch:*", "dynamodb:*", "ec2:Describe*", "elasticmapreduce:Describe*", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSteps", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:MergeShards", "kinesis:PutRecord", "kinesis:SplitShard", "rds:Describe*", "s3:*", "sdb:*", "sns:*", "sqs:*", "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "glue:GetTableVersions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:UpdatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:CreateUserDefinedFunction", "glue:UpdateUserDefinedFunction", "glue:DeleteUserDefinedFunction",

230

Page 238: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

"glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ] } ]}

Creating a Service Role for Cluster EC2 Instances With Least-Privileged Permissions

Als bewährte Methode empfehlen wir dringend, ein Servicerolle für EC2-Cluster-Instances und eineBerechtigungsrichtlinie zu erstellen, mit minimalen Berechtigungen für andere AWS-Services, die IhreAnwendung benötigt.

Die standardmäßige verwaltete Richtlinie, AmazonElasticMapReduceforEC2Role, bietetBerechtigungen, mit denen Sie problemlos einen ersten Cluster starten können. Allerdings erfordertAmazon EMR keine Berechtigungen zum Starten, Überwachen und Verwalten eines einfachen Clusters.Wenn Sie einen Cluster ohne Berechtigungen auf diese Weise starten, wird der Cluster dennoch erstelltund Systemprotokolle werden generiert und an Amazon S3-Buckets im Besitz von Amazon EMR mithilfeeiner alternativen Autorisierungsmethode per Push-Verfahren übertragen. Cluster-Anwendungen könnenjedoch nicht mit anderen AWS-Services interagieren. Beispielsweise ist der Cluster nicht in der Lage sein,in Amazon S3 zu lesen oder zu schreiben.

Die Richtlinienanweisungen unten zeigen Beispiele für die für verschiedene Funktionen von AmazonEMR erforderlichen Berechtigungen. Wir empfehlen, diese Berechtigungen zu verwenden, um eineBerechtigungsrichtlinie zu erstellen, die den Zugriff auf nur diese Funktionen und Ressourcen beschränkt,die Ihr Cluster erfordert. Alle exemplarischen Richtlinienerklärungen verwenden die us-west-2 Regionund fiktive AWS Konto-ID 123456789012Ersetzen Sie diese je nach Bedarf für Ihren Cluster.

Weitere Informationen zum Erstellen und Angeben benutzerdefinierter Rollen finden Sie unter CustomizeIAM Roles (p. 242).

Note

Wenn Sie eine benutzerdefinierte EMR-Rolle für EC2 erstellen, befolgen Sie die grundlegendenWorkflows. Dadurch wird automatisch ein Instance-Profil desselben Namens erstellt. AmazonEC2 ermöglicht Ihnen, Instance-Profile und Rollen mit unterschiedlichen Namen zu erstellen. DaAmazon EMR diese Konfiguration jedoch nicht unterstützt, wird beim Erstellen des Clusters ineiner Fehlermeldung darauf hingewiesen, dass das Instance-Profil ungültig ist.

Reading and Writing Data to Amazon S3 Using EMRFS

Wenn eine Anwendung, die auf einem Amazon EMR-Cluster ausgeführt wird, auf Daten mithilfe dess3://mydata-Formats verweist, wird EMRFS von Amazon EMR verwendet, um die Anforderung zustellen. Cluster lesen und schreiben in der Regel Daten auf diese Weise in Amazon S3 und EMRFSverwendet die Berechtigungen, die standardmäßig an Servicerolle für EC2-Cluster-Instances angefügtsind. Wenn Sie mehrere Cluster-Benutzer und mehrere Datenspeicher haben, kann es sein, dass Benutzerunterschiedliche Berechtigungen für EMRFS-Daten in Amazon S3 benötigen. Zu diesem Zweck könnenSie IAM-Rollen für EMRFS verwenden. EMRFS kann dadurch verschiedene Rollen mit unterschiedlichenBerechtigungsrichtlinien annehmen, basierend auf dem Benutzer oder der Gruppe, der bzw. die dieAnforderung stellt, oder dem Speicherort der EMRFS-Daten in Amazon S3. Weitere Informationen findenSie im Configure IAM Roles for EMRFS Requests to Amazon S3 (p. 244).

Da IAM-Rollen für EMRFS auf die Berechtigungen zurückgreifen, die dem Servicerolle für EC2-Cluster-Instances angefügt sind, empfehlen wir als bewährte Methode, IAM-Rollen für EMRFS zu verwendenund die EMRFS- und Amazon S3-Berechtigungen auf das Servicerolle für EC2-Cluster-Instances zubeschränken.

Die Beispielanweisung unten zeigt die Berechtigungen, die erforderlich sind, damit EMRFS Anforderungenan Amazon S3 senden kann.

231

Page 239: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

• my-data-bucket-in-s3-for-emrfs-reads-and-writes specifies the bucket in Amazon S3where the cluster reads and writes data and all sub-folders using /*. Add only those buckets and foldersthat your application requires.

• The policy statement that allows dynamodb actions is required only if EMRFS consistent view is enabled.EmrFSMetadata specifies the default folder for EMRFS consistent view. For more information, seeAktivieren der konsistenten Ansicht (p. 90).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListBucketVersions", "s3:ListMultipartUploadParts", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::my-data-bucket-in-s3-for-emrfs-reads-and-writes", "arn:aws:s3:::my-data-bucket-in-s3-for-emrfs-reads-and-writes/*" ] }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:PutItem", "dynamodb:DescribeTable", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem", "dynamodb:DeleteTable", "dynamodb:UpdateTable" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/EmrFSMetadata" }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "dynamodb:ListTables", "s3:HeadBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [

232

Page 240: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

"sqs:GetQueueUrl", "sqs:DeleteMessageBatch", "sqs:ReceiveMessage", "sqs:DeleteQueue", "sqs:SendMessage", "sqs:CreateQueue" ], "Resource": "arn:aws:sqs:us-west-2:123456789012:EMRFS-Inconsistency-*" } }

Archiving Log Files to Amazon S3

Die folgende Richtlinienanweisung ermöglicht dem Amazon EMR-Cluster die Archivierung vonProtokolldateien in dem angegebenen Amazon S3-Speicherort. Im Beispiel unten, wenn der Cluster erstelltwurde, s3://MyLoggingBucket/MyEMRClusterLogs wurde unter Verwendung der Protokollordner S3-Standort in der Konsole verwenden, --log-uri Option vom AWS CLIoder verwenden Sie die LogUriParameter im RunJobFlow Befehl. Weitere Informationen finden Sie im Archive Log Files to AmazonS3 (p. 174).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::MyLoggingBucket/MyEMRClusterLogs/*" } ]}

Using the Debugging Tools

Die folgende Richtlinienanweisung ermöglicht Aktionen, die erforderlich sind, wenn Sie das Amazon EMR-Debugging-Tool aktivieren. Das Archivieren von Protokolldateien in Amazon S3 und die zugehörigen, imobigen Beispiel gezeigten Berechtigungen sind für das Debugging erforderlich. Weitere Informationenfinden Sie im Enable the Debugging Tool (p. 177).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:GetQueueUrl", "sqs:SendMessage" ], "Resource": "arn:aws:sqs:us-west-2:123456789012:AWS-ElasticMapReduce-*" } ]}

Using the AWS Glue Data Catalog

Die folgende Richtlinienanweisung ermöglicht Aktionen, die erforderlich sind, wenn Sie die AWS Glue DataCatalog als Metastore für Anwendungen verwenden. Weitere Informationen finden Sie unter Verwendendes AWS Glue Data Catalog als Metastore für Spark SQL, Verwenden des AWS Glue Data Catalogals Metastore für Hive und Verwendung von Presto mit dem AWS Glue Data Catalog im Amazon EMR-Versionshinweise.

233

Page 241: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "glue:GetTableVersions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:UpdatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:CreateUserDefinedFunction", "glue:UpdateUserDefinedFunction", "glue:DeleteUserDefinedFunction", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ] } ]}

Service Role for Automatic Scaling in EMR (Auto Scaling Role)

Die Auto Scaling-Rolle für EMR führt eine ähnliche Funktion aus wie die Servicerolle, ermöglicht aberzusätzliche Aktionen für dynamisch skalierte Umgebungen.

• The default role is EMR_AutoScaling_DefaultRole.• The default managed policy attached to EMR_AutoScaling_DefaultRole isAmazonElasticMapReduceforAutoScalingRole.

Der Inhalt von Version 1 AmazonElasticMapReduceforAutoScalingRole wird unten angezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:DescribeAlarms", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" } ]}

234

Page 242: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Service Role for EMR-Notebooks

Jedes EMR-Notebook benötigt Berechtigungen, um auf andere AWS-Ressourcen zuzugreifen undAktionen auszuführen. Die der Servicerolle zugeordneten IAM-Richtlinien bieten Berechtigungen für denCluster, damit er mit anderen AWS-Services zusammenarbeiten kann. Wenn Sie ein Notizbuch mit demAWS Management Console, Sie geben eine AWS service role. Sie können die Standardrolle verwenden,EMR_Notebooks_DefaultRoleoder geben Sie eine Rolle an, die Sie erstellen. Wenn ein Notebook nichtvorher erstellt wurde, haben Sie die Möglichkeit, die Standardrolle zu erstellen.

• The default role is EMR_Notebooks_DefaultRole.• The default managed policy attached to EMR_Notebooks_DefaultRole isAmazonElasticMapReduceEditorsRole.

Der Inhalt von Version 1 AmazonElasticMapReduceEditorsRole wird unten angezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "aws:elasticmapreduce:editor-id", "aws:elasticmapreduce:job-flow-id" ] } } } ]}

Wenn Sie Git-Repositorys mit Ihrem Notebook verknüpfen und ein Geheimnis für das Repositoryerstellen müssen, müssen Sie die Berechtigung secretsmanager:GetSecretValue in der IAM-Richtlinie hinzufügen, die der Servicerolle für EMR-Notebooks zugewiesen ist. Eine Beispielrichtlinie wirdnachfolgend gezeigt:

235

Page 243: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ]}

Verwenden der serviceverknüpften Rolle für Amazon EMR

Amazon EMR verwendet serviceverknüpfte Rollen von AWS Identity and Access Management (IAM). Eineserviceverknüpfte Rolle ist ein spezieller Typ einer IAM-Rolle, die direkt mit Amazon EMR verknüpft ist. Dieserviceverknüpfte Rolle wird durch Amazon EMR vordefiniert und schließt die Berechtigungen ein, die vonAmazon EMR zum Aufrufen von Amazon EC2 in Ihrem Namen benötigt werden, um Cluster-Ressourcenzu bereinigen, die nicht mehr verwendet werden. Die serviceverknüpfte Rolle funktioniert in Verbindungmit der Amazon EMR-Service-Rolle und dem Amazon EC2-Instance-Profil für Amazon EMR. WeitereInformationen über die Service-Rolle und das Instance-Profil finden Sie unter Configure IAM Service Rolesfor Amazon EMR Permissions to AWS Services and Resources (p. 223).

Amazon EMR definiert die Berechtigungen dieser serviceverknüpften Rolle. Sofern keine andereKonfiguration festgelegt wurde, kann nur Amazon EMR die Rolle übernehmen. Die definiertenBerechtigungen umfassen die Vertrauens- und Berechtigungsrichtlinie. Diese Berechtigungsrichtlinie kannkeinen anderen IAM-Entitäten zugewiesen werden. Sie können die Rolle nur löschen, nachdem Sie alleEMR-Cluster im Konto beendet haben.

Informationen zu anderen Services, die serviceverknüpfte Rollen unterstützen, finden Sie unterAWS-Services, die mit IAM funktionieren. Suchen Sie nach den Services, für die Ja in der SpalteServiceverknüpfte Rolle angegeben ist. Wählen Sie über einen Link Ja aus, um die Dokumentation zu einerserviceverknüpften Rolle für diesen Service anzuzeigen.

Berechtigungen von serviceverknüpften Rollen für Amazon EMR

Amazon EMR verwendet die Rolle AWSServiceRoleForEMRCleanup. Sie ist eine dienstbasierte Rolle, diees Amazon EMR erlaubt, Amazon EC2-Ressourcen in Ihrem Namen zu beenden und zu löschen, wenndie Amazon EMR-Dienstrolle diese Fähigkeit verloren hat. Amazon EMR erstellt die Rolle während derClustererstellung automatisch, wenn sie noch nicht vorhanden ist.

Die serviceverknüpfte Rolle AWSServiceRoleForEMRCleanup vertraut darauf, dass die folgenden Servicesdie Rolle annehmen:

• elasticmapreduce.amazonaws.com

Die Berechtigungsrichtlinie für mit AWSServiceRoleForEMRCleanup serviceverknüpfte Rollen erlaubtAmazon EMR die Durchführung der folgenden Aktionen für die angegebenen Ressourcen:

• Aktion: DescribeInstances für ec2• Aktion: DescribeSpotInstanceRequests für ec2• Aktion: ModifyInstanceAttribute für ec2• Aktion: TerminateInstances für ec2• Aktion: CancelSpotInstanceRequests für ec2• Aktion: DeleteNetworkInterface für ec2• Aktion: DescribeInstanceAttribute für ec2

236

Page 244: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

• Aktion: DescribeVolumeStatus für ec2• Aktion: DescribeVolumes für ec2• Aktion: DetachVolume für ec2• Aktion: DeleteVolume für ec2

Sie müssen Berechtigungen konfigurieren, damit eine IAM-Entität (z. B. Benutzer, Gruppe oder Rolle) eineserviceverknüpfte Rolle erstellen, bearbeiten oder löschen können.

So erlauben Sie einer IAM-Entität das Erstellen der serviceverknüpften RolleAWSServiceRoleForEMRCleanup

Fügen Sie die folgende Anweisung der Berechtigungsrichtlinie für die IAM-Entität hinzu, die dieserviceverknüpfte Rolle erstellen soll:

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } }}

So erlauben Sie einer IAM-Entität das Bearbeiten der Beschreibung für die serviceverknüpfte RolleAWSServiceRoleForEMRCleanup

Fügen Sie die folgende Anweisung der Berechtigungsrichtlinie für die IAM-Entität hinzu, die dieBeschreibung einer serviceverknüpften Rolle bearbeiten soll:

{ "Effect": "Allow", "Action": [ "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } }}

So erlauben Sie einer IAM-Entität das Löschen der serviceverknüpften RolleAWSServiceRoleForEMRCleanup

Fügen Sie die folgende Anweisung der Berechtigungsrichtlinie für die IAM-Entität hinzu, die eineserviceverknüpfte Rolle löschen soll:

237

Page 245: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } }}

Erstellen einer serviceverknüpften Rolle für Amazon EMR

Sie müssen die Rolle AWSServiceRoleForEMRCleanup nicht manuell erstellen. Wenn Sie einen Clusterzum ersten Mal starten oder wenn keine serviceverknüpfte Rolle vorhanden ist, erstellt Amazon EMR dieserviceverknüpfte Rolle für Sie. Sie müssen über Berechtigungen zum Erstellen der serviceverknüpftenRolle verfügen. Sie finden eine Beispiel-Anweisung, die diese Funktion zur Berechtigungsrichtlinie einerIAM-Entity (z. B. Benutzer, Gruppe oder Rolle) hinzufügt, unter Berechtigungen von serviceverknüpftenRollen für Amazon EMR (p. 236).

Important

Wenn Sie Amazon EMR bereits vor dem October 24, 2017 verwendet haben, alsobevor serviceverknüpfte Rollen unterstützt wurden, hat Amazon EMR die RolleAWSServiceRoleForEMRCleanup in Ihrem Konto erstellt. Weitere Informationen finden Sie unterIn meinem IAM-Konto wird eine neue Rolle angezeigt.

Bearbeiten einer serviceverknüpften Rolle für Amazon EMR

Amazon EMR verhindert die Bearbeitung der serviceverknüpften Rolle AWSServiceRoleForEMRCleanup.Da möglicherweise verschiedene Entitäten auf die Rolle verweisen, kann der Rollenname nach demErstellen einer serviceverknüpften Rolle nicht mehr geändert werden. Sie können jedoch die Beschreibungder Rolle mit IAM bearbeiten.

Bearbeiten der Beschreibung einer serviceverknüpften Rolle (IAM-Konsole)

Sie können die IAM-Konsole für das Bearbeiten der Beschreibung einer serviceverknüpften Rolleverwenden.

So bearbeiten Sie die Beschreibung einer serviceverknüpften Rolle (Konsole)

1. Wählen Sie im Navigationsbereich der IAM-Konsole Roles (Rollen) aus.2. Wählen Sie den Namen der zu ändernden Rolle aus.3. Wählen Sie rechts neben Role description (Rollebschreibung) die Option Edit (Bearbeiten) aus.4. Geben Sie die neue Beschreibung im Dialogfeld ein und klicken Sie auf Save changes (Änderungen

speichern).

Bearbeiten der Beschreibung einer serviceverknüpften Rolle (IAM-CLI)

Sie können die IAM-Befehle der AWS Command Line Interface für das Bearbeiten der Beschreibung einerserviceverknüpften Rolle verwenden.

238

Page 246: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

So ändern Sie die Beschreibung einer serviceverknüpften Rolle (CLI)

1. (Optional) Um die aktuelle Beschreibung einer Rolle anzuzeigen, verwenden Sie die folgendenBefehle:

$ aws iam get-role --role-name role-name

Verwenden Sie den Rollennamen, nicht den ARN, um sich auf Rollen mit denCLI-Befehlen zu beziehen. Wenn eine Rolle zum Beispiel folgenden ARN hat:arn:aws:iam::123456789012:role/myrole, verweisen Sie auf die Rolle als myrole.

2. Um die Beschreibung einer serviceverknüpften Rolle zu aktualisieren, verwenden Sie einen derfolgenden Befehle:

$ aws iam update-role-description --role-name role-name --description description

Bearbeiten der Beschreibung einer serviceverknüpften Rolle (IAM-API)

Sie können die IAM-API für das Bearbeiten der Beschreibung einer serviceverknüpften Rolle verwenden.

So ändern Sie die Beschreibung einer serviceverknüpften Rolle (API)

1. (Optional) Um die aktuelle Beschreibung einer Rolle anzuzeigen, verwenden Sie den folgenden Befehl:

IAM-API: GetRole2. Um die Beschreibung einer Rolle zu aktualisieren, verwenden Sie den folgenden Befehl:

IAM-API: UpdateRoleDescription

Löschen einer serviceverknüpften Rolle für Amazon EMR

Wenn Sie eine Funktion oder einen Service, die bzw. der eine serviceverknüpfte Rolle erfordert, nicht mehrbenötigen, sollten Sie diese Rolle löschen. Auf diese Weise haben Sie keine ungenutzte Entität, die nichtaktiv überwacht oder verwaltet wird. Sie müssen jedoch Ihre serviceverknüpfte Rolle zunächst bereinigen,bevor Sie sie löschen können.

Bereinigen einer serviceverknüpften Rolle

Bevor Sie mit IAM eine serviceverknüpfte Rolle löschen können, müssen Sie sich zunächst vergewissern,dass die Rolle über keine aktiven Sitzungen verfügt, und alle Ressourcen entfernen, die von der Rolleverwendet werden.

So überprüfen Sie in der IAM-Konsole, ob die serviceverknüpfte Rolle über eine aktive Sitzungverfügt

1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.2. Wählen Sie im Navigationsbereich Roles aus. Wählen Sie den Namen (nicht das Kontrollkästchen) der

Rolle AWSServiceRoleForEMRCleanup aus.3. Wählen Sie auf der Seite Summary (Übersicht) für die ausgewählte Rolle die Option Access Advisor

(Advisor aufrufen) aus.4. Überprüfen Sie auf der Registerkarte Access Advisor (Advisor aufrufen) die jüngsten Aktivitäten für die

serviceverknüpfte Rolle.Note

Wenn Sie sich nicht sicher sind, ob Amazon EMR die Rolle AWSServiceRoleForEMRCleanupverwendet, können Sie versuchen, die Rolle zu löschen. Wenn der Service die Rolle

239

Page 247: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

verwendet, schlägt die Löschung fehl und Sie können die Regionen anzeigen, in denen dieRolle verwendet wird. Wenn die Rolle verwendet wird, müssen Sie warten, bis die Sitzungbeendet wird, bevor Sie die Rolle löschen können. Die Sitzung für eine serviceverknüpfteRolle können Sie nicht widerrufen.

So entfernen Sie die Amazon EMR-Ressourcen, die von AWSServiceRoleForEMRCleanupverwendet werden

• Beenden Sie alle Cluster in Ihrem Konto. Weitere Informationen finden Sie unter Beenden einesClusters (p. 401).

Löschen einer serviceverknüpften Rolle (IAM-Konsole)

Sie können die IAM-Konsole für das Löschen einer serviceverknüpften Rolle verwenden.

So löschen Sie eine serviceverknüpfte Rolle (Konsole)

1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.2. Wählen Sie im Navigationsbereich Roles aus. Aktivieren Sie das Kontrollkästchen (nicht den Namen

oder die Zeile) neben AWSServiceRoleForEMRCleanup.3. Wählen Sie für Role actions oben auf der Seite Delete role.4. Überprüfen Sie im Bestätigungsdialogfeld die letzten Service-Zugriffsdaten, die zeigen, wann jede

der ausgewählten Rollen zuletzt auf den AWS-Service zugegriffen hat. Auf diese Weise können Sieleichter bestätigen, ob die Rolle derzeit aktiv ist. Wählen Sie Yes, Delete, um fortzufahren.

5. Sehen Sie sich die Benachrichtigungen an der IAM-Konsole an, um den Fortschritt der Löschungder serviceverknüpften Rolle zu überwachen. Da die Löschung der serviceverknüpften IAM-Rolleasynchron erfolgt, kann die Löschung nach dem Übermitteln der Rolle für die Löschung erfolgreichsein oder fehlschlagen. Wenn der Vorgang fehlschlägt, können Sie in den Benachrichtigungen Viewdetails oder View Resources auswählen, um zu erfahren, warum die Löschung fehlgeschlagen ist.Wenn das Löschen fehlschlägt, weil der Service Ressourcen enthält, die von der Rolle verwendetwerden, enthält die Angabe des Fehlergrundes eine Liste der Ressourcen.

Löschen einer serviceverknüpften Rolle (IAM-CLI)

Sie können die IAM-Befehle in der AWS Command Line Interface zum Löschen einer serviceverknüpftenRolle verwenden. Da eine serviceverknüpfte Rolle nicht gelöscht werden kann, wenn sie verwendet wirdoder ihr Ressourcen zugeordnet sind, müssen Sie eine Löschungsanfrage übermitteln. Wenn dieseBedingungen nicht erfüllt sind, kann diese Anforderung verweigert werden.

So löschen Sie eine serviceverknüpfte Rolle (CLI)

1. Sie benötigen die deletion-task-id aus der Antwort, um den Status der Löschaufgabezu überprüfen. Geben Sie den folgenden Befehl ein, um eine Löschanforderung für eineserviceverknüpfte Rolle zu übermitteln:

$ aws iam delete-service-linked-role --role-name AWSServiceRoleForEMRCleanup

2. Geben Sie den folgenden Befehl ein, um den Status der Löschaufgabe zu überprüfen:

$ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

Der Status der Löschaufgabe kann NOT_STARTED, IN_PROGRESS, SUCCEEDED oder FAILED lauten.Wenn die Löschung fehlschlägt, gibt der Aufruf den Grund zurück, sodass Sie das Problem behebenkönnen.

240

Page 248: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Löschen einer serviceverknüpften Rolle (IAM-API)

Sie können die IAM-API für das Löschen einer serviceverknüpften Rolle verwenden. Da eineserviceverknüpfte Rolle nicht gelöscht werden kann, wenn sie verwendet wird oder ihr Ressourcenzugeordnet sind, müssen Sie eine Löschungsanfrage übermitteln. Wenn diese Bedingungen nicht erfülltsind, kann diese Anforderung verweigert werden.

So löschen Sie eine serviceverknüpfte Rolle (API)

1. Um eine Löschanfrage für eine serviceverknüpfte Rolle zu übermitteln, rufen SieDeleteServiceLinkedRole auf. Geben Sie in der Anforderung den RollennamenAWSServiceRoleForEMRCleanup an.

Sie benötigen die DeletionTaskId aus der Antwort, um den Status der Löschaufgabe zuüberprüfen.

2. Rufen Sie GetServiceLinkedRoleDeletionStatus auf, um den Status der Löschung zu überprüfen.Geben Sie in der Anfrage die DeletionTaskId an.

Der Status der Löschaufgabe kann NOT_STARTED, IN_PROGRESS, SUCCEEDED oder FAILED lauten.Wenn die Löschung fehlschlägt, gibt der Aufruf den Grund zurück, sodass Sie das Problem behebenkönnen.

Unterstützte Regionen für Amazon EMR-serviceverknüpfte Rollen

Amazon EMR unterstützt die Verwendung von serviceverknüpften Rollen in den folgenden Regionen.

Name der Region Region-ID Unterstützungin Amazon EMR

USA Ost (Nord-Virginia) us-east-1 Ja

USA Ost (Ohio) us-east-2 Ja

USA West (Nordkalifornien) us-west-1 Ja

USA West (Oregon) us-west-2 Ja

Asien-Pazifik (Mumbai) ap-south-1 Ja

Asien-Pazifik (Osaka-Lokal) ap-northeast-3 Ja

Asien-Pazifik (Seoul) ap-northeast-2 Ja

Asien-Pazifik (Singapur) ap-southeast-1 Ja

Asien-Pazifik (Sydney) ap-southeast-2 Ja

Asien-Pazifik (Tokio) ap-northeast-1 Ja

Kanada (Zentral) ca-central-1 Ja

Europa (Frankfurt) eu-central-1 Ja

Europa (Irland) eu-west-1 Ja

Europa (London) eu-west-2 Ja

Europa (Paris) eu-west-3 Ja

Südamerika (São Paulo) sa-east-1 Ja

241

Page 249: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Customize IAM RolesSie können die IAM-Servicerollen und -Berechtigungen anpassen, um Rechte entsprechend IhrenSicherheitsanforderungen zu beschränken. Zum Anpassen von Berechtigungen empfehlen wir, dassSie neue Rollen und Richtlinien erstellen. Beginnen Sie mit den Berechtigungen in den verwaltetenRichtlinien für die Standardrollen (beispielsweise AmazonElasticMapReduceforEC2Roleund AmazonElasticMapReduceRole). Kopieren Sie anschließend die Inhalte in die neuenRichtlinienanweisungen, modifizieren Sie die Berechtigungen entsprechend und fügen Sie die geändertenRichtlinien zu den von Ihnen erstellten Rollen hinzu. Sie müssen über die entsprechenden IAM-Berechtigungen für die Arbeit mit Rollen und Richtlinien verfügen. Weitere Informationen finden Sie imAllow Users and Groups to Create and Modify Roles (p. 250).

Wenn Sie eine benutzerdefinierte EMR-Rolle für EC2 erstellen, befolgen Sie die grundlegenden Workflows.Dadurch wird automatisch ein Instance-Profil desselben Namens erstellt. Amazon EC2 ermöglichtIhnen, Instance-Profile und Rollen mit unterschiedlichen Namen zu erstellen. Da Amazon EMR dieseKonfiguration jedoch nicht unterstützt, wird beim Erstellen des Clusters in einer Fehlermeldung daraufhingewiesen, dass das Instance-Profil ungültig ist.

Important

Eingebundene Richtlinien werden nicht automatisch aktualisiert, wenn sich Serviceanforderungenändern. Wenn Sie eingebundene Richtlinien erstellen und anfügen, achten Sie darauf, dassServiceaktualisierungen stattfinden können, die plötzliche Berechtigungsfehler verursachenkönnen. Für weitere Informationen siehe Verwaltete Richtlinien und eingebundene Richtlinien imIAM-Benutzerhandbuch und Specify Custom IAM Roles When You Create a Cluster (p. 242).

Weitere Informationen zum Arbeiten mit IAM-Rollen finden Sie in den folgenden Themen im IAM-Benutzerhandbuch:

• Creating a Role to Delegate Permissions to an AWS Service• Modifying a Role• Deleting a Role

Specify Custom IAM Roles When You Create a ClusterSie geben die Servicerolle für Amazon EMR und die Rolle für das Amazon EC2-Instance-Profil an,wenn Sie einen Cluster erstellen. Der Benutzer, der Cluster erstellt, benötigt Berechtigungen, um Rollenabzurufen und sie Amazon EMR und den EC2-Instances zuzuweisen. Andernfalls tritt der Fehler Useraccount is not authorized to call EC2 (Benutzerkonto ist nicht zum Aufruf von EC2 autorisiert) auf. WeitereInformationen finden Sie im Allow Users and Groups to Create and Modify Roles (p. 250).

Use the Console to Specify Custom Roles

Beim Erstellen eines Clusters können Sie eine benutzerdefinierte Servicerolle für Amazon EMR, einebenutzerdefinierte Rolle für das EC2-Instance-Profil und eine benutzerdefinierte Auto Scaling-Rolle inAdvanced options (Erweiterte Optionen) angeben. Wenn Sie Quick options (Schnelloptionen) verwenden,werden die Service-Standardrolle und die Standardrolle für das EC2-Instance-Profil angegeben. WeitereInformationen finden Sie im IAM Service Roles Used By Amazon EMR (p. 227).

So geben Sie benutzerdefinierte IAM-Rollen mithilfe der Konsole an

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create Cluster (Cluster erstellen) und Go to advanced options (Erweiterte Optionen

aufrufen) aus.3. Wählen Sie die Cluster-Einstellungen für Ihre Anwendung aus, bis Sie Security Options

(Sicherheitsoptionen) erreichen.

In Permissions (Berechtigungen) sind die Standard-Rollen für Amazon EMR ausgewählt.

242

Page 250: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

4. Wählen Sie Custom (Benutzerdefiniert) aus.5. Wählen Sie für jeden Rollentyp eine Rolle aus der Liste aus. Nur Rollen innerhalb Ihres Kontos, die die

entsprechende Vertrauensstellungen für diesen Rollentyp besitzen, sind aufgeführt.

6. Wählen Sie weitere Optionen wie für Ihren Cluster erforderlich aus. Wählen Sie dann Create Cluster(Cluster erstellen) aus.

Use the AWS CLI to Specify Custom Roles

Sie können eine Servicerolle für EMR und ein Servicerolle für EC2-Cluster-Instances explizit mithilfe vonOptionen mit dem create-cluster-Befehl in der AWS CLI angeben. Verwenden Sie die Option --service-role, um die Servicerolle anzugeben. Verwenden Sie das Argument InstanceProfile derOption --ec2-attributes, um die Rolle für das EC2-Instance-Profil anzugeben.

Die Auto Scaling die Rolle unter Verwendung einer separaten Option, --auto-scaling-role. WeitereInformationen finden Sie unter Verwenden der automatischen Skalierung mit einer benutzerdefiniertenRichtlinie für Instance-Gruppen (p. 421).

So geben Sie benutzerdefinierte IAM-Rollen über die AWS CLI an

• Der folgende Befehl enthält die benutzerdefinierte Servicerolle,MyCustomServiceRoleForEMRund eine benutzerdefinierte Rolle für das EC2-Instanzprofil,MyCustomServiceRoleForClusterEC2Instances, wenn Sie einen Cluster starten. DiesesBeispiel verwendet die Amazon EMR-Standardrolle.

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws emr create-cluster --name "Test cluster" --release-label emr-5.31.0 \--applications Name=Hive Name=Pig --service-role MyCustomServiceRoleForEMR \--ec2-attributes InstanceProfile=MyCustomServiceRoleForClusterEC2Instances,\KeyName=myKey --instance-type m5.xlarge --instance-count 3

Sie können diese Optionen verwenden, um Standardrollen explizit anzugeben, statt die Option --use-default-roles zu verwenden. Die --use-default-roles-Option gibt die Servicerolle an sowie dieRolle für das EC2-Instance-Profil, das in der config-Datei für die AWS CLI definiert ist.

Das folgende Beispiel zeigt den Inhalt einer config-Datei für die AWS CLI, die benutzerdefiniertenRollen für Amazon EMR angibt. Mit dieser Konfigurationsdatei, wenn die --use-default-

243

Page 251: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

roles ist festgelegt, der Cluster wird unter Verwendung der MyCustomServiceRoleForEMR undMyCustomServiceRoleForClusterEC2InstancesStandardmäßig gibt die config-Datei diestandardmäßige service_role als AmazonElasticMapReduceRole und das standardmäßigeinstance_profile als EMR_EC2_DefaultRole an.

[default]output = jsonregion = us-west-1aws_access_key_id = myAccessKeyIDaws_secret_access_key = mySecretAccessKeyemr = service_role = MyCustomServiceRoleForEMR instance_profile = MyCustomServiceRoleForClusterEC2Instances

Configure IAM Roles for EMRFS Requests to Amazon S3Wenn eine Anwendung, die auf einem Amazon EMR-Cluster ausgeführt wird, auf Daten mithilfe dess3://mydata-Formats verweist, wird EMRFS von Amazon EMR verwendet, um die Anforderung zustellen. Für die Interaktion mit Amazon S3 übernimmt EMRFS die Berechtigungsrichtlinien, die an dieService Role for Cluster EC2 Instances (EC2 Instance Profile) (p. 229) angefügt sind, die bei derErstellung des Clusters angegebenen wurde. Es wird dasselbe Servicerolle für EC2-Cluster-Instancesverwendet, unabhängig von dem Benutzer oder der Gruppe, der bzw. die die Anwendung verwendet,oder vom Speicherort der Daten in Amazon S3. Wenn Sie Cluster mit mehreren Benutzern haben, dieunterschiedliche Zugriffsebenen auf Daten in Amazon S3 über EMRFS benötigen, können Sie eineSicherheitskonfiguration mit IAM-Rollen für EMRFS einrichten. EMRFS kann ein anderes Servicerollefür EC2-Cluster-Instances übernehmen, basierend auf dem Benutzer oder der Gruppe, der bzw. die dieAnforderung stellt, oder vom Speicherort der Daten in Amazon S3. Jede IAM-Rolle für EMRFS kann andereBerechtigungen für den Zugriff auf Daten in Amazon S3 besitzen.

IAM-Rollen für EMRFS sind verfügbar mit der Amazon EMR-Version 5.10.0 und höher. Wenn Sieeine ältere Version verwenden oder zusätzliche Berechtigungsanforderungen haben, die über das,was IAM-Rollen für EMRFS bieten, hinausgehen, können Sie stattdessen einen benutzerdefiniertenAnmeldeinformationsanbieter erstellen. Weitere Informationen finden Sie im Zugriff auf EMRFS-Daten inAmazon S3 genehmigen (p. 107). Weitere Informationen über das EMRFS finden Sie unter Verwenden vonEMR File System (EMRFS) (p. 89).

Wenn Sie eine Sicherheitskonfiguration nutzen, um IAM-Rollen für EMRFS anzugeben, richten SieRollenzuordnungen ein. Jede Rollenzuordnung gibt eine IAM-Rolle an, die Kennungen entspricht. DieseKennungen bestimmen die Basis für den Zugriff auf Amazon S3 über EMRFS. Die Kennungen könnenBenutzer, Gruppen oder Amazon S3-Präfixe sein, die einen Datenspeicherort angeben. Wenn EMRFSeine Anforderung an Amazon S3 stellt und die die Anfrage den Grundlagen für den Zugriff entspricht, sorgtEMRFS dafür, dass EC2-Cluster-Instances die entsprechende IAM-Rolle für die Anfrage übernehmen.Die IAM-Berechtigungen, die dieser Rolle angefügt sind, gelten anstelle der IAM-Berechtigungen, die anServicerolle für EC2-Cluster-Instances angefügt sind.

Die Benutzer und Gruppen in einer Rollenzuordnung sind Hadoop-Benutzer und -gruppen, die auf demCluster definiert sind. Benutzer und Gruppen werden EMRFS im Kontext der Anwendung übergeben,die es verwendet (z. B. YARN-Benutzer-Identitätswechsel). Das Amazon S3-Präfix kann ein Bucket-Spezifizierer beliebiger Tiefe sein (z. B. s3://mybucket oder s3://mybucket/myproject/mydata).Sie können mehrere Kennungen in einer einzigen Rollenzuordnung angeben, die jedoch alle vom selbenTyp sein müssen.

Important

IAM-Rollen für EMRFS bieten die Isolierung auf Anwendungsebene zwischen Benutzern derAnwendung. Sie bieten keine Isolierung auf Host-Ebene zwischen Benutzern auf dem Host. JederBenutzer mit Zugriff auf das Cluster kann die Isolation umgehen, um eine Rolle zu übernehmen.

244

Page 252: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Wenn eine Cluster-Anwendung über EMRFS eine Anforderung an Amazon S3 stellt, wertet EMRFSRollenzuordnungen in der Reihenfolge von oben nach unten aus, in der sie in der Sicherheitskonfigurationerscheinen. Wenn eine über EMRFS gestellte Anfrage nicht mit einer Kennung übereinstimmt, greiftEMRFS auf das Servicerolle für EC2-Cluster-Instances zurück. Aus diesem Grund empfehlen wir, dass Siedie Richtlinien, die dieser Rolle zugeordnet werden, auf Berechtigungen in Amazon S3 begrenzen. WeitereInformationen finden Sie im Service Role for Cluster EC2 Instances (EC2 Instance Profile) (p. 229).

Configure Roles

Bevor Sie eine Sicherheitskonfiguration mit IAM-Rollen für EMRFS einrichten, müssen Sie die Rollen unddie Berechtigungsrichtlinien für die Rollen planen und erstellen. Weitere Informationen finden Sie unter Wiefunktionieren Rollen für EC2-Instanzen? im IAM-Benutzerhandbuch. Wenn Sie Genehmigungsrichtlinienerstellen, empfehlen wir Ihnen, mit der gemanagten Richtlinie zu beginnen, die an die standardmäßigeEMR-Rolle für EC2 angehängt ist, und bearbeiten Sie dann diese Richtlinie gemäß Ihren Anforderungen.Die Standardrolle lautet EMR_EC2_DefaultRole, und die standardmäßige verwaltete Richtlinie istAmazonElasticMapReduceforEC2Role. Weitere Informationen finden Sie unter Service Role forCluster EC2 Instances (EC2 Instance Profile) (p. 229).

Updating Trust Policies for Assume Role Permissions

Jede Rolle, die EMRFS verwendet, muss über eine Vertrauensrichtlinie verfügen, die der EMR-Rolle desClusters erlaubt, sie zu übernehmen. Entsprechend muss die EMR-Rolle des Clusters für EC2 über eineVertrauensrichtlinie verfügen, die EMRFS-Rollen deren Übernahme erlaubt.

Das folgende Beispiel einer Vertrauensrichtlinie ist den Rollen für EMRFS zugeordnet. Mit der Anweisungkann die standardmäßige EMR-Rolle für EC2 die Rolle übernehmen. Beispiel: Sie verfügen über diezwei fiktiven EMRFS-Rollen EMRFSRole_First und EMRFSRole_Second. In diesem Fall wird dieseRichtlinienanweisung den Vertrauensrichtlinien für jede davon hinzugefügt.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::AWSAcctID:role/EMR_EC2_DefaultRole" }, "Action":"sts:AssumeRole" } ]}

Außerdem wird im folgenden Beispiel die Vertrauensrichtlinienanweisung der EMR_EC2_DefaultRolehinzugefügt, um zu erlauben, dass die beiden fiktiven EMRFS-Rollen diese übernehmen.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": ["arn:aws:iam::AWSAcctID:role/EMRFSRole_First", "arn:aws:iam::AWSAcctID:role/EMRFSRole_Second"] }, "Action":"sts:AssumeRole" } ]}

245

Page 253: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

So aktualisieren Sie die Vertrauensrichtlinie einer IAM-Rolle

Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

1. Wählen Sie Roles (Rollen), geben Sie den Namen der Rolle unter Search (Suche) ein und wählen Siedann Role name (Rollenname) aus.

2. Wählen Sie auf der Registerkarte Trust Relationships (Vertrauensbeziehungen) Edit Trust Relationship(Vertrauensbeziehung bearbeiten) aus.

3. Fügen Sie eine Vertrauensanweisung gemäß dem Policy Document (Richtliniendokument) und denRichtlinien oben hinzu und wählen Sie dann Update Trust Policy (Vertrauensrichtlinie updaten).

Specifying a Role as a Key User

Wenn eine Rolle den Zugriff auf einen Speicherort in Amazon S3 zulässt, der mit einem AWS KeyManagement Service-Kundenmasterschlüssel (Customer Master Key, CMK) verschlüsselt ist, mussdie Rolle als Schlüsselbenutzer angegeben werden. So erhält die Rolle die Berechtigung, den CMK zuverwenden. Weitere Informationen finden Sie unter Verwenden von Schlüsselrichtlinien im AWS KeyManagement Service Developer Guide.

Set Up a Security Configuration with IAM Roles for EMRFSImportant

Kann keine der IAM-Rollen für EMRFS, die Sie angeben, angewendet werden, verwendet EMRFSdie EMR-Rolle für EC2. Sie sollten die Berechtigungen dieser Rolle auf Amazon S3 einschränkenwie für Ihre Anwendung erforderlich, und dann diese benutzerdefinierte Rolle anstelle vonEMR_EC2_DefaultRole angeben, wenn Sie einen Cluster erstellen. Weitere Informationenfinden Sie unter Customize IAM Roles (p. 242) und Specify Custom IAM Roles When YouCreate a Cluster (p. 242).

So geben Sie IAM-Rollen für EMRFS-Anfragen an Amazon S3 über die Konsole an

1. Erstellen Sie eine Sicherheitskonfiguration, die Rollenzuordnungen spezifiziert:

a. Wählen Sie in der Amazon EMR-Konsole Security configurations (Sicherheitskonfigurationen),Create (Erstellen) aus.

b. Geben Sie in Name (Name) einen Namen für die Sicherheitskonfiguration ein. Verwenden Siediesen Namen zum Angeben der Sicherheitskonfiguration, wenn Sie einen Cluster erstellen.

c. Wählen Sie Use IAM roles for EMRFS requests to Amazon S3 (IAM-Rollen für EMRFS-Anfragenan Amazon S3 auswählen) aus.

d. Wählen Sie die IAM role (IAM-Rolle) aus, die angewendet werden soll. Wählen Sie in Basisfor access (Grundlage für Zugriff) einen ID-Typ (Users (Benutzer), Groups (Gruppen) oderS3 prefixes (S3-Präfixe)) aus der Liste aus und geben Sie entsprechende IDs ein. Wenn Siemehrere Kennungen verwenden, trennen Sie diese durch Komma (ohne Leerzeichen dazwischen)voneinander ab. Weitere Informationen zu den einzelnen ID-Typen finden Sie unten in der JSONconfiguration reference (p. 247).

e. Wählen Sie Add role (Rolle hinzufügen) aus, um zusätzliche Rollenzuordnungen einzurichten wieim vorherigen Schritt beschrieben.

f. Richten Sie weitere Sicherheitskonfigurationsoptionen ein wie erforderlich. WählenSie Create (Erstellen) aus. Weitere Informationen finden Sie im Erstellen einerSicherheitskonfiguration (p. 187).

2. Geben Sie die Sicherheitskonfiguration an, die Sie oben erstellt haben, wenn Sie einen Clustererstellen. Weitere Informationen finden Sie im Angabe einer Sicherheitskonfiguration für einenCluster (p. 205).

246

Page 254: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

So geben Sie IAM-Rollen für EMRFS-Anfragen an Amazon S3 über die AWS CLI ein

1. Verwenden Sie den Befehl aws emr create-security-configuration. Dadurch wie ein Namefür die Sicherheitskonfiguration spezifiziert sowie die Sicherheitskonfigurationsdetails im JSON-Format.

Der unten angezeigte Beispielbefehl erstellt eine Sicherheitskonfiguration mit dem NamenEMRFS_Roles_Security_Configuration. Es basiert auf einer JSON-Struktur in der DateiMyEmrfsSecConfig.json, die im selben Verzeichnis gespeichert werden, in dem der Befehlausgeführt wird.

aws emr create-security-configuration --name EMRFS_Roles_Security_Configuration --security-configuration file://MyEmrFsSecConfig.json.

Verwenden Sie die folgenden Richtlinien für die Struktur der MyEmrFsSecConfig.json Datei.Sie können diese Struktur zusammen mit Strukturen für andere Sicherheitskonfigurationsoptionenangeben. Weitere Informationen finden Sie im Erstellen einer Sicherheitskonfiguration (p. 187).

Es folgt ein Beispiel-JSON-Snippet für die Angabe benutzerdefinierter IAM-Rollen für EMRFSinnerhalb einer Sicherheitskonfiguration. Es veranschaulicht Rollenzuordnungen für die dreiverschiedenen ID-Typen, gefolgt von einer Parameterreferenz.

{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1", "IdentifierType": "User", "Identifiers": [ "user1" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } }}

Parameter Beschreibung

"AuthorizationConfiguration": Erforderlich.

"EmrFsConfiguration": Erforderlich. Enthält Rollenzuordnungen.

"RoleMappings": Erforderlich. Enthält mindestens eineRollenzuordnungsdefinition. Rollenzuordnungenwerden von oben nach unten in derangezeigten Reihenfolge ausgewertet. Wenneine Rollenzuordnung für einen EMRFS-Aufruf von Daten bei Amazon S3 als TRUEbewertet wird, werden keine weiterenRollenzuordnungen bewertet. EMRFS verwendetdie angegebene IAM-Rolle für die Anforderung.Rollenzuordnungen bestehen aus den folgendenerforderlichen Parametern:

247

Page 255: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Parameter Beschreibung

"Role": Gibt den ARN-Identifier einer IAM-Rolleim Format arn:aws:iam::account-id:role/role-name an. Das ist die IAM-Rolle, die Amazon EMR annimmt, wenn dieEMRFS-Anforderung an Amazon S3 einem derangegebenen Identifiers entspricht.

"IdentifierType": Kann eines der folgenden Elemente sein:

• "User" gibt an, dass es sich bei den IDs ummindestens einen Hadoop-Benutzer handelt,der Linux-Kontobenutzer oder Kerberos-Prinzipal sein kann. Wenn die EMRFS-Anfrage vom angegebenen Benutzer oderden angegebenen Benutzern stammt, wird dieIAM-Rolle angenommen.

• "Prefix" gibt an, dass es sich beim Identifierum einen Amazon S3-Speicherort handelt.Die IAM-Rolle wird für Aufrufe am Standortoder an Standorten mit den angegebenenPräfixen angenommen. Beispiel: Das Präfixs3://mybucket/ stimmt mit s3://mybucket/mydir und s3://mybucket/yetanotherdir überein.

• "Group" gibt an, dass es sich bei denIDs um mindestens eine Hadoop-Gruppehandelt. Die IAM-Rolle wird angenommen,wenn die Anfrage von einem Benutzer in derangegebenen Gruppe oder den angegebenenGruppen stammt.

"Identifiers": Legt einen oder mehrere IDs desentsprechenden ID-Typs fest. Trennen Siemehrere IDs durch Kommas ohne Leerzeichen.

2. Verwenden Sie den Befehl aws emr create-cluster, um einen Cluster einzurichten, und gebenSie die Sicherheitskonfiguration an, die Sie im vorherigen Schritt erstellt haben.

Im folgenden Beispiel wird ein Cluster erstellt, bei dem Standard-Core-Hadoop-Anwendungeninstalliert sind. Der Cluster verwendet die oben erstellte Sicherheitskonfiguration alsEMRFS_Roles_Security_Configuration und verwendet außerdem eine benutzerdefinierte EMR-Rolle für EC2, EC2_Role_EMR_Restrict_S3, die mit dem InstanceProfile-Argument des --ec2-attributes-Parameters angegeben wird.

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie könnenentweder entfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichenunter Windows durch ein Caret-Zeichen (^).

aws emr create-cluster --name MyEmrFsS3RolesCluster \--release-label emr-5.31.0 --ec2-attributes InstanceProfile=EC2_Role_EMR_Restrict_S3,KeyName=MyKey \--instance-type m5.xlarge --instance-count 3 \--security-configuration EMRFS_Roles_Security_Configuration

248

Page 256: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideConfigure Service Roles for Amazon EMR

Use Resource-Based Policies for Amazon EMR Access to AWSGlue Data CatalogFalls Sie AWS Glue in Verbindung mit Hive, Spark oder Presto in Amazon EMR verwenden, unterstütztAWS Glue ressourcenbasierte Richtlinien, um den Zugriff auf Data Catalog-Ressourcen zu steuern. DieseRessourcen beinhalten Datenbanken, Tabellen, Verbindungen und benutzerdefinierte Funktionen. WeitereInformationen finden Sie im Abschnitt AWS Glue-Ressourcenrichtlinien im AWS Glue Developer Guide.

Bei der Verwendung ressourcenbasierter Richtlinien zur Begrenzung des Zugriffs auf AWS Glue inAmazon EMR muss der von Ihnen in den Berechtigungen angegebene Prinzipal der Rollen-ARN sein,der dem EC2-Instance-Profil zugeordnet ist, das beim Erstellen eines Clusters festgelegt wird. Für eineressourcenbasierte Richtlinie, die an einen Katalog angefügt ist, können Sie zum Beispiel den Rollen-ARN für das Standardprofil Servicerolle für EC2-Cluster-Instances angeben, EMR_EC2_DefaultRole alsPrincipal. Verwenden Sie dazu das Format im folgenden Beispiel:

arn:aws:iam::acct-id:role/EMR_EC2_DefaultRole

Die acct-id kann sich von der AWS Glue-Konto-ID unterscheiden. Dies ermöglicht den Zugriff von EMR-Clustern in verschiedenen Konten. Sie können mehrere Prinzipale angeben, jeden von einem anderenKonto.

Use IAM Roles with Applications That Call AWS Services DirectlyAnwendungen, die auf den EC2-Instances eines Clusters ausgeführt werden, können das Instance-Profildazu verwenden, um temporäre Sicherheitsanmeldeinformationen zu erhalten, wenn Sie AWS-Servicesaufrufen.

Die Hadoop-Versionen verfügbar mit Amazon EMR Version 2.3.0 und höher wurden bereits aktualisiert, umIAM-Rollen nutzen. Wenn Ihre Anwendung ausschließlich auf der Hadoop-Architektur ausgeführt wird undkeine Services in AWS direkt aufruft, sollte sie ohne Änderungen mit den IAM-Rollen funktionieren.

Wenn Ihre Anwendung Services in AWS direkt aufruft, müssen Sie sie aktualisieren, um die Vorteilevon IAM-Rollen nutzen zu können. Ihre Anwendung erhält die Kontoanmeldeinformationen nicht von /etc/hadoop/conf/core-site.xml auf den EC2-Instances im Cluster, sondern verwendet ein SDKfür den Zugriff auf die Ressourcen mittels IAM-Rollen oder ruft die EC2-Instance-Metadaten auf, um dietemporären Anmeldeinformationen zu erhalten.

So greifen Sie über ein SDK mittels IAM-Rollen auf AWS-Ressourcen zu

• Die folgenden Themen zeigen, wie verschiedene AWS-SDKs verwendet werden können, um mittelsIAM-Rollen auf temporäre Anmeldeinformationen zuzugreifen. Jedes Thema beginnt mit einerAnwendungsversion, die keine IAM-Rollen verwendet, und führt Sie anschließend schrittweise durchdie Konvertierung der Anwendung zur Verwendung von IAM-Rollen.

• Using IAM Roles for Amazon EC2 Instances with the SDK for Java in the AWS SDK for JavaDeveloper Guide

• Using IAM Roles for Amazon EC2 Instances with the SDK for .NET in the AWS SDK für .NETDeveloper Guide

• Using IAM Roles for Amazon EC2 Instances with the SDK for PHP in the AWS SDK für PHPDeveloper Guide

• Using IAM Roles for Amazon EC2 Instances with the SDK for Ruby in the AWS SDK für RubyDeveloper Guide

249

Page 257: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

Abrufen von temporären Anmeldeinformationen aus den EC2-Instance-Metadaten

• Rufen Sie die folgende URL von einer EC2-Instance ab, die unter der angegebenen IAM-Rolleausgeführt wird, gibt sie die temporären Sicherheitsanmeldeinformationen zurück (AccessKeyId,SecretAccessKey, SessionToken und Expiration). Das folgende Beispiel verwendet das Standard-Instance-Profil für Amazon EMR, EMR_EC2_DefaultRole.

GET http://169.254.169.254/latest/meta-data/iam/security-credentials/EMR_EC2_DefaultRole

Weitere Informationen zum Schreiben von Anwendungen, die IAM-Rollen verwenden, finden Sie unterErteilen des Zugriffs auf AWS für auf Amazon EC2 ausgeführte Anwendungen.

Weitere Informationen zu temporären Anmeldeinformationen finden Sie unter Verwenden temporärerSicherheitsanmeldeinformationen im Using Temporary Security Credentials.

Allow Users and Groups to Create and Modify RolesIAM-Prinzipale (Benutzer und Gruppen), die Rollen für einen Cluster erstellen, ändern und festlegen,einschließlich Standardrollen, müssen die Berechtigung haben, die folgenden Aktionen durchzuführen.Details zu den einzelnen Aktionen finden Sie unter Aktionen im IAM API Reference.

• iam:CreateRole

• iam:PutRolePolicy

• iam:CreateInstanceProfile

• iam:AddRoleToInstanceProfile

• iam:ListRoles

• iam:GetPolicy

• iam:GetInstanceProfile

• iam:GetPolicyVersion

• iam:AttachRolePolicy

• iam:PassRole

Die Berechtigung iam:PassRole gewährt die Erstellung von Clustern. Die restlichen Berechtigungengewähren die Erstellung von Standardrollen.

Amazon EMR Beispiele für identitätsbasierteRichtlinienIAM-Benutzer und -Rollen besitzen standardmäßig keine Berechtigungen zum Erstellen oder Ändern vonAmazon EMR-Ressourcen. Sie können auch keine Aufgaben mithilfe der AWS Management Console,AWS CLI oder AWS-API ausführen. Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Benutzernund Rollen die Berechtigung zum Ausführen bestimmter API-Operationen für die angegebenen Ressourcengewähren, die diese benötigen. Der Administrator muss diese Richtlinien anschließend den IAM-Benutzernoder -Gruppen anfügen, die diese Berechtigungen benötigen.

Informationen dazu, wie Sie unter Verwendung dieser beispielhaften JSON-Richtliniendokumente eineidentitätsbasierte IAM-Richtlinie erstellen, finden Sie unter Erstellen von Richtlinien auf der JSON-Registerkarte im IAM-Benutzerhandbuch.

250

Page 258: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

Themen• Bewährte Methoden für Richtlinien für Amazon EMR (p. 251)• Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer (p. 251)• Verwaltete Amazon EMR-Richtlinien (p. 252)• IAM-Richtlinien für Tag-basierten Zugriff auf Cluster und EMR-Notebooks (p. 255)• Verweigern der Aktion ModifyInstanceGroup (p. 263)

Bewährte Methoden für Richtlinien für Amazon EMRIdentitätsbasierte Richtlinien sind sehr leistungsfähig. Sie können festlegen, ob jemand Amazon EMR-Ressourcen in Ihrem Konto erstellen oder löschen oder auf sie zugreifen kann.. Dies kann zusätzlicheKosten für Ihr AWS-Konto verursachen. Befolgen Sie beim Erstellen oder Bearbeiten identitätsbasierterRichtlinien die folgenden Anleitungen und Empfehlungen:

• Verwenden Sie zum Einstieg von AWS verwaltete Richtlinien – Um schnell mit der Verwendung vonAmazon EMR zu beginnen, verwenden Sie von AWS verwaltete Richtlinien, um Ihren Mitarbeiterndie von ihnen benötigten Berechtigungen zu gewähren. Diese Richtlinien sind bereits in IhremKonto verfügbar und werden von AWS gewartet und aktualisiert. Weitere Informationen finden Sieunter Verwenden Sie zum Einstieg Berechtigungen mit von AWS verwalteten Richtlinien im IAM-Benutzerhandbuch und Verwaltete Amazon EMR-Richtlinien (p. 252).

• Gewähren Sie die geringstmöglichen Berechtigungen – Gewähren Sie beim Erstellen benutzerdefinierterRichtlinien nur die Berechtigungen, die zum Ausführen einer Aufgabe erforderlich sind. Beginnen Sie miteinem Mindestsatz von Berechtigungen und gewähren Sie zusätzliche Berechtigungen wie erforderlich.Dies ist sicherer, als mit Berechtigungen zu beginnen, die zu weit gefasst sind, und dann später zuversuchen, sie zu begrenzen. Weitere Informationen finden Sie unter Gewähren der geringstmöglichenBerechtigungen im IAM-Benutzerhandbuch.

• Aktivieren Sie für sensible Vorgänge MFA – Fordern Sie von IAM-Benutzern die Verwendung vonMulti-Factor Authentication (MFA), um zusätzliche Sicherheit beim Zugriff auf sensible Ressourcenoder API-Operationen zu bieten. Weitere Informationen finden Sie unter Verwenden von Multi-FactorAuthentication (MFA) in AWS im IAM-Benutzerhandbuch.

• Verwenden Sie Richtlinienbedingungen, um zusätzliche Sicherheit zu bieten – Definieren Sie dieBedingungen, unter denen Ihre identitätsbasierten Richtlinien den Zugriff auf eine Ressource zulassen,soweit praktikabel. Beispielsweise können Sie Bedingungen schreiben, um eine Reihe von zulässigenIP-Adressen festzulegen, von denen eine Anforderung stammen muss. Sie können auch Bedingungenschreiben, die Anforderungen nur innerhalb eines bestimmten Datums- oder Zeitbereichs zulassenoder die Verwendung von SSL oder MFA fordern. Weitere Informationen finden Sie unter IAM JSON-Richtlinienelemente: Bedingung in der IAM-Benutzerhandbuch.

Gewähren der Berechtigung zur Anzeige der eigenenBerechtigungen für BenutzerIn diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen, die IAM-Benutzern die Berechtigung zumAnzeigen der Inline-Richtlinien und verwalteten Richtlinien gewährt, die ihrer Benutzeridentität angefügtsind. Diese Richtlinie enthält Berechtigungen für die Ausführung dieser Aktion auf der Konsole oder für dieprogrammgesteuerte Ausführung über die AWS CLI oder die AWS-API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [

251

Page 259: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

"iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": [ "arn:aws:iam::*:user/${aws:username}" ] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Verwaltete Amazon EMR-RichtlinienDie einfachste Möglichkeit, Vollzugriff oder Lesezugriff auf benötigte Amazon EMR-Aktionen zu erteilen,besteht in der Verwendung von IAM-verwalteten Richtlinien für Amazon EMR. Verwaltete Richtlinienhaben den Vorteil, automatisch aktualisiert zu werden, wenn sich die Berechtigungsanforderungenändern. Wenn Sie eingebundene Richtlinien verwenden, können Service-Veränderungen auftreten, die zuBerechtigungsfehlern führen.

Diese Richtlinien umfassen nicht nur Aktionen für Amazon EMR, sondern auch Aktionen für AmazonEC2, Amazon S3 und Amazon CloudWatch, die Amazon EMR zum Ausführen von Aktionen wie Startenvon Instances, Schreiben von Protokolldateien und Verwalten von Hadoop-Aufträgen und -Aufgabenverwendet.

Cluster-Benutzer benötigen entsprechende Berechtigungen, damit Anwendungendie Servicerollen für Amazon EMR in ihrem Namen übergeben können. Die RichtlinieAmazonElasticMapReduceFullAccess ist die verwaltete Standardrichtlinie für Benutzer mit Vollzugriffauf Amazon EMR und enthält eine Anweisung, die die iam:PassRole-Berechtigungen für alle Ressourcenerlaubt. Mit dieser Anweisung kann der Benutzer beliebige Rollen an andere AWS-Services übergeben,damit Amazon EMR mit diesen Services im Namen des Benutzers interagieren kann.

Wenn Sie eine restriktivere Richtlinie einrichten möchten, fügen Sie den entsprechenden Benutzernoder Gruppen eine eingebundene Richtlinie hinzu, die iam:PassRole nur für Amazon EMR-spezifischeRollen erlaubt. Das folgende Beispiel zeigt eine Anweisung, die die iam:PassRole-Berechtigungennur für die Amazon EMR-Standardrollen erlaubt: EMR_DefaultRole, EMR_EC2_DefaultRole undEMR_AutoScalingDefaultRole. Wenn Sie benutzerdefinierte Rollen verwenden, ersetzen Sie dieStandardrollennamen durch die Namen Ihrer benutzerdefinierten Rollen.

{ "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam:::role/EMR_DefaultRole", "arn:aws:iam:::role/EMR_EC2_DefaultRole",

252

Page 260: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

"arn:aws:iam:::role/EMR_AutoScaling_DefaultRole", "arn:aws:iam:::role/EMR_Notebooks_DefaultRole" ]}

Wenn Sie benutzerdefinierte Richtlinien erstellen müssen, empfehlen wir ihnen, mit verwalteten Richtlinienzu beginnen und diese entsprechend Ihren Anforderungen zu bearbeiten.

Informationen zum Anfügen von Richtlinien an IAM-Benutzer (Prinzipale) finden Sie unter Arbeiten mitverwalteten Richtlinien über die AWS Management Console im IAM-Benutzerhandbuch.

IAM-verwaltete Richtlinie für Vollzugriff

Um alle erforderlichen Aktionen für Amazon EMR zuzulassen, fügen Sie die verwaltete RichtlinieAmazonElasticMapReduceFullAccess an. Der Inhalt dieser Richtlinienanweisung ist unten dargestellt.Er zeigt alle Aktionen, die Amazon EMR für andere Dienste benötigt.

Der Inhalt von Version 6 dieser Richtlinienanweisung ist unten gezeigt. Da die RichtlinieAmazonElasticMapReduceFullAccess automatisch aktualisiert wird, kann die hier gezeigte Richtlinieveraltet sein. Verwenden Sie die AWS Management Console, um die aktuelle Richtlinie anzuzeigen.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:*", "cloudformation:CreateStack", "cloudformation:DescribeStackEvents", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:CancelSpotInstanceRequests", "ec2:CreateRoute", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteRoute", "ec2:DeleteTags", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeAccountAttributes", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:DescribeRouteTables", "ec2:DescribeNetworkAcls", "ec2:CreateVpcEndpoint", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RevokeSecurityGroupEgress", "ec2:RunInstances", "ec2:TerminateInstances", "elasticmapreduce:*", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListRoles", "iam:PassRole",

253

Page 261: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

"kms:List*", "s3:*", "sdb:*", "support:CreateCase", "support:DescribeServices", "support:DescribeSeverityLevels" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com.cn" ] } } } ]}

Note

Die Aktion ec2:TerminateInstances ermöglicht dem IAM-Benutzer das Beenden aller mitdem IAM-Konto verknüpften Amazon EC2-Instances, auch wenn sie nicht Teil eines EMR-Clusterssind.

IAM-verwaltete Richtlinie für LesezugriffUm Amazon EMR ausschließlich Leserechte zu erteilen, fügen Sie die verwaltete RichtlinieAmazonElasticMapReduceReadOnlyAccess an. Der Inhalt dieser Richtlinienanweisung ist untendargestellt. Platzhalterzeichen für das elasticmapreduce-Element geben an, dass nur Aktionen, diemit der angegebenen Zeichenfolgen beginnen, zulässig sind. Hinweis: Da diese Richtlinie Aktionen nichtausdrücklich verweigert, kann dennoch eine andere Richtlinienanweisung verwendet werden, um denZugriff auf bestimmte Aktionen zu gewähren.

Note

Da die Richtlinie AmazonElasticMapReduceReadOnlyAccess automatisch aktualisiert wird, kanndie hier gezeigte Richtlinie veraltet sein. Verwenden Sie die AWS Management Console, um dieaktuelle Richtlinie anzuzeigen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticmapreduce:Describe*", "elasticmapreduce:List*", "elasticmapreduce:ViewEventsFromAllClustersInConsole" "s3:GetObject", "s3:ListAllMyBuckets", "s3:ListBucket", "sdb:Select", "cloudwatch:GetMetricStatistics" ], "Resource": "*"

254

Page 262: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

} ]}

IAM-Richtlinien für Tag-basierten Zugriff auf Cluster und EMR-NotebooksSie können in Ihrer identitätsbasierten Richtlinie auf Tags basierende Bedingungen zum Steuern desZugriffs auf Cluster und EMR-Notebooks verwenden.

Weitere Informationen zum Hinzufügen von Tags zu Clustern finden Sie unter Tagging EMRClusters. Weitere Informationen über die Verwendung von Bedingungsschlüssel finden Sie unterBedingungsschlüssel (p. 221).

Die folgenden Beispiele zeigen verschiedene Szenarien und Möglichkeiten zur Nutzungder Bedingungsoperatoren mit Amazon EMR-Bedingungskontextschlüsseln. Diese IAM-Richtlinienanweisungen dienen nur zu Demonstrationszwecken und sollten nicht inProduktionsumgebungen verwendet werden. Es gibt mehrere Möglichkeiten für die Kombination vonRichtlinienanweisungen zum Gewähren oder Verweigern von Berechtigungen entsprechend IhrenAnforderungen. Weitere Informationen zum Planen und Testen von IAM-Richtlinien finden Sie unter IAM-Benutzerhandbuch.

Important

Das explizite Ablehnen von Berechtigungen für Markierungsaktionen stellt eine wichtigeÜberlegung dar. Dies verhindert, dass Benutzer eine Ressource markieren und sich dadurchBerechtigungen erteilen, die Sie nicht gewähren wollten. Wenn das Markieren von Aktionenfür eine Ressource nicht verweigert wird, kann ein Benutzer Tags ändern und die Absichtder Tag-basierten Richtlinien umgehen. Ein Beispiel für eine Richtlinie, die das Markierenvon Aktionen verweigert, finden Sie unter. Zugriff zum Hinzufügen und Entfernen von Tagsverweigern (p. 257).

Beispiel identitätsbasierter Richtlinienanweisungen für ClusterDie folgenden Beispiele zeigen identitätsbasierte Berechtigungsrichtlinien, die verwendet werden, um dieAktionen zu steuern, die mit EMR-Clustern zulässig sind.

Important

Die Schaltfläche ModifyInstanceGroup Handlung in Amazon EMR erfordert nicht, dass Sieeine Cluster-ID angeben. Aus diesem Grund erfordert das Verweigern dieser Aktion basierendauf Cluster-Tags zusätzliche Überlegungen. Weitere Informationen finden Sie im Verweigern derAktion ModifyInstanceGroup (p. 263).

Themen• Zulassen von Aktionen nur für Cluster mit bestimmten Tag-Werten (p. 255)• Benötigen von Cluster-Tagging bei der Erstellung eines Clusters (p. 256)• Zugriff zum Hinzufügen und Entfernen von Tags verweigern (p. 257)• Zulassen von Aktionen für Cluster mit einem bestimmten Tag, unabhängig vom Tag-Wert (p. 257)• Festlegen, dass Benutzer beim Erstellen eines Clusters Tags hinzufügen müssen (p. 258)

Zulassen von Aktionen nur für Cluster mit bestimmten Tag-Werten

Die folgenden Beispiele veranschaulichen eine Richtlinie, mit der ein Benutzer Aktionen auf der Grundlagedes Cluster-Tags department mit dem Wert dev durchführen sowie Cluster mit demselben Tag markierenkann. Das letzte Richtlinienbeispiel zeigt, wie Sie Rechte zum Markieren von EMR-Clustern mit etwasanderem als demselben Tag ablehnen.

255

Page 263: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

Im folgenden Richtlinienbeispiel wird die StringEquals Bedingungsoperator versucht Übereinstimmungdev mit dem Wert für das Tag department. (z. B.. Wenn das Tag department wurde dem Clusternicht hinzugefügt oder enthält den Wert nicht dev, gilt die Richtlinie nicht und die Aktionen sind von dieserRichtlinie nicht zulässig. Wenn keine anderen Richtlinienanweisungen die Aktionen zulassen, kann derBenutzer nur mit Clustern arbeiten, die dieses Tag mit diesem Wert enthalten.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt12345678901234", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps", "elasticmapreduce:TerminateJobFlows", "elasticmapreduce:SetTerminationProtection", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:DescribeStep" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department": "dev" } } } ]}

Sie können auch mehrere Tag-Werte mithilfe eines Bedingungsoperators angeben. Um beispielsweise alleAktionen in Clustern zuzulassen, in denen das Tag department den Wert dev oder test enthält könnenSie den Bedingungsblock im vorherigen Beispiel durch Folgendes ersetzen.

"Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department":["dev", "test"] } }

Benötigen von Cluster-Tagging bei der Erstellung eines Clusters

Wie im oben stehenden Beispiel sucht die folgenden Beispielrichtlinie dasselbe übereinstimmende Tag:den Wert dev für das Tag department. In diesem Fall gibt der RequestTag-Bedingungskontextschlüsselan, dass die Richtlinie während der Tag-Erstellung angewendet wird, sodass der Benutzer ein Tag erstellenmuss, das dem angegebenen Wert entspricht.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1479334524000", "Effect": "Allow", "Action": [

256

Page 264: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

"elasticmapreduce:RunJobFlow", "iam:PassRole" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/department": "dev" } } } ]}

Zugriff zum Hinzufügen und Entfernen von Tags verweigern

Im folgenden Beispiel werden die EMR-Aktionen, die das Hinzufügen und Entfernen von Tags zulassen, miteinem StringNotEquals-Operator kombiniert, der das Tag dev aus früheren Beispielen angibt. DieseRichtlinie sieht vor, einem Benutzer die Berechtigung zum Hinzufügen oder Entfernen von Tags in EMR-Clustern, die mit einem department-Tag mit dem Wert dev markiert sind, zu verweigern.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticmapreduce:AddTags", "elasticmapreduce:RemoveTags" ], "Condition": { "StringNotEquals": { "elasticmapreduce:ResourceTag/department": "dev" } }, "Resource": [ "*" ] } ]}

Zulassen von Aktionen für Cluster mit einem bestimmten Tag, unabhängig vom Tag-Wert

Sie können auch Aktionen nur für Cluster mit einem bestimmten Tag, unabhängig vom Tag-Wert,zulassen. Dazu können Sie den Null-Operator verwenden. Weitere Informationen finden Sie unterBedingungsoperator zum Prüfen auf Vorhandensein von Bedingungsschlüsseln im IAM-Benutzerhandbuch.Um beispielsweise Aktionen nur in EMR-Clustern mit dem Tag department unabhängig von dementhaltenen Wert, zuzulassen, können Sie die Bedingungsblöcke im vorherigen Beispiel durch Folgendesersetzen. Der Null-Operator sucht einem vorhandenen department-Tag in einem EMR-Cluster. Wenndas Tag vorhanden ist, wird die Anweisung Null entsprechend der in dieser Richtlinienanweisungangegebenen Bedingung mit "false" ausgewertet und die jeweiligen Aktionen werden zugelassen.

"Condition": { "Null": { "elasticmapreduce:ResourceTag/department":"false" }}

257

Page 265: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

Mit der folgenden Richtlinienanweisung kann ein Benutzer einen EMR-Cluster nur erstellen, wenn derCluster über ein department-Tag mit einem beliebigen Wert verfügt.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:RunJobFlow", "iam:PassRole" ], "Condition": { "Null": { "elasticmapreduce:RequestTag/department": "false" } }, "Effect": "Allow", "Resource": [ "*" ] } ]}

Festlegen, dass Benutzer beim Erstellen eines Clusters Tags hinzufügen müssen

Mit der folgenden Richtlinienanweisung kann ein Benutzer einen EMR-Cluster nur erstellen, wenn derCluster über ein department-Tag mit dem Wert dev beim Erstellen verfügt.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:RunJobFlow", "iam:PassRole" ], "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/department": "dev" } }, "Effect": "Allow", "Resource": [ "*" ] } ]}

Beispiel für identitätsbasierte Richtlinienanweisungen für EMR-NotebooksDie IAM-Beispiel-Richtlinienanweisungen in diesem Abschnitt zeigen häufige Szenarien für dieVerwendung von Schlüsseln, um zulässige Aktionen mit EMR-Notebooks zu beschränken. Solangekeine andere mit dem Prinzipal (Benutzer) verknüpfte Richtlinie die Aktionen zulässt, schränken dieBedingungskontextschlüssel die zulässigen Aktionen wie angegeben ein.

258

Page 266: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

Example – Zugriff nur auf Notebooks erlauben, die ein Benutzer basierend auf Tagging erstellt

Wenn die folgende Beispiel-Richtlinienanweisung an eine Rolle oder einen Benutzer angefügt wird,können IAM-Benutzer nur mit Notebooks arbeiten, die sie selbst erstellt haben. Diese Richtlinienanweisungverwendet das bei der Erstellung eines Notebooks angewendete Standard-Tag.

Im Beispiel wird die StringEquals Bedingungsoperator versucht, eine Variable zuzuordnen, die aktuellenBenutzer darstellt IAM Benutzer-ID ({aws:userId}) mit dem Wert des Tags creatorUserID. (z. B..Wenn das Tag creatorUserID wurde dem Notebook nicht hinzugefügt oder enthält nicht den Wert derID des aktuellen Benutzers, die Richtlinie wird nicht angewendet und die Aktionen sind von dieser Richtlinienicht zulässig. Wenn keine anderen Richtlinienanweisungen die Aktionen zulassen, kann der Benutzer nurmit Notebooks arbeiten, die dieses Tag mit diesem Wert enthalten.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:DescribeEditor", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } } } ]}

Example –Notebook-Tagging anfordern, wenn ein Notebook erstellt wird

In diesem Beispiel wird der Kontextschlüssel RequestTag verwendet. Die Aktion CreateEditor ist nurdann zulässig, wenn der Benutzer das creatorUserID Tag, das standardmäßig hinzugefügt wird, nichtändert oder löscht. Die Variable ${aws:userId} gibt die Benutzer-ID des aktuell aktiven Benutzers an. Diesist der Standardwert des Tags.

Die Richtlinienanweisung kann verwendet werden, um sicherzustellen, dass Benutzer das TagcreateUserId nicht entfernen und dessen Wert nicht ändern.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:CreateEditor" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/creatorUserId": "${aws:userid}" } } } ]

259

Page 267: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

}

Dieses Beispiel erfordert, dass der Benutzer den Cluster mit einem Tag mit der Schlüsselzeichenfolgeerstellt. dept und ein Wert, der auf einen der folgenden Werte eingestellt ist: datascience, , und Siehaben die Möglichkeit analytics, , und Sie haben die Möglichkeit operations.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:CreateEditor" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/dept": [ "datascience", "analytics", "operations" ] } } } ]}

Example –Die Notebook-Erstellung auf getaggte Cluster beschränken und Notebook-Tagsanfordern

Dieses Beispiel erlaubt die Notebook-Erstellung nur, wenn das Notebook mit einem Tag erstelltwird, bei dem die Schlüsselzeichenfolge owner auf einen der angegebenen Werte festgelegt ist.Darüber hinaus kann das Notebook nur erstellt werden, wenn der Cluster ein Tag enthält, bei dem dieSchlüsselzeichenfolge department auf einen der angegebenen Werte festgelegt ist.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:CreateEditor" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:RequestTag/owner": [ "owner1", "owner2", "owner3" ], "elasticmapreduce:ResourceTag/department": [ "dep1", "dep3" ] } } } ]}

260

Page 268: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

Example –Basierend auf Tags die Möglichkeit einschränken, ein Notebook zu starten

Dieses Beispiel schränkt die Möglichkeit, ein Notebook zu starten, auf Notebooks ein, die ein Tagenthalten, bei dem die Schlüsselzeichenfolge owner auf einen der angegebenen Werte festgelegt ist. Dadas Element Resource verwendet wird, um nur den editor anzugeben, gilt die Bedingung nicht für denCluster und ein Tagging ist nicht erforderlich.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:StartEditor" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:editor/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/owner": [ "owner1", "owner2" ] } } } ]}

Dieses Beispiel ähnelt dem obigen. Die Einschränkung gilt hier jedoch nur für getaggte Cluster, nicht fürNotebooks.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:StartEditor" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:cluster/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department": [ "dep1", "dep3" ] } } } ]}

Dieses Beispiel verwendet andere Notebook- und Cluster-Tags. Es ermöglicht das Starten einesNotebooks nur, wenn Folgendes zutrifft:

• Das Notebook enthält ein Tag, bei dem die Schlüsselzeichenfolge owner auf einen der angegebenenWert festgelegt ist.

—$and—• Der Cluster enthält ein Tag, bei dem die Schlüsselzeichenfolge department auf einen der angegebenen

Wert festgelegt ist.

261

Page 269: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:StartEditor" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:editor/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/owner": [ "user1", "user2" ] } } }, { "Action": [ "elasticmapreduce:StartEditor" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:cluster/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department": [ "datascience", "analytics" ] } } } ]}

Example –Basierend auf Tags die Möglichkeit einschränken, den Notebook-Editor zu öffnen

In diesem Beispiel kann der Notebook-Editor nur geöffnet werden, wenn Folgendes zutrifft:

• Das Notebook enthält ein Tag, bei dem die Schlüsselzeichenfolge owner auf einen der angegebenenWert festgelegt ist.

—$and—• Der Cluster enthält ein Tag, bei dem die Schlüsselzeichenfolge department auf einen der angegebenen

Wert festgelegt ist.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:OpenEditorInConsole" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:editor/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/owner": [ "user1", "user2" ]

262

Page 270: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

} } }, { "Action": [ "elasticmapreduce:OpenEditorInConsole" ], "Effect": "Allow", "Resource": "arn:aws:elasticmapreduce:*:123456789012:cluster/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/department": [ "datascience", "analytics" ] } } } ]}

Verweigern der Aktion ModifyInstanceGroupDie Schaltfläche Instanzgruppen ändern Handlung in Amazon EMR erfordert nicht, dass Sie eine Cluster-ID mit der Aktion angeben. Stattdessen können Sie nur eine Instance-Gruppen-ID angeben. Aus diesemGrund hat eine scheinbar einfache Ablehnungsrichtlinie für diese Aktion, die auf einer Cluster-ID odereinem Cluster-Tag basiert, möglicherweise nicht die beabsichtigte Wirkung. Betrachten Sie die folgendeBeispielrichtlinie.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67" } ] }

Wenn ein Benutzer mit dieser Richtlinie eine ModifyInstanceGroup -Aktion und gibt nur die Instance-Gruppen-ID an, die Richtlinie wird nicht angewendet. Da die Aktion für alle anderen Ressourcen zulässigist, ist die Aktion erfolgreich.

Eine Lösung für dieses Problem ist das Anfügen einer Richtlinienanweisung an die Identität, die eineKeineRessource Elements, um alle ModifyInstanceGroup -Aktion ohne Cluster-ID ausgegeben. Diefolgende Beispielrichtlinie fügt eine solche Deny-Anweisung hinzu, sodass jede ModifyInstanceGroups-Anforderung schlägt fehl, sofern keine Cluster-ID angegeben ist. Da eine Identität eine Cluster-ID mit derAktion angeben muss, sind Ablehnungsanweisungen basierend auf der Cluster-ID daher wirksam.

{

263

Page 271: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeispiele für identitätsbasierte Richtlinien

"Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Deny", "NotResource": "arn:*:elasticmapreduce:*:*:cluster/*" } ] }

Ein ähnliches Problem liegt vor, wenn Sie die ModifyInstanceGroups -Aktion basierend auf dem Wert,der einem Cluster-Tag zugeordnet ist. Die Lösung ist ähnlich. Zusätzlich zu einer Deny-Anweisung, die denTag-Wert angibt, können Sie eine Richtlinienanweisung hinzufügen, die ModifyInstanceGroup -Aktion,wenn das von Ihnen angegebene Tag unabhängig vom Wert nicht vorhanden ist.

Das folgende Beispiel zeigt eine Richtlinie, die, wenn sie einer -Identität angefügt ist, der Identität dieModifyInstanceGroups beliebige Cluster mit dem Tag zu bearbeiten department eingestellt aufdev. (z. B.. Diese Anweisung ist nur aufgrund der Ablehnungsanweisung wirksam, die StringNotLikeBedingung, um die Aktion abzulehnen, es sei denn, die department Tag ist vorhanden.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ], "Condition": { "StringEquals": { "aws:ResourceTag/department": "dev" } }, "Effect": "Deny", "Resource": "*" }, { "Action": [ "elasticmapreduce:ModifyInstanceGroups" ],

264

Page 272: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAuthenticate to Cluster Nodes

"Condition": { "StringNotLike": { "aws:ResourceTag/department": "?*" } }, "Effect": "Deny", "Resource": "*" } ],}

Authenticate to Amazon EMR Cluster NodesSSH-Clients können mit einem Amazon EC2-Schlüsselpaar Cluster-Instances authentifizieren. Alternativkönnen Sie bei Amazon EMR Version 5.10.0 oder höher Kerberos so konfigurieren, dass Benutzer undSSH-Verbindungen gegenüber dem Master-Knoten authentifiziert werden. Weitere Informationen finden Sieim Use Kerberos Authentication (p. 265).

Themen• Use an Amazon EC2 Key Pair for SSH Credentials (p. 265)• Use Kerberos Authentication (p. 265)

Use an Amazon EC2 Key Pair for SSH CredentialsAmazon EMR-Cluster-Knoten werden auf Amazon EC2-Instances ausgeführt. Sie können mit Cluster-Knoten auf die gleiche Weise eine Verbindung herstellen wie mit Amazon EC2-Instances. Mit Amazon EC2können Sie ein Schlüsselpaar erstellen, oder Sie können ein Schlüsselpaar importieren. Wenn Sie einenCluster erstellen, können Sie das Amazon EC2-Schlüsselpaar angeben, das für SSH-Verbindungen mitallen Cluster-Instances verwendet wird. Außerdem können Sie auch einen Cluster ohne ein Schlüsselpaarerstellen. Dies geschieht normalerweise mit vorübergehenden Clusters, die starten, gewisse Schritteausführen und dann automatisch beendet werden.

Der von Ihnen für die Verbindung verwendete SSH-Client benötigt die Datei mit dem privaten Schlüssel,der mit diesem Schlüsselpaar verknüpft ist. Dies ist eine .pem-Datei für SSH-Clients unter Linux, Unix undmacOS. Sie müssen die Berechtigungen so festlegen, dass nur der Schlüsselbesitzer berechtigt ist, auf dieDatei zuzugreifen. Dies ist eine.ppk-Datei für SSH-Clients mit Windows, und die.ppk-Datei wird in der Regelvon der .pem-Datei erstellt.

• For more information about creating an Amazon EC2 key pair, see Amazon EC2 Key Pairs in theAmazon EC2-Benutzerhandbuch für Linux-Instances.

• For instructions about using PuTTYgen to create a .ppk file from a .pem file, see Converting Your PrivateKey Using PuTTYgen in the Amazon EC2-Benutzerhandbuch für Linux-Instances.

• For more information about setting .pem file permissions and how to connect to an EMR cluster's masternode using different methods—including ssh from Linux or macOS, PuTTY from Windows, or the AWSCLI from any supported operating system, see Verbinden mit dem Master-Knoten über SSH (p. 385).

Use Kerberos AuthenticationAmazon EMR-Version 5.10.0 und höher unterstützt Kerberos, ein Netzwerk-Authentifizierungsprotokoll,das vom Massachusetts Institute of Technology (MIT) entwickelt wurde. Kerberos verwendet eineVerschlüsselung mit geheimem Schlüssel, um eine starke Authentifizierung zu bieten, sodass Kennwörter

265

Page 273: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

oder andere Anmeldeinformationen nicht in einem unverschlüsselten Format über das Netzwerk gesendetwerden.

In Kerberos werden Dienste und Benutzer, die authentifizieren müssen, bekannt als principals. Prinzipielleexistieren innerhalb einer Kerberos realm. Innerhalb der Realität ist ein Kerberos-Server bekannt alskey distribution center (KDC) stellt die Mittel zur Authentifizierung zur Verfügung. Das KDC wird durchdie tickets zur Authentifizierung. Das KDC unterhält eine Datenbank der Prinzipale in seinem Bereich,mit ihren Passwörtern und anderen administrativen Informationen zu jedem Prinzipal. Ein KDC kannauch Authentifizierungsdaten von Prinzen in anderen Bereichen akzeptieren, die bekannt sind als cross-realm trust. Darüber hinaus kann ein EMR-Cluster einen externen KDC verwenden, um die Prinzipien zuauthentifizieren.

Ein gängiges Szenario für die Einrichtung einer bereichsübergreifenden Vertrauensstellung oder für dieVerwendung eines externen KDC ist die Authentifizierung von Benutzern von einer Active Directory-Domäne aus. Auf diese Weise können Benutzer mit ihrem Domänenbenutzerkonto auf einen EMR-Clusterzugreifen, wenn sie SSH verwenden, um eine Verbindung zu einem Cluster herzustellen oder mit Big Data-Anwendungen zu arbeiten.

Bei Verwendung der Kerberos-Authentifizierung konfiguriert Amazon EMR Kerberos für die Anwendungen,Komponenten und Subsysteme, die es auf dem Cluster installiert, damit sie gegenseitig authentifiziertwerden.

Important

Amazon EMR unterstützt AWS Directory Service for Microsoft Active Directory in einerbereichsübergreifenden Vertrauensstellung oder als externes KDC nicht.

Bevor Sie Kerberos mit Amazon EMR konfigurieren, empfehlen wir, dass Sie sich über Kerberos-Konzepte,die Services für die Ausführung auf einem KDC und die Tools für die Verwaltung von Kerberos-Servicesinformieren. Weitere Informationen finden Sie in der MIT Kerberos-Dokumentation, die vom KerberosConsortium veröffentlicht wird.

Themen• Supported Applications (p. 266)• Kerberos Architecture Options (p. 267)• Configuring Kerberos on Amazon EMR (p. 275)• Using SSH to Connect to Kerberized Clusters (p. 283)• Tutorial: Configure a Cluster-Dedicated KDC (p. 285)• Tutorial: Configure a Cross-Realm Trust with an Active Directory Domain (p. 287)

Supported ApplicationsIn einem EMR-Cluster sind Kerberos-Prinzipale die Big Data-Anwendungsservices und Subsysteme, dieauf allen Cluster-Knoten ausgeführt werden. Amazon EMR kann die unten aufgelisteten Anwendungenund aufgeführten Komponenten für die Verwendung von Kerberos konfigurieren. Jeder Anwendung ist einKerberos-Benutzer-Prinzipal zugeordnet.

Amazon EMR unterstützt keine bereichsübergreifenden Vertrauensstellungen mit AWS Directory Servicefor Microsoft Active Directory.

Amazon EMR konfiguriert nur die Open-Source-Authentifizierungsfunktionen für Kerberos für die untenaufgelisteten Anwendungen und Komponenten. Alle anderen installierten Anwendungen sind nicht durchKerberos geschützt. Dies kann zu einer Unfähigkeit der Kommunikation mit durch Kerberos geschütztenKomponenten führen und Anwendungsfehler verursachen. Für Anwendungen und Komponenten, die

266

Page 274: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

nicht durch Kerberos geschützt sind, ist keine Authentifizierung aktiviert. Unterstützte Anwendungen undKomponenten können abhängig von der Amazon EMR-Version variieren.

Web-Benutzeroberflächen, die auf dem Cluster gehostet sind, werden nicht durch Kerberos geschützt.

• Hadoop MapReduce• Hbase• HCatalog• HDFS• Hive

• Do not enable Hive with LDAP authentication. This may cause issues communicating with KerberizedYARN.

• Hue• Hue user authentication isn't set automatically and can be configured using the configuration API.• Hue server is Kerberized. The Hue front-end (UI) is not configured for authentication. LDAP

authentication can be configured for the Hue UI.• Livy• Oozie• Phoenix• Spark• Tez• YARN• Zeppelin

• Zeppelin is only configured to use Kerberos with the Spark interpreter. It is not configured for otherinterpreters.

• Zeppelin impersonation with Kerberos is not supported. All users logged in to Zeppelin use the sameZeppelin user principal to run Spark jobs and authenticate to YARN.

• Zookeeper• Zookeeper client is not supported.

Kerberos Architecture OptionsWenn Sie Kerberos mit Amazon EMR verwenden, können Sie aus den in diesem Abschnitt aufgeführtenArchitekturen wählen. Unabhängig von der gewählten Architektur konfigurieren Sie Kerberos anhandder gleichen Schritte. Sie erstellen eine Sicherheitskonfiguration, legen die Sicherheitskonfiguration undkompatible Cluster-spezifische Kerberos-Optionen fest, wenn Sie den Cluster erstellen. Zudem erstellenSie HDFS-Verzeichnisse für Linux-Benutzer auf dem Cluster, der den Benutzerprinzipalen auf demKDC entspricht. Weitere Informationen zu Konfigurationsoptionen und Beispielkonfigurationen für jedeArchitektur finden Sie unter Configuring Kerberos on Amazon EMR (p. 275).

Cluster-Dedicated KDC (KDC on Master Node)

Diese Konfiguration ist nur in Amazon EMR Version 5.10.0 und höher verfügbar.

267

Page 275: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Advantages

• Amazon EMR has full ownership of the KDC.• The KDC on the EMR cluster is independent from centralized KDC implementations such as Microsoft

Active Directory or AWS Managed Microsoft AD.• Performance impact is minimal because the KDC manages authentication only for local nodes within the

cluster.• Optionally, other Kerberized clusters can reference the KDC as an external KDC. For more information,

see External KDC—Master Node on a Different Cluster (p. 272).

Considerations and Limitations

• Kerberized clusters can not authenticate to one another, so applications can not interoperate. If clusterapplications need to interoperate, you must establish a cross-realm trust between clusters, or set up onecluster as the external KDC for other clusters. If a cross-realm trust is established, the KDCs must havedifferent Kerberos realms.

• You must create Linux users on the EC2 instance of the master node that correspond to KDC userprincipals, along with the HDFS directories for each user.

• User principals must use an EC2 private key file and kinit credentials to connect to the cluster usingSSH.

Cross-Realm Trust

In dieser Konfiguration werden Prinzipale (in der Regel Benutzer) aus einem anderen Kerberos-Bereichan den Anwendungskomponenten auf einem durch Kerberos geschützten EMR-Cluster authentifiziert,der über ein eigenes KDC verfügt. Der KDC auf dem Master-Knoten stellt eine Vertrauensbeziehung mit

268

Page 276: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

einem anderen KDC unter Verwendung einer cross-realm principal die in beiden kdcs vorhanden sind.Der Name des Prinzipals und das Passwort stimmen in jedem KDC genau überein. BereichsübergreifendeVertrauensstellungen kommen am häufigsten in Active Directory-Implementierungen vor, wie in derfolgenden Abbildung dargestellt. Bereichsübergreifende Vertrauensstellungen mit einem externen MIT KDCoder einem KDC auf einem anderen Amazon EMR-Cluster werden ebenfalls unterstützt.

Advantages

• The EMR cluster on which the KDC is installed maintains full ownership of the KDC.

269

Page 277: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

• With Active Directory, Amazon EMR automatically creates Linux users that correspond to user principalsfrom the KDC. You still must create HDFS directories for each user. In addition, user principals in theActive Directory domain can access Kerberized clusters using kinit credentials, without the EC2 privatekey file. This eliminates the need to share the private key file among cluster users.

• Because each cluster KDC manages authentication for the nodes in the cluster, the effects of networklatency and processing overhead for a large number of nodes across clusters is minimized.

Considerations and Limitations

• If you are establishing a trust with an Active Directory realm, you must provide an Active Directory username and password with permissions to join principals to the domain when you create the cluster.

• Cross-realm trusts cannot be established between Kerberos realms with the same name.• Cross-realm trusts must be established explicitly. For example, if Cluster A and Cluster B both establish

a cross-realm trust with a KDC, they do not inherently trust one another and their applications cannotauthenticate to one another to interoperate.

• KDCs must be maintained independently and coordinated so that credentials of user principals matchprecisely.

External KDC

Konfigurationen mit einem externen KDC werden mit Amazon EMR 5.20.0 und höher unterstützt.

• External KDC—MIT KDC (p. 270)• External KDC—Master Node on a Different Cluster (p. 272)• External KDC—Cluster KDC on a Different Cluster with Active Directory Cross-Realm Trust (p. 273)

External KDC—MIT KDC

Diese Konfiguration ermöglicht mindestens einem EMR-Cluster die Verwendung von Prinzipalen, die ineinem MIT KDC-Server definiert und verwaltet werden.

270

Page 278: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Advantages

• Managing principals is consolidated in a single KDC.• Multiple clusters can use the same KDC in the same Kerberos realm. This allows cluster applications

to interoperate and simplifies the authentication of communication between clusters as compared to across-realm trust.

• The master node on a Kerberized cluster does not have the performance burden associated withmaintaining the KDC.

Considerations and Limitations

• You must create Linux users on the EC2 instance of each Kerberized cluster's master node thatcorrespond to KDC user principals, along with the HDFS directories for each user.

• User principals must use an EC2 private key file and kinit credentials to connect to Kerberized clustersusing SSH.

• Each node in Kerberized EMR clusters must have a network route to the KDC.• Each node in Kerberized clusters places an authentication burden on the external KDC, so the

configuration of the KDC affects cluster performance. When you configure the hardware of the KDCserver, consider the maximum number of Amazon EMR nodes to be supported simultaneously.

• Cluster performance is dependent on the network latency between nodes in Kerberized clusters and theKDC.

• Troubleshooting can be more difficult because of interdependencies.

271

Page 279: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

External KDC—Master Node on a Different Cluster

Diese Konfiguration ist nahezu identisch mit der oben erwähnten externen MIT KDC-Implementierung,mit der Ausnahme, dass sich das KDC auf dem Master-Knoten eines EMR-Clusters befindet. WeitereInformationen finden Sie unter Cluster-Dedicated KDC (KDC on Master Node) (p. 267) und Tutorial:Configure a Cross-Realm Trust with an Active Directory Domain (p. 287).

272

Page 280: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Advantages

• Managing principals is consolidated in a single KDC.• Multiple clusters can use the same KDC in the same Kerberos realm. This allows cluster applications

an Kerberized clusters to interoperate. It also simplifies the authentication of communication betweenclusters as compared to a cross-realm trust.

Considerations and Limitations

• You must create Linux users on the EC2 instance of each Kerberized cluster's master node thatcorrespond to KDC user principals, along with the HDFS directories for each user.

• User principals must use an EC2 private key file and kinit credentials to connect to Kerberized clustersusing SSH.

• Each node in each EMR cluster must have a network route to the KDC.• Each Amazon EMR node in Kerberized clusters places an authentication burden on the external KDC, so

the configuration of the KDC affects cluster performance. When you configure the hardware of the KDCserver, consider the maximum number of Amazon EMR nodes to be supported simultaneously.

• Cluster performance is dependent on the network latency between nodes in the clusters and the KDC.• Troubleshooting can be more difficult because of interdependencies.

External KDC—Cluster KDC on a Different Cluster with Active Directory Cross-Realm Trust

Bei dieser Konfiguration erstellen Sie zunächst einen Cluster mit einem Cluster-spezifischen KDC,das eine unidirektionale bereichsübergreifende Vertrauensstellung mit Active Directory aufweist. Eindetailliertes Tutorial finden Sie unter Tutorial: Configure a Cross-Realm Trust with an Active DirectoryDomain (p. 287). Anschließend starten Sie zusätzliche Cluster, die auf das Cluster-KDC verweisen, dasdie Vertrauensstellung als externes KDC besitzt. Ein Beispiel finden Sie unter External Cluster KDC withActive Directory Cross-Realm Trust (p. 281). Auf diese Weise können Sie jedem Amazon EMR-Cluster,der das externe KDC verwendet, die Authentifizierung von Prinzipalen erlauben, die in einer MicrosoftActive Directory-Domäne definiert und verwaltet werden.

273

Page 281: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Advantages

• Managing principals is consolidated in the Active Directory domain.• Amazon EMR joins the Active Directory realm, which eliminates the need to create Linux users that

correspond Active Directory users. You still must create HDFS directories for each user.• Multiple clusters can use the same KDC in the same Kerberos realm, which is different from the Active

Directory realm. This allows cluster applications to interoperate.• User principals in the Active Directory domain can access Kerberized clusters using kinit credentials,

without the EC2 private key file. This eliminates the need to share the private key file among clusterusers.

274

Page 282: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

• Only one Amazon EMR master node has the burden of maintaining the KDC, and only that clustermust be created with Active Directory credentials for the cross-realm trust between the KDC and ActiveDirectory.

Considerations and Limitations

• Each node in each EMR cluster must have a network route to the KDC and the Active Directory domaincontroller.

• Each Amazon EMR node places an authentication burden on the external KDC, so the configuration ofthe KDC affects cluster performance. When you configure the hardware of the KDC server, consider themaximum number of Amazon EMR nodes to be supported simultaneously.

• Cluster performance is dependent on the network latency between nodes in the clusters and the KDCserver.

• Troubleshooting can be more difficult because of interdependencies.

Configuring Kerberos on Amazon EMRDieser Abschnitt enthält Konfigurationsdetails und Beispiele für das Einrichten von Kerberos mit gängigenArchitekturen. Unabhängig von der gewählten Architektur sind die Konfigurationsgrundlagen identischund in drei Schritte unterteilt. Wenn Sie ein externes KDC verwenden oder eine bereichsübergreifendeVertrauensstellung einrichten, müssen Sie sicherstellen, dass alle Knoten in einem Cluster über eineNetzwerkroute zu einem externen KDC verfügen, einschließlich der Konfiguration der entsprechendenSicherheitsgruppen, die den ein- und ausgehenden Kerberos-Datenverkehr erlauben.

Step 1: Create a security configuration with Kerberos propertiesDie Sicherheitskonfiguration gibt Details über das Kerberos-KDC an und ermöglicht, dass dieKerberos-Konfiguration beim Erstellen eines Clusters wiederverwendet wird. Sie können eineSicherheitskonfiguration mithilfe der Amazon EMR-Konsole, der AWS CLI oder der EMR-API erstellen.Die Sicherheitskonfiguration kann auch andere Sicherheitsoptionen enthalten, wie beispielsweisedie Verschlüsselung. Weitere Informationen zum Erstellen von Sicherheitskonfigurationen undFestlegen einer Sicherheitskonfiguration beim Erstellen eines Clusters finden Sie unter Verwendenvon Sicherheitskonfigurationen zum Einrichten der Cluster-Sicherheit (p. 187). Informationen zuKerberos-Eigenschaften in einer Sicherheitskonfiguration finden Sie unter Kerberos Settings for SecurityConfigurations (p. 276).

Step 2: Create a cluster and specify cluster-specific Kerberos attributesBeim Erstellen eines Clusters legen Sie eine Kerberos-Sicherheitskonfiguration sowie Cluster-spezifische Kerberos-Optionen fest. Wenn Sie die Amazon EMR-Konsole verwenden, sind nur diemit der angegebenen Sicherheitskonfiguration kompatiblen Kerberos-Optionen verfügbar. WennSie die AWS CLI oder die Amazon EMR-API verwenden, stellen Sie sicher, dass Sie nur die mit derangegebenen Sicherheitskonfiguration kompatiblen Kerberos-Optionen festlegen. Beispiel: Wenn Siebeim Erstellen eines Clusters mithilfe der CLI ein Prinzipal-Passwort für eine bereichsübergreifendeVertrauensstellung verwenden und die angegebene Sicherheitskonfiguration nicht mit den Parametern derbereichsübergreifenden Vertrauensstellung konfiguriert ist, tritt ein Fehler auf. Weitere Informationen findenSie im Kerberos Settings for Clusters (p. 279).

Step 3: Configure the cluster master nodeAbhängig von den Anforderungen an Ihre Architektur und Implementierung ist möglicherweise einezusätzliche Einrichtung auf dem Cluster erforderlich. Sie können dies nach dem Erstellen oder anhand derSchritte oder Bootstrap-Aktionen während des Erstellungsvorgangs erledigen.

Für jeden Kerberos-authentifizierten Benutzer, der mittels SSH eine Verbindung mit dem Cluster herstellt,müssen Sie sicherstellen, dass Linux-Benutzerkonten erstellt werden, die dem Kerberos-Benutzer

275

Page 283: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

entsprechen. Wenn Benutzerprinzipale von einem Active Directory-Domänencontroller als externes KDCoder über eine bereichsübergreifende Vertrauensstellung bereitgestellt werden, erstellt Amazon EMRautomatisch Linux-Benutzerkonten. Wenn Active Directory nicht verwendet wird, müssen Sie Prinzipalefür jeden Benutzer erstellen, der ihrem Linux-Benutzer entspricht. Weitere Informationen finden Sie imConfiguring a Cluster for Kerberos-Authenticated HDFS Users and SSH Connections (p. 281).

Jeder Benutzer muss zudem über ein HDFS-Benutzerverzeichnis in seinem Besitz verfügen, das Sieerstellen müssen. Darüber hinaus muss SSH mit GSSAPI konfiguriert werden, damit Verbindungen vonüber Kerberos authentifizierten Benutzern zulässig sind. GSSAPI muss auf dem Master-Knoten aktiviertsein und die Client-SSH-Anwendung muss so konfiguriert werden, dass sie GSSAPI verwendet. WeitereInformationen finden Sie im Configuring a Cluster for Kerberos-Authenticated HDFS Users and SSHConnections (p. 281).

Security Configuration and Cluster Settings for Kerberos on Amazon EMRWenn Sie einen durch Kerberos geschützten Cluster erstellen, geben Sie die Sicherheitskonfigurationzusammen mit den Kerberos-Attributen an, die spezifisch für den Cluster sind. Sie können eine Gruppenicht ohne die andere angeben, sonst tritt ein Fehler auf.

Dieses Thema bietet eine Übersicht über die für Kerberos verfügbaren Konfigurationsparameter, wennSie eine Sicherheitskonfiguration und einen Cluster erstellen. Darüber hinaus werden CLI-Beispiele zumErstellen von kompatiblen Sicherheitskonfigurationen und Clustern für gängige Architekturen bereitgestellt.

Kerberos Settings for Security Configurations

Sie können über die Amazon EMR-Konsole, die AWS CLI oder die EMR-API eine Sicherheitskonfigurationerstellen, die Kerberos-Attribute angibt. Die Sicherheitskonfiguration kann auch andere Sicherheitsoptionenenthalten, wie beispielsweise die Verschlüsselung. Weitere Informationen finden Sie im Erstellen einerSicherheitskonfiguration (p. 187).

Verwenden Sie die folgenden Referenzen, um die verfügbaren Sicherheitskonfigurationseinstellungen fürdie Kerberos-Architektur zu verstehen, die Sie auswählen. Amazon EMR-Konsolen-Einstellungen werdenangezeigt. Informationen zu den entsprechenden CLI-Optionen finden Sie unter Angabe von Kerberos-Einstellungen unter Verwendung der AWS CLI (p. 200) oder Configuration Examples (p. 279).

Parameter Beschreibung

Kerberos Gibt an, dass Kerberos für Cluster aktiviert ist, die dieseSicherheitskonfiguration verwenden. Falls ein Clusterdiese Sicherheitskonfiguration verwendet, müssen fürdas Cluster Kerberos-Einstellungen festgelegt werden.Andernfalls tritt ein Fehler auf.

Cluster-dedizierter KDC Gibt an, dass Amazon EMR einen KDC auf demMaster-Knoten eines jeden Clusters erstellt, der dieseSicherheitskonfiguration verwendet. Sie geben beimErstellen des Clusters den Bereichsnamen und das KDC-Administratorpasswort an.

Sie können diesen KDC bei Bedarf von anderen Clusternaus referenzieren. Erstellen Sie solche Cluster mit eineranderen Sicherheitskonfiguration, geben Sie einenexternen KDC an und verwenden Sie den Bereichsnamenund das KDC-Administratorpasswort, das Sie für denCluster-spezifischen KDC angeben.

Anbieter

Externer KDC Nur mit Amazon EMR 5.20.0 und höher verfügbar. Gibtan, dass Cluster, für die diese Sicherheitskonfigurationverwendet wird, Kerberos-Prinzipale authentifizieren,

276

Page 284: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Parameter Beschreibungbei denen einen KDC-Server außerhalb des Clustersverwendet wird. Ein KDC wird auf dem Cluster nichtangelegt. Sie geben beim Erstellen des Clusters denBereichsnamen und das KDC-Administratorpasswort fürdas externe KDC an.

Ticket-Gültigkeitsdauer Optional. Gibt den Zeitraum an, für den ein Kerberos-Ticket, das vom KDC ausgegeben wird, auf Clustern gültigist, die diese Sicherheitskonfiguration verwenden.

Ticket-Gültigkeitsdauern werden aus Sicherheitsgründenbeschränkt. Cluster-Anwendungen und -Servicesverlängern Tickets automatisch, wenn sie ablaufen.Benutzer, die eine Verbindung mit dem Cluster über SSHmit Kerberos-Anmeldeinformationen einrichten, müssenkinit von der Befehlszeile des Master-Knoten ausausführen, um eine Verlängerung auszuführen, nachdemein Ticket abgelaufen ist.

Bereichsübergreifende Vertrauensstellung Gibt eine bereichsübergreifende Vertrauensstellungzwischen einem Cluster-dedizierten KDC auf Clustern an,die diese Sicherheitskonfiguration und einen KDC in einemanderen Kerberos-Bereich verwenden.

Prinzipale (in der Regel Benutzer) aus einem anderenBereich werden in Clustern authentifiziert, die dieseKonfiguration verwenden. Eine zusätzliche Konfigurationim anderen Kerberos-Bereich ist erforderlich. WeitereInformationen finden Sie unter Tutorial: Configure a Cross-Realm Trust with an Active Directory Domain (p. 287).

Bereich Gibt den Kerberos-Bereichsnamen des anderen Bereichsin der Vertrauensstellung an. Gemäß Konvention sindKerberos-Bereichsnamen mit dem Domänennamenidentisch, werden aber komplett in Großbuchstabengeschrieben.

Domäne Gibt den Domain-Namen des anderen Bereichs in derVertrauensstellung an.

EigenschaftenderbereichsübergreifendeVertrauensstellung

Admin-Server Gibt den vollständig qualifizierten Domänennamen(FQDN, Fully Qualified Domain Name) oder die IP-Adresse des Admin-Servers im anderen Bereich derVertrauensstellung an. Der Admin-Server und KDC-Server werden normalerweise auf demselben Rechner mitdemselben FQDN ausgeführt, kommunizieren jedoch überandere Ports.

Falls kein Port angegeben ist, wird Port 749 verwendet,da es dabei um den Kerberos-Standard handelt. Siekönnen optional einen Port angeben (beispielsweisedomain.example.com:749).

277

Page 285: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Parameter Beschreibung

KDC-Server Gibt den vollqualifizierten Domänennamen (FQDN) oderdie IP-Adresse des KDC-Servers im anderen Bereich derVertrauensstellung an. Der KDC-Server und der Admin-Server werden normalerweise auf derselben Maschinemit demselben FQDN ausgeführt, für sie werden jedochandere Ports verwendet.

Falls kein Port angegeben ist, wird Port 88 verwendet,da es dabei um den Kerberos-Standard handelt. Siekönnen optional einen Port angeben (beispielsweisedomain.example.com:88).

Externer KDC Gibt an, dass der externe KDC des Clusters vom Clusterverwendet wird.

Admin-Server Gibt den vollqualifizierten Domänennamen (FQDN) oderdie IP-Adresse des externen Admin-Servers an. DerAdmin-Server und KDC-Server werden normalerweise aufdemselben Rechner mit demselben FQDN ausgeführt,kommunizieren jedoch über andere Ports.

Falls kein Port angegeben ist, wird Port 749 verwendet,da es dabei um den Kerberos-Standard handelt. Siekönnen optional einen Port angeben (beispielsweisedomain.example.com:749).

KDC-Server Gibt den vollqualifizierten Domänennamen (FQDN) desexternen KDC-Servers an. Der KDC-Server und derAdmin-Server werden normalerweise auf derselbenMaschine mit demselben FQDN ausgeführt, für sie werdenjedoch andere Ports verwendet.

Falls kein Port angegeben ist, wird Port 88 verwendet,da es dabei um den Kerberos-Standard handelt. Siekönnen optional einen Port angeben (beispielsweisedomain.example.com:88).

Active Directory-Integration Gibt an, dass die Kerberos-Hauptauthentifizierung in eineMicrosoft Active Directory-Domäne integriert ist.

ActiveDirectory-Bereich

Gibt den Kerberos-Bereichsnamen der Active Directory-Domäne an. Gemäß Konvention sind Kerberos-Bereichsnamen in der Regel mit dem Domänennamenidentisch, werden aber komplett in Großbuchstabengeschrieben.

ActiveDirectory-Domäne

Gibt den Active Directory-Domänennamen an.

Eigenschaftendes externenKDC

Eigenschaftender ActiveDirectory-Integration

ActiveDirectory-Server

Gibt den vollqualifizierten Domänennamen (FQDN) desMicrosoft Active Directory-Domänencontrollers an.

278

Page 286: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Kerberos Settings for Clusters

Sie können Kerberos-Einstellungen festlegen, wenn Sie einen Cluster mithilfe der Amazon EMR-Konsole,der AWS CLI oder der EMR-API erstellen.

Verwenden Sie die folgenden Referenzen, um die verfügbaren Clusterkonfigurationseinstellungenfür die Kerberos-Architektur zu verstehen, die Sie auswählen. Amazon EMR-Konsolen-Einstellungenwerden angezeigt. Informationen zu den entsprechenden CLI-Optionen finden Sie unter ConfigurationExamples (p. 279).

Parameter Description (Beschreibung)

Bereich Der Kerberos-Bereichsname für den Cluster.Die Kerberos-Konvention ist, denselben Namenwie den Domain-Namen zu verwenden, aberin Großbuchstaben. Beispielsweise für dieDomain ec2.internalmit EC2.INTERNAL alsBereichsnamen.

KDC-Administratorpasswort Das Passwort, das im Cluster verwendet wirdkadmin oder kadmin.local. Dies sindBefehlszeilenschnittstellen zum VerwaltungssystemKerberos V5, das Kerberos-Prinzipielle,Kennwortrichtlinien und Schlüsselregisterkarten fürden Cluster pflegt.

Prinzipal-Passwort für bereichsübergreifendeVertrauensstellungen (optional)

Erforderlich, wenn eine bereichsübergreifendeVertrauensstellung eingerichtet wird. Das Passwortfür die bereichsübergreifende Vertrauensstellung,die über alle Bereiche hinweg identisch sein muss.Verwenden Sie ein sicheres Passwort.

Benutzer für die Verbindung mit der ActiveDirectory-Domäne (optional)

Erforderlich bei Verwendung von Active Directory ineiner bereichsübergreifenden Vertrauensstellung.Dies ist der Benutzeranmeldename eines ActiveDirectory-Kontos mit der Berechtigung, derDomäne Computer hinzuzufügen. Amazon EMRverwendet diese Identität, um der Domäne dasCluster hinzuzufügen. Weitere Informationenfinden Sie im the section called “Step 3: AddUser Accounts to the Domain for the EMRCluster” (p. 289).

Passwort für die Verbindung mit der ActiveDirectory-Domäne (optional)

Das Passwort für den Benutzer für die Verbindungmit der Active Directory-Domäne. WeitereInformationen finden Sie im the section called “Step3: Add User Accounts to the Domain for the EMRCluster” (p. 289).

Configuration Examples

Die folgenden Beispiele zeigen Sicherheitskonfigurationen und Clusterkonfigurationen für gängigeSzenarien. AWS CLI-Befehle werden zur Abkürzung angezeigt.

Local KDC

Mit den folgenden Befehlen erstellen Sie einen Cluster mit einem Cluster-spezifischen KDC, das auf demMaster-Knoten ausgeführt wird. Eine zusätzliche Konfiguration auf dem Cluster ist erforderlich. Weitere

279

Page 287: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Informationen finden Sie im Configuring a Cluster for Kerberos-Authenticated HDFS Users and SSHConnections (p. 281).

Create Security Configuration

aws emr create-security-configuration --name LocalKDCSecurityConfig \--security-configuration '{"AuthenticationConfiguration": \{"KerberosConfiguration": {"Provider": "ClusterDedicatedKdc",\"ClusterDedicatedKdcConfiguration": {"TicketLifetimeInHours": 24 }}}}'

Create Cluster

aws emr create-cluster --release-label emr-5.31.0 \--instance-count 3 --instance-type m5.xlarge \--applications Name=Hadoop Name=Hive --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \--service-role EMR_DefaultRole \--security-configuration LocalKDCSecurityConfig \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=MyPassword

Cluster-Dedicated KDC with Active Directory Cross-Realm Trust

Mit den folgenden Befehlen erstellen Sie einen Cluster mit einem Cluster-spezifischen KDC, das aufdem Master-Knoten mit einer bereichsübergreifenden Vertrauensstellung an einer Active Directory-Domäne ausgeführt wird. Zusätzliche Konfiguration auf dem Cluster und in Active Directory ist erforderlich.Weitere Informationen finden Sie im Tutorial: Configure a Cross-Realm Trust with an Active DirectoryDomain (p. 287).

Create Security Configuration

aws emr create-security-configuration --name LocalKDCWithADTrustSecurityConfig \--security-configuration '{"AuthenticationConfiguration": \{"KerberosConfiguration": {"Provider": "ClusterDedicatedKdc", \"ClusterDedicatedKdcConfiguration": {"TicketLifetimeInHours": 24, \"CrossRealmTrustConfiguration": {"Realm":"AD.DOMAIN.COM", \"Domain":"ad.domain.com", "AdminServer":"ad.domain.com", \"KdcServer":"ad.domain.com"}}}}}'

Create Cluster

aws emr create-cluster --release-label emr-5.31.0 \--instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop Name=Hive \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \--service-role EMR_DefaultRole --security-configuration KDCWithADTrustSecurityConfig \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=MyClusterKDCAdminPassword,\ADDomainJoinUser=ADUserLogonName,ADDomainJoinPassword=ADUserPassword,\CrossRealmTrustPrincipalPassword=MatchADTrustPassword

External KDC on a Different Cluster

Mit den folgenden Befehlen erstellen Sie einen Cluster, der auf ein Cluster-spezifisches KDC auf demMaster-Knoten eines anderen Clusters verweist, um Prinzipale zu authentifizieren. Eine zusätzlicheKonfiguration auf dem Cluster ist erforderlich. Weitere Informationen finden Sie im Configuring a Cluster forKerberos-Authenticated HDFS Users and SSH Connections (p. 281).

Create Security Configuration

aws emr create-security-configuration --name ExtKDCOnDifferentCluster \--security-configuration '{"AuthenticationConfiguration": \{"KerberosConfiguration": {"Provider": "ExternalKdc", \

280

Page 288: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

"ExternalKdcConfiguration": {"KdcServerType": "Single", \"AdminServer": "MasterDNSOfKDCMaster:749", \"KdcServer": "MasterDNSOfKDCMaster:88"}}}}'

Create Cluster

aws emr create-cluster --release-label emr-5.31.0 \--instance-count 3 --instance-type m5.xlarge \--applications Name=Hadoop Name=Hive \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \--service-role EMR_DefaultRole --security-configuration ExtKDCOnDifferentCluster \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=KDCOnMasterPassword

External Cluster KDC with Active Directory Cross-Realm Trust

Mit den folgenden Befehlen erstellen Sie einen Cluster ohne KDC. Der Cluster verweist auf ein Cluster-spezifisches KDC, das auf dem Master-Knoten eines anderen Clusters ausgeführt wird, um Prinzipale zuauthentifizieren. Dieses KDC verfügt über eine bereichsübergreifende Vertrauensstellung mit einem ActiveDirectory-Domänencontroller. Eine zusätzliche Konfiguration auf dem Master-Knoten mit dem KDC isterforderlich. Weitere Informationen finden Sie im Tutorial: Configure a Cross-Realm Trust with an ActiveDirectory Domain (p. 287).

Create Security Configuration

aws emr create-security-configuration --name ExtKDCWithADIntegration \--security-configuration '{"AuthenticationConfiguration": \{"KerberosConfiguration": {"Provider": "ExternalKdc", \"ExternalKdcConfiguration": {"KdcServerType": "Single", \"AdminServer": "MasterDNSofClusterKDC:749", \"KdcServer": "MasterDNSofClusterKDC.com:88", \"AdIntegrationConfiguration": {"AdRealm":"AD.DOMAIN.COM", \"AdDomain":"ad.domain.com"}}}}}'

Create Cluster

aws emr create-cluster --release-label emr-5.31.0 \--instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop Name=Hive \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2Key \--service-role EMR_DefaultRole --security-configuration ExtKDCWithADIntegration \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=KDCOnMasterPassword,\ADDomainJoinUser=MyPrivilegedADUserName,ADDomainJoinPassword=PasswordForADDomainJoinUser

Configuring a Cluster for Kerberos-Authenticated HDFS Users and SSHConnectionsAmazon EMR erstellt mit Kerberos authentifizierte Benutzer-Clients für die Anwendungen, die auf demCluster ausgeführt werden, z. B. den hadoop-Benutzer, den spark-Benutzer und andere. Sie können auchBenutzer hinzufügen, die mit Kerberos für Cluster-Prozesse authentifiziert werden. Authentifizierte Benutzerkönnen dann eine Verbindung mit dem Cluster mit ihren Kerberos-Anmeldeinformationen einrichten und mitden Anwendungen arbeiten. Damit sich ein Benutzer am Cluster authentifizieren kann, sind die folgendenKonfigurationen erforderlich:

• A Linux user account matching the Kerberos principal in the KDC must exist on the cluster. Amazon EMRdoes this automatically in architectures that integrate with Active Directory.

• You must create an HDFS user directory on the master node for each user, and give the userpermissions to the directory.

• You must configure the SSH service so that GSSAPI is enabled on the master node. In addition, usersmust have an SSH client with GSSAPI enabled.

281

Page 289: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Adding Linux Users and Kerberos Principals to the Master Node

Wenn Sie Active Directory nicht verwenden, müssen Sie Linux-Konten auf dem Cluster-Master-Knotenerstellen und Prinzipale für diese Linux-Benutzer am KDC hinzufügen. Dies umfasst einen Prinzipal im KDCfür den Master-Knoten. Zusätzlich zu den Benutzerprinzipalen erfordert das KDC, das auf dem Master-Knoten ausgeführt wird, einen Prinzipal für den lokalen Host.

Wenn Ihre Architektur eine Active Directory-Integration beinhaltet, werden Linux-Benutzer und Prinzipaleauf dem lokalen KDC ggf. automatisch erstellt. Sie können diesen Schritt überspringen. WeitereInformationen finden Sie unter Cross-Realm Trust (p. 268) und External KDC—Cluster KDC on aDifferent Cluster with Active Directory Cross-Realm Trust (p. 273).

Important

Das KDC geht zusammen mit der Datenbank der Prinzipale verloren, wenn der Master-Knotenbeendet wird, weil der Master-Knoten einen flüchtigen Speicher verwendet. Falls Sie Benutzerfür SSH-Verbindungen erstellen, empfehlen wir das Einrichten einer bereichsübergreifendenVertrauensstellung mit einem externen KDC, das für Hochverfügbarkeit konfiguriert ist. Falls SieBenutzer für SSH-Verbindungen mit Linux-Benutzerkonten erstellen,können Sie alternativ denKontoerstellungsprozess mit Bootstrap-Aktionen und -Skripts automatisieren, damit er wiederholtwerden kann, wenn Sie ein neues Cluster erstellen.

Das Übermitteln eines Schritts an das Cluster nach dem Erstellen oder beim Erstellen des Clusters ist dieeinfachste Möglichkeit zum Hinzufügen von Benutzern und KDC-Prinzipalen. Alternativ können Sie eineVerbindung mit dem Master-Knoten unter Verwendung eines EC2-Schlüsselpaars als standardmäßigerhadoop-Benutzer einrichten, um die Befehle auszuführen. Weitere Informationen finden Sie im Verbindenmit dem Master-Knoten über SSH (p. 385).

Im folgenden Beispiel wird einem Cluster ein bereits vorhandenes Bash-Skript configureCluster.shübergeben, das auf seine Cluster-ID verweist. Das Skript wird in Amazon S3 gespeichert.

aws emr add-steps --cluster-id j-01234567 \--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\Jar=s3://myregion.elasticmapreduce/libs/script-runner/script-runner.jar,\Args=["s3://mybucket/configureCluster.sh"]

Das folgende Beispiel veranschaulicht den Inhalt des configureCluster.sh-Skripts. Das Skript wickeltzudem die Erstellung von HDFS-Benutzerverzeichnissen und die Aktivierung von GSSAPI für SSH ab, diein den folgenden Abschnitten erläutert werden.

#!/bin/bash#Add a principal to the KDC for the master node, using the master node's returned host namesudo kadmin.local -q "ktadd -k /etc/krb5.keytab host/`hostname -f`"#Declare an associative array of user names and passwords to adddeclare -A arrarr=([lijuan]=pwd1 [marymajor]=pwd2 [richardroe]=pwd3)for i in ${!arr[@]}; do #Assign plain language variables for clarity name=${i} password=${arr[${i}]}

# Create a principal for each user in the master node and require a new password on first logon sudo kadmin.local -q "addprinc -pw $password +needchange $name"

#Add hdfs directory for each user hdfs dfs -mkdir /user/$name

#Change owner of each user's hdfs directory to that user hdfs dfs -chown $name:$name /user/$namedone

282

Page 290: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

# Enable GSSAPI authentication for SSH and restart SSH servicesudo sed -i 's/^.*GSSAPIAuthentication.*$/GSSAPIAuthentication yes/' /etc/ssh/sshd_configsudo sed -i 's/^.*GSSAPICleanupCredentials.*$/GSSAPICleanupCredentials yes/' /etc/ssh/sshd_configsudo /etc/init.d/sshd restart

Adding User HDFS Directories

Um Ihren Benutzern zu ermöglichen, sich beim Cluster anzumelden, um Hadoop-Jobs auszuführen,müssen Sie HDFS-Benutzerverzeichnisse für ihre Linux-Benutzerkonten hinzufügen und jedem Benutzerdas Eigentum an ihrem Verzeichnis erteilen.

Das Übermitteln eines Schritts an das Cluster nach dem Erstellen oder beim Erstellen des Clusters ist dieeinfachste Möglichkeit zum Erstellen von HDFS-Verzeichnissen. Alternativ könnten Sie eine Verbindung mitdem Master-Knoten unter Verwendung eines EC2-Schlüsselpaars als standardmäßiger hadoop-Benutzereinrichten, um die Befehle auszuführen. Weitere Informationen finden Sie im Verbinden mit dem Master-Knoten über SSH (p. 385).

Im folgenden Beispiel wird einem Cluster ein bereits vorhandenes Bash-Skript AddHDFSUsers.shübergeben, das auf seine Cluster-ID verweist. Das Skript wird in Amazon S3 gespeichert.

aws emr add-steps --cluster-id ClusterID \--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\Jar=s3://MyRegion.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://MyBucketPath/AddHDFSUsers.sh"]

Das folgende Beispiel veranschaulicht den Inhalt des AddHDFSUsers.sh-Skripts.

#!/bin/bash# AddHDFSUsers.sh script

# Initialize an array of user names from AD, or Linux users created manually on the clusterADUSERS=("lijuan" "marymajor" "richardroe" "myusername")

# For each user listed, create an HDFS user directory# and change ownership to the user

for username in ${ADUSERS[@]}; do hdfs dfs -mkdir /user/$username hdfs dfs -chown $username:$username /user/$usernamedone

Enabling GSSAPI for SSH

Damit für Kerberos authentifizierte Benutzer mithilfe von SSH eine Verbindung mit dem Master-Knotenherstellen, muss für den SSH-Service die GSSAPI-Authentifizierung aktiviert sein. Führen Sie zumAktivieren von GSSAPI die folgenden Befehle über die Befehlszeile des Master-Knotens aus oderverwenden Sie einen Schritt zum Ausführen als Skript. Nachdem Sie SSH neu konfiguriert haben, müssenSie den Service neu starten.

sudo sed -i 's/^.*GSSAPIAuthentication.*$/GSSAPIAuthentication yes/' /etc/ssh/sshd_configsudo sed -i 's/^.*GSSAPICleanupCredentials.*$/GSSAPICleanupCredentials yes/' /etc/ssh/sshd_configsudo /etc/init.d/sshd restart

Using SSH to Connect to Kerberized ClustersDieser Abschnitt zeigt die Schritte für einen über Kerberos authentifizierten Benutzer, um eine Verbindungmit dem Master-Knoten eines EMR-Clusters herzustellen.

283

Page 291: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Auf jedem Computer, der für eine SSH-Verbindung verwendet wird, müssen SSH-Client- und Kerberos-Client-Anwendungen installiert sein. Linux-Computer enthalten diese höchstwahrscheinlich standardmäßig.OpenSSH wird beispielsweise bei den meisten Linux-, Unix- und MacOS-Betriebssystemen installiert. Siekönnen nach einem SSH-Client suchen, indem Sie in der Befehlszeile ssh eingeben. Wenn Ihr Computerden Befehl nicht erkennt, installieren Sie einen SSH-Client, um eine Verbindung mit dem Master-Knotenherzustellen. Das OpenSSH-Projekt bietet eine kostenlose Implementierung der umfassenden Palettevon SSH-Tools. Weitere Informationen finden Sie auf der OpenSSH-Website. Windows-Benutzer könnenAnwendungen wie PuTTY als SSH-Client verwenden.

Weitere Informationen zu SSH-Verbindungen finden Sie unter Verbinden mit dem Cluster (p. 383).

SSH verwendet GSSAPI zum Authentifizieren von Kerberos-Clients und müssen die GSSAPI-Authentifizierung für den SSH-Service auf dem Cluster-Master-Knoten aktivieren. Weitere Informationenfinden Sie im Enabling GSSAPI for SSH (p. 283). SSH-Clients müssen auch GSSAPI verwenden.

Bei den folgenden Beispielen MasterPublicDNS verwenden Sie den Wert, der für Öffentliches DNSauf der Zusammenfassung Registerkarte des Detailbereichs des Clusterdetails—beispielsweise,ec2-11-222-33-44.compute-1.amazonaws.com.

Prerequisite for krb5.conf (Non Active Directory)

Bei der Verwendung einer Konfiguration ohne Active Directory-Integration muss zusätzlich zu den SSH-Client- und Kerberos-Client-Anwendungen jeder Client-Computer über eine Kopie der /etc/krb5.conf-Datei verfügen, die mit der /etc/krb5.conf-Datei auf dem Cluster-Master-Knoten übereinstimmt.

So kopieren Sie die krb5.conf-Datei

1. Verwenden Sie SSH, um mit dem Master-Knoten mit einem EC2-Schlüsselpaar und dem Standard zuverbinden hadoop Benutzer—beispielsweise, hadoop@MasterPublicDNS. Detaillierte Anweisungenfinden Sie unter Verbinden mit dem Cluster (p. 383).

2. Kopieren Sie auf dem Master-Knoten die Inhalte der /etc/krb5.conf-Datei. Weitere Informationenfinden Sie im Verbinden mit dem Cluster (p. 383).

3. Erstellen Sie auf jedem Client-Computer, der eine Verbindung zum Cluster herstellt, eine identische /etc/krb5.conf-Datei basierend auf der Kopie, die Sie im vorigen Schritt erstellt haben.

Using Kinit and SSH

Immer wenn ein Benutzer eine Verbindung von einem Client-Computer aus mithilfe von Kerberos-Anmeldeinformationen herstellt, muss der Benutzer zuerst Kerberos-Tickets für seinen Benutzer aufdem Client-Computer verlängern. Darüber hinaus muss der SSH-Client so konfiguriert werden, dass dieGSSAPI-Authentifizierung verwendet wird.

So verwenden Sie SSH zum Herstellen einer Verbindung mit einem durch Kerberos geschütztenEMR-Cluster

1. Verwenden Sie kinit zum Verlängern Ihres Kerberos-Tickets, wie im folgenden Beispiel gezeigt

kinit user1

2. Verwenden Sie einen ssh-Client zusammen mit dem Prinzipal, den Sie im Cluster-spezifischenKDC- oder Active Directory-Benutzernamen erstellt haben. Stellen Sie sicher, dass die GSSAPI-Authentifizierung aktiviert ist, wie in den folgenden Beispielen gezeigt.

Example: Linux users

Die Option -K gibt die GSSAPI-Authentifizierung an.

284

Page 292: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

ssh -K user1@MasterPublicDNS

Example: Windows users (PuTTY)

Stellen Sie sicher, dass die GSSAPI-Authentifizierungsoption für die Sitzung wie angezeigt aktiviert ist:

Tutorial: Configure a Cluster-Dedicated KDCDieses Thema führt Sie durch die Erstellung eines Clusters mit einem Cluster-dedizierten key distributioncenter (KDC), manuelles Hinzufügen von Linux-Benutzerkonten zu allen Clusterknoten, das Hinzufügenvon Kerberos-Prinzen zum KDC im Master-Knoten und Sicherstellen, dass Client-Computer einenKerberos-Client installiert haben.

Weitere Informationen zu Amazon EMR Support für Kerberos und KDC sowie Links zur MIT KerberosDokumentation finden Sie unter Use Kerberos Authentication (p. 265).

Step 1: Create the Kerberized Cluster

1. Erstellen Sie eine Sicherheitskonfiguration, die Kerberos aktiviert. Das folgende Beispiel zeigtden Befehl create-security-configuration unter Verwendung der AWS CLI, der dieSicherheitskonfiguration als Inline-JSON-Struktur angibt. Sie können auch auf eine lokal gespeicherteDatei verweisen.

aws emr create-security-configuration --name MyKerberosConfig \--security-configuration '{"AuthenticationConfiguration": {"KerberosConfiguration":

285

Page 293: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

{"Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": {"TicketLifetimeInHours": 24}}}}}'

2. Erstellen Sie einen Cluster, der auf die Sicherheitskonfiguration verweist, Kerberos-Attribute für dieCluster einrichtet, und Linux-Konten unter Verwendung einer Bootstrap-Aktion hinzufügt. Das folgendeBeispiel zeigt den Befehl create-cluster unter Verwendung der AWS CLI. Der Befehl verweist aufdie Sicherheitskonfiguration, die Sie oben erstellt haben, MyKerberosConfig. Sie verweist auch aufein einfaches Skript, createlinuxusers.sh, als Bootstrap-Aktion, die Sie erstellen und hochladenAmazon S3 bevor Sie den Cluster erstellen.

aws emr create-cluster --name "MyKerberosCluster" \--release-label emr-5.31.0 \--instance-type m5.xlarge \--instance-count 3 \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2KeyPair \--service-role EMR_DefaultRole \--security-configuration MyKerberosConfig \--applications Name=Hadoop Name=Hive Name=Oozie Name=Hue Name=HCatalog Name=Spark \--kerberos-attributes Realm=EC2.INTERNAL,\KdcAdminPassword=MyClusterKDCAdminPwd \--bootstrap-actions Path=s3://mybucket/createlinuxusers.sh

Das folgende Beispiel zeigt den Inhalt des createlinuxusers.sh-Skripts, das jedem Knoten imCluster user1, user2 und user3 hinzufügt. Im nächsten Schritt fügen Sie diese Benutzer als KDC-Prinzipale hinzu.

#!/bin/bashsudo adduser user1sudo adduser user2sudo adduser user3

Step 2: Add Principals to the KDC, Create HDFS User Directories, and ConfigureSSH

Das KDC, das auf dem Master-Knoten ausgeführt wird, benötigt einen Prinzipal für den lokalen Hostund für jeden Benutzer, den Sie auf dem Cluster erstellen. Sie können auch für jeden Benutzer HDFS-Verzeichnisse erstellen, wenn sie eine Verbindung mit dem Cluster einrichten und Hadoop-Aufträgeausführen müssen. Analog dazu konfigurieren Sie den SSH-Service, um eine GSSAPI-Authentifizierungzu aktivieren, die für Kerberos erforderlich ist. Nachdem Sie GSSAPI aktiviert haben, starten Sie den SSH-Service neu.

Die einfachste Möglichkeit dafür ist, dem Cluster ein Skript zu übergeben. Das folgende Beispiel übergibtdem Cluster ein bash-Skript configurekdc.sh, das Sie im vorherigen Schritt erstellt haben, wobeiSie die Cluster-ID angeben. Das Skript wird in Amazon S3 gespeichert. Alternativ können Sie eineVerbindung mit dem Master-Knoten unter Verwendung eines EC2-Schlüsselpaars einrichten, um dieBefehle auszuführen oder das Skript bei der Erstellung des Clusters übergeben.

aws emr add-steps --cluster-id j-01234567 --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://myregion.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://mybucket/configurekdc.sh"]

Das folgende Beispiel veranschaulicht den Inhalt des configurekdc.sh-Skripts.

#!/bin/bash

286

Page 294: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

#Add a principal to the KDC for the master node, using the master node's returned host namesudo kadmin.local -q "ktadd -k /etc/krb5.keytab host/`hostname -f`"#Declare an associative array of user names and passwords to adddeclare -A arrarr=([user1]=pwd1 [user2]=pwd2 [user3]=pwd3)for i in ${!arr[@]}; do #Assign plain language variables for clarity name=${i} password=${arr[${i}]}

# Create principal for sshuser in the master node and require a new password on first logon sudo kadmin.local -q "addprinc -pw $password +needchange $name"

#Add user hdfs directory hdfs dfs -mkdir /user/$name

#Change owner of user's hdfs directory to user hdfs dfs -chown $name:$name /user/$namedone

# Enable GSSAPI authentication for SSH and restart SSH servicesudo sed -i 's/^.*GSSAPIAuthentication.*$/GSSAPIAuthentication yes/' /etc/ssh/sshd_configsudo sed -i 's/^.*GSSAPICleanupCredentials.*$/GSSAPICleanupCredentials yes/' /etc/ssh/sshd_configsudo /etc/init.d/sshd restart

Die Benutzer, die Sie hinzugefügt haben, sollten jetzt in der Lage sein, mittels SSH eine Verbindungzum Cluster herzustellen. Weitere Informationen finden Sie im Using SSH to Connect to KerberizedClusters (p. 283).

Tutorial: Configure a Cross-Realm Trust with an Active DirectoryDomainWenn Sie eine bereichsübergreifende Vertrauensstellung einrichten, gestatten Sie Prinzipalen(normalerweise Benutzern) aus einem anderen Kerberos-Bereich, sich bei Anwendungskomponentenauf dem EMR-Cluster zu authentifizieren. Die Cluster-dedizierte key distribution center (KDC) baut eineVertrauensbeziehung mit einem anderen KDC unter Verwendung eines cross-realm principal die in beidenkdcs vorhanden sind. Der Name des Prinzipals und das Passwort stimmen genau überein.

Eine bereichsübergreifende Vertrauensstellung erfordert, dass die KDCs einander über das Netzwerkerreichen und gegenseitig ihre Domain-Namen auflösen. Die Schritte für die Einrichtung einerbereichsübergreifenden Vertrauensstellung mit einem Microsoft AD Domänencontroller, der als EC2-Instance ausgeführt wird, sind nachfolgend gezeigt, ebenso wie ein Beispiel für eine Netzwerkeinrichtung,das die erforderliche Konnektivität und die Auflösung des Domain-Namens durchführt. Jede beliebigeNetzwerkeinrichtung, die den erforderlichen Netzwerkdatenverkehr zwischen KDCs erlaubt, ist akzeptabel.

Optional können Sie nach dem Einrichten einer bereichsübergreifenden Vertrauensstellungbei Active Directory mit einem KDC auf einem Cluster einen anderen Cluster mit einer anderenSicherheitskonfiguration erstellen, um auf das KDC auf dem ersten Cluster als externes KDC zu verweisen.Ein Beispiel für die Einrichtung einer Sicherheitskonfiguration und eines Clusters finden Sie unter ExternalCluster KDC with Active Directory Cross-Realm Trust (p. 281).

Weitere Informationen zu Amazon EMR Support für Kerberos und KDC sowie Links zur MIT KerberosDokumentation finden Sie unter Use Kerberos Authentication (p. 265).

Important

Amazon EMR unterstützt keine bereichsübergreifenden Vertrauensstellungen mit AWS DirectoryService for Microsoft Active Directory.

287

Page 295: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Step 1: Set Up the VPC and Subnet (p. 288)

Step 2: Launch and Install the Active Directory Domain Controller (p. 289)

Step 3: Add User Accounts to the Domain for the EMR Cluster (p. 289)

Step 4: Configure an Incoming Trust on the Active Directory Domain Controller (p. 290)

Step 5: Use a DHCP Option Set to Specify the Active Directory Domain Controller as a VPC DNSServer (p. 290)

Step 6: Launch a Kerberized EMR Cluster (p. 290)

Step 7: Create HDFS Users and Set Permissions on the Cluster for Active Directory UserAccounts (p. 291)

Step 1: Set Up the VPC and Subnet

Die folgenden Schritten zeigen, wie eine VPC und ein Subnetz erstellt werden, sodass das Cluster-spezifische KDC den Active Directory-Domänencontroller erreichen und seinen Domain-Namen auflösenkann. In diesen Schritten wird die Auflösung des Domain-Namens durch Angabe des Active Directory-Domänencontrollers als Domain-Namen-Server in der DHCP-Optionsmenge durchgeführt. WeitereInformationen finden Sie im Step 5: Use a DHCP Option Set to Specify the Active Directory DomainController as a VPC DNS Server (p. 290).

Das KDC und der Active Directory-Domänencontroller müssen in der Lage sein, gegenseitig ihren Domain-Namen aufzulösen. Dies gestattet Amazon EMR, der Domain Computer hinzuzufügen und automatischentsprechende Linux-Benutzerkonten und SSH-Parameter auf Cluster-Instances zu konfigurieren.

Wenn Amazon EMR den Domain-Namen nicht auflösen kann, können Sie unter Verwendung der IP-Adresse des Active Directory-Domänencontrollers auf die Vertrauensstellung verweisen. Sie müssenjedoch manuell Linux-Benutzerkonten hinzufügen, dem Cluster-spezifischen KDC entsprechendePrinzipale hinzufügen und SSH konfigurieren.

Einrichten der VPC und des Subnetzes

1. Erstellen Sie eine Amazon VPC mit einem einzelnen öffentlichen Subnetz. Weitere Informationenfinden Sie unter Schritt 1: VPC erstellen im Amazon VPC Getting Started Guide.

Important

Wenn Sie einen Microsoft Active Directory-Domänencontroller verwenden, wählen Sie einenCIDR-Block für den EMR-Cluster, sodass alle IPv4-Adressen kürzer als neun Zeichen sind (z.B. 10.0.0.0/16). Der Grund hierfür ist, dass die DNS-Namen der Cluster-Computer verwendetwerden, wenn die Computer dem Active Directory-Verzeichnis hinzugefügt werden. AWSweist DNS-Hostnamen basierend auf IPv4-Adressen so zu, dass längere IP-Adressen zuDNS-Namen mit mehr als 15 Zeichen führen können. Für Active Directory gilt ein Limit von 15Zeichen für die Registrierung der Namen der hinzugefügten Computer, und es kürzt längereNamen, was zu unvorhersehbaren Fehlern führen kann.

2. Entfernen Sie die Standard-DHCP-Optionsmenge, die der VPC zugeordnet ist. Weitere Informationenfinden Sie unter Ändern der VPC, sodass keine DHCP-Optionen verwendet werden. Später fügen Sieeine neue hinzu, die den Active Directory-Domänencontroller als DNS-Server spezifiziert.

3. Vergewissern Sie sich, dass DNS-Support für die VPC aktiviert ist, dass DNS-Hostnamen und DNS-Auflösung beide aktiviert sind. Standardmäßig sind sie aktiviert. Weitere Informationen finden Sie unterAktualisieren der DNS-Unterstützung für Ihre VPC.

4. Vergewissern Sie sich, dass Ihrer VPC ein Internet-Gateway zugeordnet ist. Dies ist dieStandardeinstellung. Weitere Informationen finden Sie unter Erstellen und Anfügen eines Internet-Gateways.

288

Page 296: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Note

In diesem Beispiel wird ein Internet-Gateway verwendet, weil Sie einen neuenDomänencontroller für den VPC einrichten. Für Ihre Anwendung ist möglicherweise keinInternet-Gateway erforderlich. Die einzige Voraussetzung ist, dass das Cluster-spezifischeKDC auf den Active Directory-Domänencontroller zugreifen kann.

5. Erstellen Sie eine benutzerdefinierte Routing-Tabelle, fügen Sie eine Route zum Internet-Gatewayhinzu, und ordnen Sie ihn dann Ihrem Subnetz zu. Weitere Informationen finden Sie unter Erstelleneiner benutzerdefinierten Routing-Tabelle.

6. Wenn Sie die EC2-Instance für den Domänen-Controller starten, benötigt er eine statischeöffentliche IPv4-Adresse, damit Sie eine Verbindung über RDP zu ihm einrichten können. Dieeinfachste Möglichkeit ist die Konfiguration Ihres Subnetzes, um automatisch öffentliche IPv4-Adressen zuzuweisen. Dies ist nicht die Standardeinstellung, wenn ein Subnetz erstellt wird. WeitereInformationen finden Sie unter Ändern des öffentlichen IPv4-Adressierungsattributs Ihres Subnetzes.Optional können Sie die Adresse zuweisen, wenn Sie die Instance starten. Weitere Informationenfinden Sie unter Zuweisen einer öffentlichen IPv4-Adresse beim Starten einer Instance.

7. Wenn Sie fertig sind, notieren Sie die VPC und die Subnetz-IDs. Sie benötigen sie später, wenn Sieden Active Directory-Domänencontroller und den Cluster starten.

Step 2: Launch and Install the Active Directory Domain Controller

1. So starten Sie eine EC2-Instance basierend auf der Microsoft Windows Server 2016 Basis-AMI. Wirempfehlen einen m4.xlarge oder einen besseren Instance-Typ. Weitere Informationen finden Sie unterStarten einer AWS Marketplace-Instance im Amazon EC2-Benutzerhandbuch für Windows-Instances.

2. Notieren Sie sich die Gruppen-ID der Sicherheitsgruppe, die der EC2-Instance zugeordnetist. Sie benötigen sie für Step 6: Launch a Kerberized EMR Cluster (p. 290). Wir verwendensg-012xrlmdomain345Alternativ können Sie verschiedene Sicherheitsgruppen für den EMR-Cluster und diese Instance angeben, die den Datenverkehr zwischen ihnen zulässt. WeitereInformationen finden Sie unter Amazon EC2-Sicherheitsgruppen für Linux-Instances im Amazon EC2-Benutzerhandbuch für Linux-Instances.

3. Stellen Sie unter Verwendung von RDP eine Verbindung mit der EC2-Instance her. WeitereInformationen finden Sie unter Herstellen einer Verbindung mit Ihrer Windows-Instance im Amazon EC2-Benutzerhandbuch für Windows-Instances.

4. Starten Sie Server Manager (Servermanager), um die Active Directory Domain Services-Rolle auf demServer zu installieren und zu konfigurieren. Machen Sie den Server zu einem Domänencontroller undweisen Sie einen Domain-Namen zu (wir verwenden in diesem Beispiel hier ad.domain.com). NotierenSie den Domain-Namen, da Sie ihn später benötigen, wenn Sie die EMR-Sicherheitskonfiguration undden Cluster erstellen. Wenn Sie noch keine Erfahrung mit der Einrichtung von Active Directory haben,können Sie den Anweisungen in How to Set Up Active Directory (AD) in Windows Server 2016 folgen.

Die Instance startet neu, wenn Sie fertig sind.

Step 3: Add User Accounts to the Domain for the EMR Cluster

RDP zum Active Directory-Domänencontroller zum Erstellen von Benutzerkonten in Active DirectoryUsers and Computers für jeden Cluster-Benutzer. Weitere Informationen finden Sie unter Create aUser Account in Active Directory Users and Computers. Notieren Sie den Wert für User logon name(Benutzeranmeldename) jedes Benutzers. Sie benötigen diese später, wenn Sie den Cluster konfigurieren.

Darüber hinaus erstellen Sie ein Benutzerkonto mit ausreichenden Berechtigungen, um der DomainComputer hinzuzufügen. Sie geben dieses Konto an, wenn Sie einen Cluster erstellen. Amazon EMRverwendet das Konto, um der Domäne Cluster-Instances hinzuzufügen. Sie geben dieses Konto undsein Passwort in Step 6: Launch a Kerberized EMR Cluster (p. 290) an. Für die Delegation von Join-Berechtigungen des Computers an das Benutzerkonto empfehlen wir das Erstellen einer Gruppe mit Join-

289

Page 297: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

Berechtigungen und die anschließende Zuweisung des Benutzers zu der Gruppe. Anweisungen findenSie unter Delegieren von Berechtigungen zum Verbinden eines Verzeichnisses im AWS Directory ServiceAdministration Guide.

Step 4: Configure an Incoming Trust on the Active Directory Domain ControllerDie folgenden Beispielbefehle erstellen ein Vertrauensverhältnis in Active Directory. Dabei handelt essich um eine unidirektionale eingehende, nicht transitive, Bereichsvertrauensstellung mit dem Cluster-spezifischen KDC. Das Beispiel, das wir für die Gruppe des Clusters verwenden, ist EC2.INTERNAL.Ersetzen Sie die KDC-FQDN mit Öffentliches DNS Name für die Amazon EMR Master-Knoten, derden KDC hostet. Der Parameter passwordt gibt das cross-realm principal password (Passwort desbereichsübergreifenden Prinzipals) an, das Sie beim Erstellen eines Clusters zusammen mit dem realm(Bereich) des Clusters angeben. Der Bereichsname wird von dem Standard-Domain-Namen us-east-1für den Cluster abgeleitet. Die Domain ist die Active Directory-Domäne, in der Sie die Vertrauensstellungerstellen. Sie wird gemäß Konvention in Kleinbuchstaben angegeben. Im Beispiel wird ad.domain.comverwendet.

Öffnen Sie die Windows-Eingabeaufforderung mit Administrator-Berechtigungen und geben Sie diefolgenden Befehle zum Erstellen der Vertrauensstellung auf dem Active Directory-Domänencontroller ein:

C:\Users\Administrator> ksetup /addkdc EC2.INTERNAL KDC-FQDNC:\Users\Administrator> netdom trust EC2.INTERNAL /Domain:ad.domain.com /add /realm /passwordt:MyVeryStrongPasswordC:\Users\Administrator> ksetup /SetEncTypeAttr EC2.INTERNAL AES256-CTS-HMAC-SHA1-96

Step 5: Use a DHCP Option Set to Specify the Active Directory Domain Controlleras a VPC DNS ServerNachdem der Active Directory-Domänencontroller konfiguriert ist, müssen Sie die VPC so konfigurieren,dass er als Domain-Namenserver für die Namensauflösung in Ihrer VPC verwendet wird. Dazu ordnenSie eine DHCP-Optionsmenge zu. Geben Sie einen Wert in Domain name (Domänenname) alsDomänennamen für Ihren Cluster ein, z. B. ec2.internal, wenn sich Ihr Cluster in us-east-1 befindet,oder region.compute.internal für andere Regionen. für Domain Name Server, Sie müssen dieIP-Adresse der Active Directory Domain Controller angeben (die vom Cluster erreichbar sein muss) alserste Eingabe, gefolgt von Amazonprovideddns (z. B. xx.xx.xx.xx,Amazonprovideddns). WeitereInformationen finden Sie unter Ändern von DHCP-Optionssätzen.

Step 6: Launch a Kerberized EMR Cluster

1. Erstellen Sie in Amazon EMR eine Sicherheitskonfiguration, die den Active Directory-Domänencontrollerangibt, den Sie in den vorherigen Schritten erstellt haben. Ein Beispielbefehl ist nachfolgend gezeigt.Ersetzen Sie die Domäne ad.domain.com durch den Namen der Domäne, die Sie in Step 2: Launchand Install the Active Directory Domain Controller (p. 289) angegeben haben.

aws emr create-security-configuration --name MyKerberosConfig \--security-configuration '{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24, "CrossRealmTrustConfiguration": { "Realm": "AD.DOMAIN.COM", "Domain": "ad.domain.com", "AdminServer": "ad.domain.com", "KdcServer": "ad.domain.com" } } }

290

Page 298: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUse Kerberos Authentication

}}'

2. Erstellen Sie den Cluster mit den folgenden Attributen:• Use the --security-configuration option to specify the security configuration that you created.

We use MyKerberosConfig in the example.• Use the SubnetId property of the --ec2-attributes option to specify the subnet that you

created in Step 1: Set Up the VPC and Subnet (p. 288). We use step1-subnet in the example.• Use the AdditionalMasterSecurityGroups and AdditionalSlaveSecurityGroups

of the --ec2-attributes option to specify that the security group associated withthe AD Domain Controller from Step 2: Launch and Install the Active Directory DomainController (p. 289) is associated with the cluster master node as well as core and task nodes. Weuse sg-012xrlmdomain345 in the example.

Verwenden Sie --kerberos-attributes, um die folgenden Cluster-spezifischen Kerberos-Attributeanzugeben:• The realm for the cluster that you specified when you set up the Active Directory domain controller.• The cross-realm trust principal password that you specified as passwordt in Step 4: Configure an

Incoming Trust on the Active Directory Domain Controller (p. 290).• A KdcAdminPassword, which you can use to administer the cluster-dedicated KDC.• The user logon name and password of the Active Directory account with computer join privileges that

you created in Step 3: Add User Accounts to the Domain for the EMR Cluster (p. 289).

Das folgende Beispiel startet einen Cluster mit Schutz durch Kerberos.

aws emr create-cluster --name "MyKerberosCluster" \--release-label emr-5.10.0 \--instance-type m5.xlarge \--instance-count 3 \--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2KeyPair,\SubnetId=step1-subnet, AdditionalMasterSecurityGroups=sg-012xrlmdomain345,AdditionalSlaveSecurityGroups=sg-012xrlmdomain345\--service-role EMR_DefaultRole \--security-configuration MyKerberosConfig \--applications Name=Hadoop Name=Hive Name=Oozie Name=Hue Name=HCatalog Name=Spark \--kerberos-attributes Realm=EC2.INTERNAL,\KdcAdminPassword=MyClusterKDCAdminPwd,\ADDomainJoinUser=ADUserLogonName,ADDomainJoinPassword=ADUserPassword,\CrossRealmTrustPrincipalPassword=MatchADTrustPwd

Step 7: Create HDFS Users and Set Permissions on the Cluster for ActiveDirectory User Accounts

Wenn Sie eine Vertrauensstellung mit Active Directory einrichten, erstellt Amazon EMR Linux-Benutzerauf dem Cluster für jedes Active Directory-Benutzerkonto. Der Benutzername des Benutzers zumBeispiel LiJuan in Active Directory verfügt über ein Linux-Benutzerkonto von lijuan. Active Directory-Benutzernamen können Großbuchstaben enthalten, aber Linux ehre Active Directory-Hülle nicht.

Um Ihren Benutzern zu ermöglichen, sich beim Cluster anzumelden, um Hadoop-Jobs auszuführen,müssen Sie HDFS-Benutzerverzeichnisse für ihre Linux-Benutzerkonten hinzufügen und jedem Benutzerdas Eigentum an ihrem Verzeichnis erteilen. Zu diesem Zweck empfehlen wir, dass Sie ein Skriptausführen, das Sie in Amazon S3 als Cluster-Schritt gespeichert haben. Alternativ können Sie die Befehleaus dem folgenden Skript von der Befehlszeile auf dem Master-Knoten aus ausführen. Verwenden Sie dasEC2-Schlüsselpaar, das Sie beim Erstellen des Clusters angegeben haben, um eine Verbindung mit demMaster-Knoten über SSH als Hadoop-Benutzer einzurichten. Weitere Informationen finden Sie im Use anAmazon EC2 Key Pair for SSH Credentials (p. 265).

291

Page 299: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideIntegration von Amazon EMR in AWS Lake Formation

Führen Sie den folgenden Befehl aus, um einen Schritt zum Cluster hinzuzufügen, der ein Skript ausführtAddHDFSUsers.sh.

aws emr add-steps --cluster-id ClusterID \--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\Jar=s3://MyRegion.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://MyBucketPath/AddHDFSUsers.sh"]

Inhalt der Datei AddHDFSUsers.sh ist wie folgt.

#!/bin/bash# AddHDFSUsers.sh script

# Initialize an array of user names from AD or Linux users and KDC principals created manually on the clusterADUSERS=("lijuan" "marymajor" "richardroe" "myusername")

# For each user listed, create an HDFS user directory# and change ownership to the user

for username in ${ADUSERS[@]}; do hdfs dfs -mkdir /user/$username hdfs dfs -chown $username:$username /user/$usernamedone

Active Directory Groups Mapped to Hadoop Groups

Amazon EMR verwendet den System Security Services Daemon (SSD), um Active Directory-GruppenHadoop-Gruppen zuzuordnen. Um die Gruppenzuordnungen nach der Anmeldung am Master-Knotenzu bestätigen, wie in Using SSH to Connect to Kerberized Clusters (p. 283) beschrieben, können Sieden Befehl hdfs groups ausführen, um zu bestätigen, dass Active Directory-Gruppen, zu denen IhrActive Directory-Konto gehört, Hadoop-Gruppen für die entsprechenden Hadoop-Benutzer auf dem Clusterzugeordnet wurden. Sie können auch die Gruppenzuordnungen anderer Benutzer prüfen, indem Sieeine oder mehrere Benutzernamen mit dem Befehl angeben, z. B. hdfs groups lijuan. WeitereInformationen finden Sie unter Gruppen im Apache HDFS-Befehle – Anleitung.

Integration von Amazon EMR in AWS LakeFormation

Ab Amazon EMR 5.31.0 können Sie einen Cluster starten, der in AWS Lake Formation integriert ist.AWS Lake Formation ist ein verwalteter Service, der Ihnen hilft, Daten in einem Amazon Simple StorageService (Amazon S3)-Data Lake zu erkennen, zu katalogisieren, zu bereinigen und zu sichern. WeitereInformationen finden Sie im AWS Lake Formation.

Dieser Abschnitt bietet eine konzeptionelle Übersicht über die Amazon EMR-Integration in Lake Formation.Außerdem werden die Voraussetzungen und Schritte aufgeführt, die zum Starten eines in Amazon EMRintegrierten Lake Formation-Clusters erforderlich sind.

Die Integration von Amazon EMR in AWS Lake Formation bietet die folgenden wichtigen Nutzen:

• Differenzierter Zugriff auf Spaltenebene zu Datenbanken und Tabellen im AWS Glue-Datenkatalog.• Verbundenes Single Sign-On bei EMR Notebooks oder Apache Zeppelin aus

Unternehmensidentitätssystemen, die mit Security Assertion Markup Language (SAML) 2.0 kompatibelsind.

292

Page 300: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜbersicht

Important

Wenn Sie derzeit EMR-Cluster mit Lake Formation im Beta-Modus verwenden, sollten SieIhre Cluster auf EMR-Version 5.31.0 oder höher aktualisieren, um diese Funktion weiterhinzu verwenden. Cluster mit einer EMR-Version unter 5.31.0 funktionieren nicht mehr mit LakeFormation.Die EMR-Integration mit Lake Formation ist für die EMR 6.x-Serie noch nicht verfügbar.

Themen• Übersicht über die Amazon EMR-Integration in Lake Formation (p. 293)• Unterstützte Anwendungen und Funktionen (p. 299)• Bevor Sie beginnen (p. 301)• Starten eines Amazon EMR-Clusters mit Lake Formation (p. 310)

Übersicht über die Amazon EMR-Integration in LakeFormationWenn Sie Amazon EMR mit AWS Lake Formation integrieren, aktivieren Sie die SAML-basierteAuthentifizierung mit Unternehmensanmeldeinformationen und erzwingen eine differenzierteZugriffskontrolle auf Spaltenebene für Data Lakes basierend auf Richtlinien, die Sie in AWS LakeFormation definieren.

RequirementsIhre Organisation muss die folgenden Anforderungen erfüllen, bevor Sie Amazon EMR und Lake Formationintegrieren:

• Verwalten Sie Ihre Unternehmensidentitäten mit einem vorhandenen, SAML-basierten Identitätsanbieter(IdP) wie Active Directory Federation Services (AD FS). Weitere Informationen finden Sie imKonfigurieren von Drittanbietern für SAML (p. 305).

• Der AWS Glue-Datenkatalog wird als Metadatenspeicher verwendet.• Berechtigungen für den Zugriff auf Datenbanken, Tabellen und Spalten im AWS Glue-Datenkatalog

werden in Lake Formation definiert und verwaltet. Weitere Informationen finden Sie im AWS LakeFormation.

• Für den Zugriff auf Daten, die von AWS Glue und Lake Formation verwaltet werden, wird EMRNotebooks oder Apache Zeppelin verwendet.

IntegrationsschritteUm Amazon EMR in Lake Formation zu integrieren, müssen Sie die folgenden Schritte ausführen:

1. Führen Sie die erforderlichen Aufgaben durch, wie z. B. das Konfigurieren Ihres Identitätsanbieters,das Erstellen von IAM-Rollen für Lake Formation, das Einrichten einer Sicherheitskonfiguration und dasVorbereiten von Lake Formation-Ressourcen. Weitere Informationen zu den Voraussetzungen für dieAmazon EMR- und Lake Formation-Integration finden Sie unter Bevor Sie beginnen (p. 301).

2. Starten Sie einen Cluster mit den neuen Rollen und der Sicherheitskonfiguration, die Sie für LakeFormation erstellt haben. Weitere Informationen finden Sie im Starten eines Amazon EMR-Clusters mitLake Formation (p. 310).

3. Aktualisieren Sie die Callback- oder Single-Sign-On-URL mit Ihrem IdP, um Benutzer nach einererfolgreichen SAML-Authentifizierung an den Master-Knoten Ihres Clusters weiterzuleiten. Weitere

293

Page 301: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜbersicht

Informationen finden Sie im Aktualisieren der Callback- oder Single Sign-On-URL bei IhremIdentitätsanbieter (p. 311).

So funktioniert der Datenzugriff in Lake FormationNachdem Sie Amazon EMR in Lake Formation integriert haben, authentifizieren sich Benutzer überdie Anmeldeseite des Identitätsanbieters Ihrer Organisation, um auf EMR-Notebooks oder Zeppelinzuzugreifen. Anschließend bietet Lake Formation Zugriff auf Daten über temporäre Anmeldeinformationenfür EMR. Dieser Prozess wird als Anmeldeinformationsvergabe bezeichnet. Weitere Informationen findenSie im AWS Lake Formation.

Im Folgenden finden Sie eine allgemeine Übersicht darüber, wie EMR Zugriff auf Daten erhält, die durchLake Formation-Sicherheitsrichtlinien geschützt sind:

1. Ein Benutzer sendet eine Abfrage in Amazon EMR für Daten aus Lake Formation.2. Amazon EMR fordert temporäre Anmeldeinformationen von AWS Lake Formation für den Zugriff für

diesen Benutzer an.3. Lake Formation gibt temporäre Anmeldeinformationen zurück, die den Zugriff auf die Daten erlauben.4. Amazon EMR sendet die Abfrageanforderung zum Abrufen von Daten aus Amazon S3.5. Amazon EMR empfängt die Daten von Amazon S3 und filtert dann die Ergebnisse und gibt sie basierend

auf den Benutzerberechtigungen zurück, die Sie in Lake Formation definiert haben.

Detaillierte Informationen zur Funktionsweise der Benutzerauthentifizierung und zum Zugriff auf Datenfinden Sie unter Amazon EMR-Komponenten (p. 297) und Architektur einer einmaligen Anmeldung undeiner differenzierten Zugriffskontrolle mit SAML (p. 298).

Weitere Informationen zum Hinzufügen von Benutzern und Gruppen zu Lake Formation-Richtlinien findenSie unter Gewähren von Berechtigungen für den Datenkatalog.

Themen• IAM-Rollen für Lake Formation (p. 295)• Begriffe und Konzepte (p. 296)• Amazon EMR-Komponenten (p. 297)

294

Page 302: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜbersicht

• Architektur einer einmaligen Anmeldung und einer differenzierten Zugriffskontrolle mit SAML (p. 298)

IAM-Rollen für Lake FormationDie Integration zwischen Amazon EMR und AWS Lake Formation basiert auf drei Schlüsselrollen, die Sieerstellen sollten, bevor Sie Ihren Cluster starten:

1. Ein benutzerdefiniertes Amazon EC2-Instance-Profil für Amazon EMR.2. Eine IAM-Rolle für die Verwendung für den Identitätsverbund in Lake Formation.3. Eine IAM-Rolle für Nicht-Lake Formation-AWS-Services.

Dieser Abschnitt bietet eine Übersicht über diese Rollen und die Richtlinien, die Sie für jede Rolleeinschließen müssen. Weitere Informationen zum Erstellen dieser Rollen finden Sie unter Bevor Siebeginnen (p. 301).

EC2 Instance Profile (EC2-Instance-Profile)

Amazon EMR verwendet IAM-Servicerollen, um Aktionen in Ihrem Namen auszuführen und Clusterbereitzustellen und zu verwalten. Die Servicerolle für Cluster-EC2-Instances, die auch als EC2-Instance-Profil für Amazon EMR bezeichnet wird, ist eine spezielle Art von Servicerolle, die jeder EC2-Instance ineinem Cluster beim Start zugewiesen wird.

Um Berechtigungen für EMR-Cluster für die Interaktion mit Lake Formation und anderen AWS-Services zudefinieren, sollten Sie beim Starten Ihres Clusters ein benutzerdefiniertes EC2-Instance-Profil definieren,das anstelle von EMR_EC2_DefaultRole verwendet wird.

Weitere Informationen finden Sie unter Servicerolle für EC2-Cluster-Instances (EC2-Instance-Profil) undAnpassen von IAM-Rollen.

IAM-Rolle für Lake Formation

Die IAM-Rolle für Lake Formation definiert, welche Berechtigungen ein Benutzer hat, der sich über IhrenIdentitätsanbieter anmeldet und welcher Identitätsanbieter (IdP) diese Rolle übernehmen kann. DieMaximum CLI/API session duration der Rolle definiert das Sitzungs-Timeout für den Zugriff aufEMR Notebooks und Apache Zeppelin.

• Diese Rolle muss mit der folgenden Berechtigungsrichtlinie erstellt werden.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GetMetadataAccess", "glue:GetUnfiltered*", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" }}

295

Page 303: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜbersicht

Note

Erteilen Sie dieser Rolle keine Berechtigungen für den Zugriff auf Amazon S3.Buckets, die vonAWS Glue verwaltet werden. Der verbundene Benutzer sollte über Lake Formation mit SparkSQL auf Daten zugreifen und nicht direkt über Amazon S3.

• Die Rolle muss auch die folgende Vertrauensrichtlinie enthalten, die es Ihrem IAM-Identitätsanbieterermöglicht, die Rolle anzunehmen. Ersetzen account-id mit Ihrer AWS-Konto-ID. Ersetzen desIAM_identity_provider_name durch den Namen Ihres IAM-Identitätsanbieters ersetzen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name" }, "Action": "sts:AssumeRoleWithSAML" } ]}

IAM-Rolle für Nicht-Lake Formation-AWS-Services

Die IAM-Rolle für AWS-Services definiert die Berechtigungen, die der Amazon EMR-Cluster beim Zugriffauf Nicht-AWS Lake Formation-Services hat. Wenn beispielsweise die in Ihrem Cluster ausgeführtenAufträge Zugriff auf Amazon DynamoDB oder andere AWS-Services benötigen, sollte die IAM-Rolle fürAWS-Services über Richtlinien verfügen, die für den Zugriff auf diese Services erforderlich sind.

Wenn Sie Richtlinien für diese Rolle konfigurieren, stellen Sie sicher, dass die Rolle keinen Zugriff auf diefolgenden API-Operationen hat:

• AWS Glue-API-Operationen• AWS Lake Formation-API-Operationen• AWS Security Token Service (STS)-AssumeRole-Operationen• Amazon S3-Zugriff auf Buckets, die von AWS Glue verwaltet werden Der Cluster sollte über Lake

Formation unter Verwendung von Spark SQL auf Daten zugreifen und nicht direkt über Amazon S3.

Begriffe und KonzepteDieser Abschnitt enthält Definitionen für Konzepte und Begriffe, die im Zusammenhang mit der Integrationvon Amazon EMR in AWS Lake Formation verwendet werden.

Authentifizierung

Ein Prozess, bei dem die Identität eines Benutzers festgelegt wird. Durch die Integration von Amazon EMRund Lake Formation können Ihre Benutzer ihre Unternehmens-Anmeldeinformationen verwenden, um sichbei EMR Notebooks und Apache Zeppelin anzumelden.

Autorisierung

Der Prozess der Genehmigung, welche Aktionen ein bestimmter Benutzer für eine Ressource ausführenkann. Bei der Integration eines Amazon EMR-Clusters in Lake Formation definieren Sie Richtlinien, die

296

Page 304: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜbersicht

den Benutzerzugriff auf Datenbanken, Tabellen und Spalten autorisieren. Dieser Prozess stellt sicher, dassBenutzer nur die Tabellen oder Spalten abfragen und analysieren können, für die sie autorisiert sind.

Verbund

Die Erstellung einer Vertrauensstellung zwischen einem externen Identitätsanbieter (IdP) und AWS Identityand Access Management(IAM). Benutzer können sich über einen kompatiblen SAML 2.0-Identitätsanbieter(Security Assertion Markup Language) wie Microsoft Active Directory Federation Services anmelden.Weitere Informationen finden Sie im Konfigurieren von Drittanbietern für SAML (p. 305). Wenn Sie SAML2.0 verwenden, um eine Vertrauensstellung zwischen einem IdP und IAM zu konfigurieren, weist AWSdem Benutzer eine IAM-Rolle zu. Der Benutzer erhält auch temporäre Anmeldeinformationen, die ihm denZugriff auf Ihre AWS Lake Formation-Ressourcen erlauben.

Vertrauensrichtlinie

Ein Dokument im JSON-Format, das definiert, wer eine IAM-Rolle übernehmen darf. Das Dokument wirdentsprechend den Regeln der IAM-Richtliniensprache geschrieben.

Berechtigungsrichtlinie

Ein Berechtigungsdokument im JSON-Format, das die Aktionen und Ressourcen definiert, auf dieeine IAM-Rolle Zugriff hat. Das Dokument wird entsprechend den Regeln der IAM-Richtliniensprachegeschrieben.

Prinzipal

Eine Entität, die auf durch Lake Formation-Richtlinien geschützte Ressourcen zugreifen und Abfragen inAmazon EMR ausführen darf. Prinzipale sind verbundene Benutzer.

Amazon EMR-KomponentenAmazon EMR ermöglicht eine differenzierte Zugriffskontrolle mit Lake Formation über die folgendenKomponenten:

• Proxy-Agent: Der Proxy-Agent basiert auf Apache Knox. Er empfängt SAML-authentifizierte Anfragenvon Benutzern und übersetzt SAML-Anträge in temporäre Anmeldeinformationen. Außerdem speichertder Agent die temporären Anmeldeinformationen im Secret-Agent. Der Proxy-Agent wird auf demMasterknoten unter dem Systembenutzer knox ausgeführt und schreibt Protokolle in das Verzeichnis /var/log/knox.

• Secret-Agent: Der Secret-Agent speichert geheime Daten sicher und verteilt sie an andere EMR-Komponenten oder Anwendungen. Bei diesen geheimen Daten („Secrets“) kann es sich beispielsweiseum temporäre Anmeldeinformationen von Benutzern, um Verschlüsselungsschlüssel oder um Kerberos-Tickets handeln. Der Secret-Agent wird auf jedem Knoten im Cluster ausgeführt und verwendet LakeFormation und AWS Glue APIs, um temporäre Anmeldeinformationen und AWS Glue-Datenkatalog-Metadaten abzurufen. Der Secret-Agent wird unter Benutzer emrsecretagent ausgeführt undschreibt Protokolle in das Verzeichnis /emr/secretagent/log. Der Prozess benötigt eine bestimmteZusammenstellung von iptables-Regeln, um zu funktionieren. Es ist wichtig sicherzustellen, dassiptables nicht deaktiviert ist, und wenn Sie die iptables-Konfiguration anpassen, müssen die nat-Tabellenregeln unverändert beibehalten bleiben.

• Datensatzserver – Der Datensatzserver empfängt Anforderungen für den Zugriff auf Daten.Anschließend autorisiert er Anforderungen basierend auf temporären Anmeldeinformationen undTabellenzugriffskontrollrichtlinien, die von dem Secret-Agent verteilt werden. Der Datensatzserver liestDaten aus Amazon S3 und gibt Daten auf Spaltenebene zurück, auf die der Benutzer zugreifen darf.Der Datensatzserver wird auf jedem Knoten im Cluster unter dem Benutzer emr_record_serverausgeführt und schreibt Protokolle in das Verzeichnis /var/log/emr-record-server.

297

Page 305: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜbersicht

Architektur einer einmaligen Anmeldung und einer differenziertenZugriffskontrolle mit SAMLDas folgende Diagramm veranschaulicht die Architektur einer einmaligen Anmeldung und einerdifferenzierten Zugriffskontrolle mit Lake Formation und Amazon EMR.

298

Page 306: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUnterstützte Anwendungen und Funktionen

1. Ein nicht authentifizierter Benutzer verwendet den Proxy-Agent für den Zugriff auf EMR Notebook oderZeppelin. Der Benutzer wird zur Anmeldeseite des Identitätsanbieters (IdP, Identity Provider) IhrerOrganisation weitergeleitet.

2. Die IdP überprüft die Identität des Benutzers in Ihrer Organisation.3. Das IdP generiert eine SAML-Authentifizierungsantwort, die Zusicherungen enthält, die den Benutzer

identifizieren und Attribute über den Benutzer enthalten.4. Der Client-Browser sendet die SAML-Zusicherung an den Proxy-Agent.5. Der Proxy-Agent fordert von AWS Lake Formation im Namen des Benutzers benutzerspezifische

temporäre Sicherheitsanmeldeinformationen an. Die temporären Sicherheitsanmeldeinformationenwerden an den Proxy-Agent zurückgesendet.

6. Der Proxy-Agent speichert die benutzerspezifischen temporären Sicherheitsanmeldeinformationen imSecret-Agent. Der Secret-Agent sendet die temporären Benutzeranmeldeinformationen an die Secret-Agents in Core- und Aufgabenknoten.

7. Der Proxy-Agent ermöglicht eine erfolgreiche Benutzeranmeldung.8. Wenn der Benutzer einen Spark-Auftrag über die EMR-Notebooks oder Zeppelin ausführt, ruft der

Datensatzserver den Secret-Agenten auf, um temporäre Benutzeranmeldeinformationen zu erhalten.9. Der Datensatzserver liest und filtert Daten aus Amazon S3 auf der Grundlage der in Lake Formation

definierten Richtlinien.

Für den Benutzer ist dieser Vorgang transparent. Der Benutzer beginnt auf der Authentifizierungsseite IhresUnternehmens und wird dann über den Browser auf die EMR-Notebooks oder die Zeppelin-Schnittstellegeleitet, ohne jemals AWS-Anmeldeinformationen angeben zu müssen.

Unterstützte Anwendungen und FunktionenUnterstützte AnwendungenDie Integration von Amazon EMR und AWS Lake Formation unterstützt die folgenden Anwendungen:

• Amazon EMR-Notebooks• Apache Zeppelin• Apache Spark über Amazon EMR-Notebooks

Important

Andere Anwendungen werden derzeit nicht unterstützt. Um die Sicherheit Ihres Clusters zugewährleisten, installieren Sie keine Anwendungen, die nicht in dieser Liste angezeigt werden.

Unterstützte FunktionenDie folgenden Amazon EMR-Funktionen können mit EMR und Lake Formation verwendet werden:

• Verschlüsselung bei Speicherung und Übertragung• Kerberos-Authentifizierung mit einem Cluster-spezifischen Schlüsselverteilungszentrum (KDC) ohne

bereichsübergreifende Vertrauensstellung• Instance-Gruppen, Instance-Flotten und Spot-Instances• Neukonfigurieren von Anwendungen in einem aktiven Cluster• Serverseitige EMRFS-Verschlüsselung (SSE)

299

Page 307: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUnterstützte Anwendungen und Funktionen

Note

Die Amazon EMR-Verschlüsselungseinstellungen regeln die SSE. Weitere Informationen findenSie im Verschlüsselungsoptionen (p. 207).

Die folgenden EMR-Funktionen funktionieren derzeit nicht mit der Lake Formation-Integration:

• Schritte• Mehrere Masterknoten• Konsistente EMRFS-Ansicht• Clientseitige EMRFS-Verschlüsselung (CSE)

LimitationsBeachten Sie bei der Verwendung von Amazon EMR mit AWS Lake Formation die folgendenEinschränkungen:

• Amazon EMR mit Lake Formation ist derzeit in 16 AWS-Regionen verfügbar: USA Ost (Ohio und Nord-Virginia), USA West (Nordkalifornien und Oregon), Asien-Pazifik (Mumbai, Seoul, Singapur, Sydneyund Tokio), Kanada (Zentral), Europa (Frankfurt, Irland, London, Paris und Stockholm), Südamerika (SPaulo).

• Sie müssen eine benutzerdefinierte IAM-Rolle anstelle der serviceverknüpften Lake Formation-Rolleverwenden, um Datenspeicherorte zu registrieren, die von Amazon EMR-Clustern mit Lake Formationverwendet werden. Lake Formation unterstützt die Verwendung seiner serviceverknüpften Rolle beider Integration in EMR nicht. Weitere Informationen zum Erstellen einer benutzerdefinierten Rolle zumRegistrieren von Datenspeicherorten mit Lake Formation finden Sie unter Anforderungen für Rollen zumRegistrieren von Speicherorten.

• Es ist wichtig zu verstehen, dass die Autorisierung auf Lake Formation-Spaltenebene verhindert,dass Benutzer auf Daten in Spalten zugreifen, auf die der Benutzer keinen Zugriff hat. In bestimmtenSituationen können Benutzer jedoch auf Metadaten zugreifen, die alle Spalten in der Tabellebeschreiben, einschließlich der Spalten, auf die sie keinen Zugriff haben. Diese Spaltenmetadatenwerden in den Tabelleneigenschaften für Tabellen gespeichert, die das Avro-Speicherformat verwendenoder benutzerdefinierte Serializer/Deserializer (SerDe) verwenden, in denen das Tabellenschema inTabelleneigenschaften zusammen mit der SerDe-Definition definiert ist. Wenn Sie Amazon EMR undLake Formation verwenden, empfehlen wir Ihnen, den Inhalt der Tabelleneigenschaften für die Tabellenzu überprüfen, die Sie schützen, und nach Möglichkeit die in den Tabelleneigenschaften gespeichertenInformationen zu begrenzen, um zu verhindern, dass sensible Metadaten für Benutzer sichtbar sind.

• In für Lake Formation aktivierten Clustern kann Spark SQL Daten, die vom AWS Glue-Datenkatalogverwaltet werden, nur lesen und gar nicht auf Daten zugreifen, die außerhalb von AWS Glue oder LakeFormation verwaltet werden. Auf Daten aus anderen Quellen kann über Nicht-Spark SQL-Operationenzugegriffen werden, wenn für die IAM-Rolle für andere AWS-Services, die während der Cluster-Bereitstellung ausgewählt wurde, Richtlinien gelten, die dem Cluster den Zugriff auf diese Datenquellenerlauben.• Beispiel: Sie haben neben einer Reihe von Lake Formation-Tabellen zwei Amazon S3-Buckets und

eine Amazon DynamoDB-Tabelle, auf die Ihr Spark-Auftrag zugreifen soll. In diesem Fall könnenSie eine Rolle erstellen, die auf die beiden Amazon S3-Buckets und die Amazon DynamoDB-Tabelle zugreifen darf und diese Rolle beim Starten Ihres Clusters als IAM role for other AWSservices verwenden.

• Die Einreichung von Spark-Aufträgen muss über EMR Notebooks, Zeppelin oder Livy erfolgen. Spark-Aufträge, die über spark-submit übermittelt werden, funktionieren derzeit mit Lake Formation nicht.

• Spark SQL kann aus Lake Formation-Tabellen nur lesen. Die Verwendung von Spark SQL zumSchreiben in Tabellen oder zum Erstellen neuer Tabellen in Lake Formation wird derzeit nicht unterstützt.

300

Page 308: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie beginnen

• Die Verwendung von Spark SQL für den Zugriff auf Lake Formation-Tabellen, die den Datentyp Hive Mapverwenden, wird derzeit nicht unterstützt.

• Derzeit ist keine zentrale Abmeldung für Amazon EMR Notebooks und Zeppelin verfügbar.• Wenn Sie Spark SQL für den Zugriff auf durch Lake Formation geschützte Daten verwenden,

enthaltenAWS CloudTrail-Einträge für den Datenzugriff nur den Namen der IAM-Rolle, die demAmazon EMR-Cluster zugeordnet ist. Sie enthalten nicht den verbundenen Benutzer, der das Notebookverwendet.

• Der Fallback von Spark auf HDFS zur Statistikerfassung wird in dieser Version mit Lake Formation nichtunterstützt. Die Eigenschaft spark.sql.statistics.fallBackToHdfs für diese Funktion iststandardmäßig deaktiviert. Diese Funktion funktioniert nicht, wenn diese Eigenschaft manuell aktiviertwurde.

• Abfragen über Tabellen, die Partitionen unter verschiedenen Tabellenpfaden in Amazon S3 enthalten,werden derzeit nicht unterstützt.

• Die bereichsübergreifende Vertrauensstellung für die Kerberos-Authentifizierung wird derzeit nichtunterstützt.

Bevor Sie beginnenBevor Sie einen Amazon EMR-Cluster mit AWS Lake Formation starten, führen Sie die folgenden Schritteaus:

• Richten Sie eine Vertrauensstellung zwischen Ihrem Identitätsanbieter und AWS ein, um den SAML2.0-basierten Verbund zu aktivieren und IAM-Rollen für Lake Formation zu erstellen. DetaillierteAnweisungen finden Sie unter Konfigurieren einer Vertrauensstellung zwischen Ihrem IdP und LakeFormation (p. 302).

• Erstellen Sie ein neues Amazon EC2-Instance-Profil. Detaillierte Anweisungen finden Sie unter Erstelleneines benutzerdefinierten EC2-Instance-Profils (p. 307).

• Konfigurieren Sie Amazon EMR-Sicherheitsfunktionen. Detaillierte Anweisungen finden Sie unterKonfigurieren der EMR-Sicherheit (p. 308).

Sie sollten auch die folgenden AWS Lake Formation-Aufgaben ausführen, die im -EntwicklerhandbuchAWSLake Formation behandelt werden:

• Lassen Sie die Datenfilterung für Data Lakes in Amazon EMR zu, indem Sie sich anmelden. Sie könnensich vor oder nach dem Start eines Amazon EMR-Clusters mit Lake Formation anmelden. Sie müssendie Datenfilterung jedoch explizit zulassen, bevor Amazon EMR auf Daten in Amazon S3-Standortenzugreifen kann, die bei Lake Formation registriert sind. Weitere Informationen und Anweisungen findenSie unter Zulassen von Datenfiltern für Amazon EMR im -EntwicklerhandbuchLake Formation.

• Erstellen Sie eine Servicerolle für Lake Formation, um Datenspeicherorte zu registrieren, auf die AmazonEMR zugreifen wird. Anweisungen finden Sie unter Anforderungen für Rollen zum Registrieren vonStandorten.

Warning

Sie müssen eine benutzerdefinierte Rolle und nicht die serviceverknüpfte RolleLake Formationverwenden, wenn Sie Datenspeicherorte registrieren. unterstützt die Verwendung seinerserviceverknüpften Rolle nicht, wenn Sie EMR integrieren.Lake Formation

• Richten Sie den Benutzerzugriff auf Ressourcen über Lake Formation-Richtlinien in der AWS LakeFormation-Konsole ein und steuern Sie ihn. Weitere Informationen finden Sie unter Lake Formation-Berechtigungen.

Themen

301

Page 309: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie beginnen

• Konfigurieren einer Vertrauensstellung zwischen Ihrem IdP und Lake Formation (p. 302)• Konfigurieren von Drittanbietern für SAML (p. 305)• Erstellen eines benutzerdefinierten EC2-Instance-Profils (p. 307)• Konfigurieren der EMR-Sicherheit (p. 308)

Konfigurieren einer Vertrauensstellung zwischen Ihrem IdP undLake FormationUm eine Vertrauensstellung zwischen dem Identitätsanbieter (IdP, Identity Provider) Ihrer Organisation undAWS herzustellen, müssen Sie die folgenden Schritte ausführen:

• Teilen Sie Ihrem IdP mit, dass es sich um AWS als Service-Anbieter handelt.• Teilen Sie AWS mit, dass Sie IdP verwenden, indem Sie einen IAM-Identitätsanbieter und eine IAM-Rolle

für den SAML-Zugriff in AWS IAM erstellen.

Dieser Prozess wird als Hinzufügen einer Vertrauensstellung für die vertrauende Seite bezeichnet. WeitereInformationen zum Vertrauensstellungen für die vertrauende Seite finden Sie unter Konfigurieren IhrerSAML 2.0-IdP mit Vertrauensstellungen für die vertrauende Seite und Hinzufügen von Ansprüchen im AWSIdentity and Access Management-Benutzerhandbuch.

So fügen Sie eine Vertrauensstellung zwischen Lake Formation und Ihrer IdP hinzu

1. Registrieren Sie AWS bei Ihrem IdP. Der Prozess der Registrierung von AWS bei Ihrer IdP hängtdavon ab, welche IdP Sie verwenden. Weitere Informationen dazu, wie Sie dies für Auth0, MicrosoftActive Directory Federation Services (AD FS) und Okta durchführen, finden Sie unter Konfigurierenvon Drittanbietern für SAML (p. 305).

2. Generieren Sie mithilfe Ihrer IdP eine Metadaten-XML-Datei, die Ihre IdP als IAM-Identitätsanbieter inAWS beschreiben kann. Ihre IdP-Metadaten-XML-Datei muss die folgenden Elemente enthalten:

• Ausstellername• Erstellungsdatum• Ablaufdatum• Schlüssel, die AWS verwendet, um Authentifizierungsantworten (Zusicherungen) von Ihrer

Organisation zu validieren.

Jeder IdP hat eine bestimmte Möglichkeit, diese Metadaten einfach zu exportieren. WeitereInformationen finden Sie in der Dokumentation zu Ihrem IdP.

Laden Sie die Metadaten-XML-Datei in einen Amazon S3-Bucket hoch. Wenn Sie einen Clusterstarten, der in Lake Formation integriert ist, geben Sie den Pfad zum S3-Bucket an.

3. Erstellen Sie einen SAML-Identitätsanbieter.

a. Melden Sie sich bei der AWS Management Console an und öffnen Sie die IAM-Konsole unterhttps://console.aws.amazon.com/iam/.

b. Wählen Sie im Navigationsbereich Identity Providers (Identitätsanbieter) und dann Create Provider(Anbieter auswählen) aus.

c. Wählen Sie für Provider Type (Anbietertyp) die Option Choose a provider type (Anbietertypauswählen) und dann SAMLaus.

d. Geben Sie einen Namen für den Identitätsanbieter ein.e. Klicken Sie für Metadata Document (Metadatendokument) auf Choose File (Datei auswählen),

geben Sie das SAML-Metadatendokument an, das Sie von Ihrem IdP im vorherigen Schrittheruntergeladen haben, und wählen Sie Open (Öffnen) aus.

302

Page 310: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie beginnen

f. Verifizieren Sie die angegebenen Informationen und klicken Sie auf Create (Erstellen).4. Erstellen Sie eine IAM-Rolle für Lake Formation.

a. Melden Sie sich bei der AWS Management Console an und öffnen Sie die IAM-Konsole unterhttps://console.aws.amazon.com/iam/.

b. Wählen Sie im Navigationsbereich Roles und Create Role aus.c. Wählen Sie den Rollentyp SAML 2.0 Federation aus.d. Wählen Sie für SAML Provider (SAML-Anbieter) den Anbieter für die Rolle.e. Wählen Sie Allow programmatic and AWS Management Console access (Programmgesteuerten

Zugriff und Zugriff durch die AWS-Managementkonsole zulassen) aus, um eine Rolle zu erstellen,die programmgesteuert und über die Konsole angenommen werden kann.

f. Überprüfen Sie Ihre SAML 2.0-Vertrauensinformationen und wählen Sie dann Next: (Weiter:) aus.Berechtigungen

g. Erstellen Sie die Berechtigungsrichtlinie für die Rolle basierend auf dem folgenden Beispiel.Weitere Informationen zu dieser Berechtigungsrichtlinie finden Sie unter IAM-Rollen für LakeFormation (p. 295).

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GetMetadataAccess", "glue:GetUnfiltered*", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" }}

Note

Erteilen Sie dieser Rolle keine Berechtigungen für den Zugriff auf Amazon S3.Buckets,die von AWS Glue verwaltet werden. Der verbundene Benutzer sollte über LakeFormation mit Spark SQL auf Daten zugreifen und nicht direkt über Amazon S3.

h. Wählen Sie Next: (Weiter:) aus. -Tags.i. Wählen Sie Next: (Weiter:) aus. -Prüfung.j. Für Role Name (Rollenname) geben Sie einen Rollennamen ein. Rollennamen müssen innerhalb

Ihres AWS-Kontos eindeutig sein.k. Prüfen Sie die Rolle und klicken Sie dann auf Create Role (Rolle erstellen).l. Klicken Sie auf die Registerkarte „Roles (Rollen)“ und suchen Sie nach dem Rollennamen, der im

vorangehenden Schritt erstellt wurde.m. Wählen Sie Trust relationships (Vertrauensstellungen) und dann Edit trust relationship

(Vertrauensstellung bearbeiten) aus.n. Überschreiben Sie das vorhandene Richtliniendokument mit der unten angegebenen IAM-Rolle

für die Lake Formation-Vertrauensrichtlinie. Weitere Informationen zu dieser Vertrauensrichtliniefinden Sie im Abschnitt IAM-Rollen für Lake Formation (p. 295).

303

Page 311: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie beginnen

Ersetzen account-id mit Ihrer AWS-Konto-ID. Ersetzen des IAM_identity_provider_namedurch den Namen Ihres IAM-Identitätsanbieters ersetzen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name" }, "Action": "sts:AssumeRoleWithSAML" } ]}

o. Wählen Sie Update Trust Relationship (Vertrauensstellung aktualisieren) aus.5. Erstellen Sie eine IAM-Rolle für andere AWS-Services. Weitere Informationen finden Sie im IAM-Rolle

für Nicht-Lake Formation-AWS-Services (p. 296).6. In der IdP Ihrer Organisation müssen Sie SAML-Zusicherungen konfigurieren, die die Benutzer in Ihrer

Organisation der IdP und der soeben erstellten IAM-Rolle für Lake Formation zuordnen. KonfigurierenSie dazu die drei Attributelemente, die in der folgenden Tabelle gezeigt werden.

• Ersetzen account-id mit Ihrer AWS-Konto-ID.• Ersetzen IAM_Role_For_Lake_Formation durch den Namen der IAM-Rolle für Lake Formation,

die Sie erstellt haben.• Ersetzen IAM_identity_provider_name durch den Namen des IAM-Identitätsanbieters, den Sie

in den vorherigen Schritten erstellt haben.• Ersetzen user_alias durch den Namen des Attributs, das den in Ihrer Organisation definierten

Benutzernamen enthält.

Attributelemente Wert

https://aws.amazon.com/SAML/Attributes/Role

arn: aws: iam::account-id:Rolle/IAM_Role_For_Lake_Formation,arn:aws: iam::account-id:saml-anbieter/IAM_identity_provider_name

https://aws.amazon.com/SAML/Attributes/RoleSessionName

user_alias

https://lakeformation.amazon.com/SAML/Attributes/Username

user_alias

Die genauen Schritte zum Ausführen dieser Zuweisung hängen davon ab, welche IdP Sie verwenden.Anweisungen zum Zuordnen Ihrer IdP finden Sie unter Konfigurieren von Drittanbietern fürSAML (p. 305).

Weitere Informationen finden Sie unter Konfigurieren von SAML-Zusicherungen für dieAuthentifizierungsantwort.

304

Page 312: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie beginnen

Note

Ein Benutzer kann Lake Formation-Berechtigungen für alle Gruppen erhalten, zu denen er gehört.Die Liste der Gruppen, zu denen ein Benutzer gehört, kann in einem benutzerdefinierten SAML-Attribut gesendet werden, das Lake Formation-spezifisch ist, wie im folgenden Beispiel gezeigt.

<AttributeStatement> <Attribute Name="https://lakeformation.amazon.com/SAML/Attributes/Groups"> <AttributeValue>group1</AttributeValue> <AttributeValue>group2</AttributeValue> </Attribute> </AttributeStatement>

Konfigurieren von Drittanbietern für SAMLDer SAML 2.0-basierte Verbund für Amazon EMR mit AWS Lake Formation wurde mit Auth0, MicrosoftActive Directory Federation Services (AD FS) und Okta getestet.

Dieses Thema enthält Informationen, die Ihnen helfen, die getesteten Identitätsanbieter für den AWSLake Formation-Verbund zu konfigurieren. Wenn Sie einen anderen Identitätsanbieter (IdP) verwendenmöchten, der noch nicht für AWS Lake Formation getestet wurde, finden Sie weitere Informationen auf derDokumentationswebsite zu Ihrem IdP.

Auth0Auf der Seite AWS Integration in Auth0 auf der Auth0-Dokumentationswebsite wird beschrieben, wieSie Single Sign-On (SSO) mit der AWS-Managementkonsole einrichten. Es enthält auch ein JavaScript-Beispiel.

Um den Verbundzugriff auf Lake Formation zu aktivieren, ändern Sie die folgenden Schritte in der Auth0-Dokumentation:

• Wenn Sie eine Anwendungs-Callback-URL bereitstellen, geben Sie eine temporäre URL an, wie imfolgenden Beispiel gezeigt. Aktualisieren public-dns durch den tatsächlichen DNS-Namen für IhrenMaster-Knoten nach dem Start Ihres Clusters.

https://public-dns:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client

• Fügen Sie beim Konfigurieren von SAML den folgenden SAML-Konfigurationscode in Settings(Einstellungen) ein.

{ "audience": "urn:amazon:webservices", "mappings": { "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" }, "createUpnClaim": false, "passthroughClaimsWithNoMapping": false, "mapUnknownClaimsAsIs": false, "mapIdentities": false, "nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "nameIdentifierProbes": [ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" ]}

• Wenn Sie die AWS-Rolle einem Benutzer zuweisen, erstellen Sie eine Regel mit dem folgenden Code.Ersetzen des IAM_Role_For_Lake_Formation durch den Namen der IAM-Rolle für Lake Formation,

305

Page 313: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie beginnen

die Sie erstellt haben. Ersetzen des IAM_identity_provider_name durch den Namen des IAM-Identitätsanbieters, den Sie für Auth0 erstellt haben.

function (user, context, callback) { user.awsRole = 'arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation,arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name'; // the username must not contain "@" - as it is not a valid Linux username user.userName = user.name.replace(/@.*/, ''); context.samlConfiguration.mappings = { 'https://aws.amazon.com/SAML/Attributes/Role': 'awsRole', 'https://aws.amazon.com/SAML/Attributes/RoleSessionName': 'userName', 'https://lakeformation.amazon.com/SAML/Attributes/Username': 'userName' }; callback(null, user, context);}

Microsoft Active Directory Federation Services (AD FS)

Das AWS-Blog zur AWS-Verbundauthentifizierung mit Active Directory Federation Services (AD FS) zeigt,wie AD FS konfiguriert und der SAML-Verbund mit AWS aktiviert wird.

Um den Verbundzugriff auf Lake Formation zu aktivieren, ändern Sie die folgenden Schritte im Blogbeitrag:

• Um die Vertrauensstellung für die vertrauende Seite einzurichten, geben Sie manuell Daten über dievertrauende Seite ein, anstatt Metadaten aus der angegebenen URL zu importieren. Wählen Sie dieOption Permit all users to access this relying party (Allen Benutzern Zugriff auf diese vertrauende Seitegewähren) aus. Geben Sie für die vertrauenswürdige Endpunkt-URL eine temporäre URL an, wie in demfolgenden Beispiel gezeigt. Aktualisieren public-dns durch den tatsächlichen DNS-Namen für IhrenMaster-Knoten nach dem Start Ihres Clusters.

https://public-dns:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client

• Passen Sie im Schritt Edit Claim Issuance Policy (Richtlinie für Antragsausgabe bearbeiten) die dreiRegeln NameId, RoleSessionName und Role entsprechend den Werten für die Attributelemente inKonfigurieren einer Vertrauensstellung zwischen Ihrem IdP und Lake Formation (p. 302) an.

Okta

Die Seite Einrichten einer SAML-Anwendung in Okta auf der Okta-Supportwebsite enthält Anweisungen zurKonfiguration von Okta durch Bereitstellung von Metadaten über die vertrauende Seite.

Um den Verbundzugriff auf Lake Formation zu aktivieren, ändern Sie die folgenden Schritte über die Okta-Supportwebsite:

• Verwenden Sie bei der Konfiguration von SAML für die Single Sign-On-URL, die temporäre URL, wie indem folgenden Beispiel gezeigt. Aktualisieren des public-dns durch den tatsächlichen DNS-Namen fürIhren Master-Knoten nach dem Start Ihres Clusters.

https://public-dns:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client

• Geben Sie im Feld Audience URI (SP Entity ID) (Zielgruppen-URI (SP-Entität-ID))urn:amazon:webservices ein.

306

Page 314: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie beginnen

• Fügen Sie im Abschnitt Attribute Statements (Attributanweisungen) drei Attributanweisungen wiein dem folgenden Verfahren gezeigt hinzu. Ersetzen des IAM_Role_For_Lake_Formationdurch den Namen der IAM-Rolle für Lake Formation, die Sie erstellt haben. Ersetzen desIAM_identity_provider_name durch den Namen des IAM-Identitätsanbieters, den Sie in denvorherigen Schritten erstellt haben. Ersetzen user_alias durch den Namen des Attributs, das den inIhrer Organisation definierten Benutzernamen enthält.1. Name: https://aws.amazon.com/SAML/Attributes/Role (Name: )

Wert: arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation,arn:aws:iam::account-id:saml-provider/IAM_identity_provider_name

2. Name: https://aws.amazon.com/SAML/Attributes/RoleSessionName (Name: )

Wert: user_alias

3. Name: https://lakeformation.amazon.com/SAML/Attributes/Username (Name: )

Wert: user_alias

Erstellen eines benutzerdefinierten EC2-Instance-ProfilsUm den EMR-Cluster-Zugriff auf Lake Formation zu orchestrieren, sollten Sie ein benutzerdefiniertesEC2-Instance-Profil (Servicerolle) definieren, das Sie beim Erstellen Ihres Clusters angeben. WeitereInformationen zum Erstellen einer benutzerdefinierten Rolle finden Sie unter Creating a Service Role forCluster EC2 Instances With Least-Privileged Permissions (p. 231).

Öffentliches SubnetzWenn sich Ihr Cluster in einem öffentlichen Subnetz befindet, verwenden Sie die folgende Richtlinie fürIhr benutzerdefiniertes EC2-Instance-Profil. Ersetzen My-S3-Bucket-for-IdP-Metadata mit dem S3-Bucket, der Ihre Identitätsanbieter-Metadaten (IdP) enthält. Ersetzen des MyEMRClusterLogs mit einemS3-Bucket zum Speichern von EMR-Protokollen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": { "arn:aws:s3:::My-S3-Bucket-for-IdP-Metadata/*", }, "Action": "s3:GetObject" }, { "Effect": "Allow", "Resource": { "arn:aws:s3:::My-S3-Bucket-for-IdP-Metadata" }, "Action": "s3:ListBucket" }, { "Effect": "Allow", "Resource": { "arn:aws:s3:::MyEMRClusterLogs/*" }, "Action": "s3:Put*" } ]}

307

Page 315: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie beginnen

Privates Subnetz

Wenn sich Ihr Cluster in einem privaten Subnetz befindet, verwenden Sie die folgende Richtlinie für Ihrbenutzerdefiniertes EC2-Instance-Profil. Ersetzen My-S3-Bucket-for-IdP-Metadata mit dem S3-Bucket, der Ihre Identitätsanbieter-Metadaten (IdP) enthält. Ersetzen des MyEMRClusterLogs mit demS3-Bucket zum Speichern von EMR-Protokollen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": { "arn:aws:s3:::My-S3-Bucket-for-IdP-Metadata/*", "arn:aws:s3:::packages.*.amazonaws.com/*", "arn:aws:s3:::repo.*.amazonaws.com/*", }, "Action": "s3:GetObject" }, { "Effect": "Allow", "Resource": { "arn:aws:s3:::My-S3-Bucket-for-IdP-Metadata" }, "Action": "s3:ListBucket" }, { "Effect": "Allow", "Resource": { "arn:aws:s3:::MyEMRClusterLogs/*" }, "Action": "s3:Put*" } ]}

Konfigurieren der EMR-Sicherheit

Erstellen einer Amazon EMR-Sicherheitskonfiguration für Lake Formation

Bevor Sie einen in Amazon EMR integrierten AWS Lake Formation-Cluster starten, müssen Sie eineSicherheitskonfiguration mit den IAM-Rollen und der Metadaten-XML-Datei des Identitätsanbieterserstellen, die Sie in Konfigurieren einer Vertrauensstellung zwischen Ihrem IdP und LakeFormation (p. 302) erstellt haben. Sie geben diese Sicherheitskonfiguration an, wenn Sie den Clusterstarten.

Console

So erstellen Sie eine Sicherheitskonfiguration, die die Option -AWS Lake FormationIntegrationangibt:

1. Wählen Sie in der Amazon EMR-Konsole Security configurations (Sicherheitskonfigurationen) unddann Create (Erstellen) aus.

2. Geben Sie in Name (Name) einen Namen für die Sicherheitskonfiguration ein. Sie verwendendiesen Namen, um die Sicherheitskonfiguration anzugeben, wenn Sie einen Cluster erstellen.

3. Wählen Sie unterAWS Lake Formation integration (AWS Lake Formation-Integration) die OptionEnable fine-grained access control managed byAWS Lake Formation (Differenzierte von AWSLake Formation verwaltete Zugriffssteuerung aktivieren) aus.

4. Wählen Sie die IAM-Rolle für AWS Lake Formation aus, die angewendet werden soll.

308

Page 316: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie beginnen

Note

Weitere Informationen finden Sie im IAM-Rollen für Lake Formation (p. 295).5. Wählen Sie Ihre IAM-Rolle für andere AWS-Services aus, die angewendet werden soll.6. Laden Sie Ihre Identitätsanbieter-Metadaten hoch, indem Sie den S3-Pfad angeben, an dem sich

die Metadaten befinden.Note

Weitere Informationen finden Sie im Konfigurieren einer Vertrauensstellung zwischenIhrem IdP und Lake Formation (p. 302).

7. Richten Sie weitere Sicherheitskonfigurationsoptionen ein wie erforderlich. Wählen Sie Create(Erstellen) aus. Sie müssen die Kerberos-Authentifizierung mit dem Cluster-spezifischen KDCaktivieren. Weitere Informationen finden Sie im Konfigurieren der EMR-Sicherheit (p. 308).

CLI

So erstellen Sie eine Sicherheitskonfiguration für die AWS Lake Formation-Integration:

1. Geben Sie den gesamten Pfad zu Ihrer IdP-Metadatendatei an, die in S3 hochgeladen wurde.2. Ersetzen account-id mit Ihrer AWS-Konto-ID.3. Geben Sie einen Wert für TicketLifetimeInHours an, um den Zeitraum zu anzugeben, für

den ein vom KDC ausgestelltes Kerberos-Ticket gültig ist.

{ "LakeFormationConfiguration": { "IdpMetadataS3Path": "s3://mybucket/myfolder/idpmetadata.xml", "EmrRoleForUsersARN": "arn:aws:iam::account-id:role/IAM_Role_For_AWS_Services", "LakeFormationRoleForSAMLPrincipalARN": "arn:aws:iam::account-id:role/IAM_Role_For_Lake_Formation" }, "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24 } } }}

4. Erstellen Sie eine Amazon EMR-Sicherheitskonfiguration mit dem folgenden Befehl. Ersetzensecurity-configuration durch einen Namen Ihrer Wahl. Sie wählen diese Konfigurationbeim Erstellen Ihres Clusters nach Namen aus.

aws emr create-security-configuration \--security-configuration file://./security-configuration.json \--name security-configuration

Konfigurieren zusätzlicher SicherheitsfunktionenUm Amazon EMR sicher in AWS Lake Formation zu integrieren, sollten Sie auch die folgenden EMR-Sicherheitsfunktionen konfigurieren:

• Aktivieren Sie die Kerberos-Authentifizierung über den Cluster-spezifischen KDC. Anweisungen findenSie unter Verwenden der Kerberos-Authentifizierung.

309

Page 317: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStarten eines Amazon EMR-Clusters mit Lake Formation

• Konfigurieren Sie Ihre Amazon EC2-Sicherheitsgruppe bzw. Ihre Amazon VPC Netzwerk-Zugriffskontrollliste (ACL, Access Control List) so, dass der Zugriff auf den Proxy-Agent (Port 8442) vonden Desktops Ihres Benutzers aus erlaubt ist. Weitere Informationen finden Sie unter Steuerung desNetzwerkverkehrs mit Sicherheitsgruppen.

• (Optional) Aktivieren Sie die Verschlüsselung von Daten während der Übertragung oder im Ruhezustand.Weitere Informationen finden Sie unter Verschlüsselungsoptionen im Management Guide für AmazonEMR.

• (Optional) Erstellen Sie ein benutzerdefiniertes Transport Layer Security (TLS) -Schlüsselpaar für denProxy-Agent. Weitere Informationen finden Sie im Anpassen Ihres Proxy-Agent-Zertifikats (p. 313).

Weitere Informationen finden Sie unter Sicherheit in Amazon EMR.

Starten eines Amazon EMR-Clusters mit LakeFormationDieser Abschnitt enthält Informationen zum Starten eines Amazon EMR-Clusters, der in Lake Formationintegriert ist. Außerdem erfahren Sie, wie Sie die Single Sign-On-URL in Ihrem Identitätsanbieter (IdP)aktualisieren, Notebooks mit Lake Formation verwenden, wie Sie Ihr Proxy-Agent-Zertifikat anpassen undwie Sie kontoübergreifenden Lake Formation-Zugriff für Ihren Cluster einrichten.

Themen• Starten eines Amazon EMR-Clusters mit Lake Formation (p. 310)• Aktualisieren der Callback- oder Single Sign-On-URL bei Ihrem Identitätsanbieter (p. 311)• Verwenden von Notebooks mitLake Formation (p. 312)• Anpassen Ihres Proxy-Agent-Zertifikats (p. 313)• Einrichten des kontoübergreifenden Zugriffs (p. 314)

Starten eines Amazon EMR-Clusters mit Lake FormationWenn Sie einen Amazon EMR-Cluster mit Lake Formation starten, geben Sie die folgenden Elemente an:

• Eine unterstützte Amazon EMR-Versionsbezeichnung. EMR mit Lake Formation funktioniert mit derAmazon EMR 5.x-Serie, beginnend mit 5.31.0. Die EMR-Integration mit Lake Formation ist für die 6.x-Serie noch nicht verfügbar.

• Die Sicherheitskonfiguration, die Sie für Lake Formation erstellt haben. Anweisungen zum Auswähleneiner Sicherheitskonfiguration beim Erstellen eines Clusters finden Sie unter Angabe einerSicherheitskonfiguration für einen Cluster (p. 205).

• Ihr angepasstes EC2-Instance-Profil. Detaillierte Anweisungen finden Sie unter Specify Custom IAMRoles When You Create a Cluster (p. 242).

• Ihre Kerberos-Einstellungen. Weitere Informationen finden Sie im Kerberos Settings forClusters (p. 279).

Wenn Sie die oben aufgeführten Elemente nicht vorbereitet haben, lesen Sie Bevor Siebeginnen (p. 301), um diese Voraussetzungen zu erfüllen.

Nachdem Sie Ihren Cluster gestartet haben, stellen Sie sicher, dass Sie die Callback- oder Single Sign-On-URL mit Ihrem Identitätsanbieter aktualisieren (p. 311), um Benutzer zurück zum Master-Knoten desClusters zu leiten.

310

Page 318: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStarten eines Amazon EMR-Clusters mit Lake Formation

Beispiel: Erstellen eines EMR-Clusters mit Lake Formation über die AWS CLI

Der folgende AWS-CLI-Beispielbefehl startet einen Amazon EMR-Cluster mit in AWS Lake Formationintegrierter Zeppelin-Integration. Sie enthält wie für die EMR-Integration mit --kerberos-attributeserforderlich bestimmte Werte für --security-configuration, InstanceProfile und LakeFormation.

aws emr create-cluster --region us-east-1 \--release-label emr-5.31.0 \--use-default-roles \--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.xlarge \InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.xlarge \--applications Name=Zeppelin Name=Livy \--kerberos-attributes Realm=EC2.INTERNAL,KdcAdminPassword=MyClusterKDCAdminPassword \--ec2-attributes KeyName=EC2_KEY_PAIR,SubnetId=subnet-00xxxxxxxxxxxxx11,InstanceProfile=MyCustomEC2InstanceProfile \--security-configuration security-configuration \--name cluster-name

Aktualisieren der Callback- oder Single Sign-On-URL bei IhremIdentitätsanbieter1. Suchen Sie unter Verwendung der Konsole oder der CLI die öffentliche IP-Adresse des Masterknotens

und die Master-Instance-ID in Ihrem Cluster.2. Richten Sie in Ihrem Identitätsanbieterkonto (IdP) eine Rückruf-URL ein:

• Wenn Sie AD FS als IdP verwenden, führen Sie die folgenden Schritte aus:1. Wechseln Sie in der AD FS-Managementkonsole zu Relying Party Trusts (Vertrauensstellungen

der vertrauenden Seite).2. Klicken Sie mit der rechten Maustaste auf den Anzeigenamen der Vertrauensstellung der

vertrauenden Seite und wählen Sie Properties (Eigenschaften) aus.3. Wählen Sie im Fenster Properties (Eigenschaften) die Registerkarte Endpoints (Endpunkte) aus.4. Wählen Sie die temporäre URL aus, die Sie zuvor bereitgestellt haben, und wählen Sie dann Edit

(Bearbeiten).5. Aktualisieren Sie im Fenster Edit Endpoint (Endpunkt bearbeiten die vertrauten URL mit dem

korrekten DNS-Namen für Ihren Masterknoten.6. Geben Sie im Fenster Add an Endpoint (Endpunkt hinzufügen) das Feld Trusted URL

(Vertrauenswürdige URL) den öffentlichen DNS-Namen Ihres Masterknotens ein. Ein Beispiel:

https://ec2-11-111-11-111.compute-1.amazonaws.com:8442/gateway/knoxsso/api/v1/websso?pac4jCallback=true&client_name=SAML2Client

7. Klicken Sie auf OK.• Wenn Sie Auth0 als Ihre IdP verwenden, führen Sie die folgenden Schritte aus:

1. Rufen Sie https://auth0.com/ auf und melden Sie sich an.2. Wählen Sie im linken Ausschnitt Applications (Anwendungen)aus.3. Wählen Sie die zuvor erstellte Anwendung aus.4. Aktualisieren Sie auf der Registerkarte Settings (Einstellungen) die Option Allowed Callback URLs

(Zulässiger Rückruf) mit dem öffentlichen DNS-Namen Ihres Master-Knotens.• Wenn Sie Okta als Ihre IdP verwenden, führen Sie die folgenden Schritte aus:

1. Rufen Sie https://developer.okta.com/ auf und melden Sie sich an.311

Page 319: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStarten eines Amazon EMR-Clusters mit Lake Formation

2. Wählen Sie in der oberen rechten Ecke Admin, und dann die Registerkarte Applications(Anwendungen) aus.

3. Wählen Sie den Namen Ihrer Anwendung aus.4. Wählen Sie auf der Registerkarte General (Allgemein) unter dem Namen Ihrer Anwendung SAML

Settings (SAML-Einstellungen) und dann Edit (Bearbeiten) aus.5. Aktualisieren Sie auf der Registerkarte Configure SAML (SAML konfigurieren) die Option

Single-sign on URL (URL für die einmalige Anmeldung) mit dem öffentlichen DNS-Namen IhresMasterknotens.

Verwenden von Notebooks mitLake FormationNachdem Sie sich für die Datenfilterung auf Amazon EMR entschieden und einen in Lake Formationintegrierten Cluster erstellt haben, können Sie sowohl Apache Zeppelin als auch EMR Notebooksverwenden, um auf Daten zuzugreifen.

Für den Zugriff auf beide Notebook-Anwendungen müssen Sie zunächst sicherstellen, dass die EC2-Sicherheitsgruppe bzw. die VPC-Netzwerk-Zugriffskontrollliste (ACL, Access Control List) Ihres Clusters sokonfiguriert ist, dass der Zugriff auf den Proxy-Agent (Port 8442) von Ihrem Desktop aus erlaubt ist.

Note

Der Proxy-Agent auf dem EMR-Cluster verwendet standardmäßig ein selbstsigniertes TransportLayer Security (TLS)-Zertifikat, und Ihr Browser fordert Sie auf, das Zertifikat zu akzeptieren,bevor Sie fortfahren. Wenn Sie ein benutzerdefiniertes Zertifikat für den Proxy-Agent verwendenmöchten, lesen Sie den Abschnitt „Anpassen des Proxy-Agent-Zertifikats“.

Apache ZeppelinUm auf Apache Zeppelin zuzugreifen, verwenden Sie die EMR-Konsole, um die Master publicDNS aus der Registerkarte Summary (Übersicht) des Clusters. Navigieren Sie in Ihrem Browser zuhttps://MasterPublicDNS:8442/gateway/default/zeppelin/. Stellen Sie sicher, dass die URL denabschließenden Schrägstrich am Ende enthält.

Sobald das Zertifikat des Proxy-Agent akzeptiert ist, leitet Sie der Browser zur Authentifizierung an IhrenIdentitätsanbieter weiter. Nach der Authentifizierung werden Sie wieder an Zeppelin zurückgeleitet.

Erstellen Ihres ersten Zeppelin-Notebooks

Sie erstellen zunächst ein neues Notebook, indem Sie Notebook und dann Create new notebook (NeuesNotebook erstellen) auswählen. Geben Sie dem erstellten Notebook einen Namen und verwenden Sie denStandard-Livy-Interpreter.

Verwenden Sie den folgenden Spark SQL-Befehl, um eine Liste der Lake Formation-Datenbankenanzuzeigen.

spark.sql("show databases").show()

Verwenden Sie den folgenden Spark SQL-Befehl, um eine bestimmte Lake Formation-Tabelle abzufragen.Ersetzen database.table mit tatsächlichen Datenbanken und Tabellen in Lake Formation:

spark.sql("SELECT * FROM database.table limit 10").show()

EMR-NotebooksEMR-Notebooks können mithilfe der Amazon EMR-Konsole erstellt und mit einem vorhandenen EMR-Cluster verwendet werden, der in Lake Formation integriert ist.

Erstellen eines EMR-Notebooks

312

Page 320: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStarten eines Amazon EMR-Clusters mit Lake Formation

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/.2. Wählen Sie Notebooks, Create notebook (Notebook erstellen).3. Geben Sie einen Notebook name (Notebook-Namen) und optional eine Notebook description (Notebook-

Beschreibung) ein.4. Wählen Sie Choose an existing cluster (Vorhandenen Cluster auswählen), und dann Choose (Wählen).5. Wählen Sie einen vorhandenen EMR-Cluster aus, der in Lake Formation integriert ist.6. Wählen Sie Create notebook (Notebook erstellen) aus, um das Notebook zu erstellen.

Sobald das Notebook erstellt wurde, wählen Sie das Notebook aus und klicken dann auf Open (Öffnen).Sie werden zu dem Proxy-Agent auf dem Amazon EMR-Cluster weitergeleitet. Nachdem Sie das Zertifikatdes Proxy-Agent akzeptiert haben, leitet Ihr Browser Sie zur Authentifizierung an Ihren Identitätsanbieterweiter. Nach der Authentifizierung werden Sie an das EMR-Notebook weitergeleitet.

Weitere Informationen finden Sie unter Verwenden von EMR-Notebooks im Management Guide fürAmazon EMR.

Anpassen Ihres Proxy-Agent-ZertifikatsDer Proxy-Agent verwendet standardmäßig ein selbstsigniertes Transport Layer Security (TLS)-Zertifikat.Sie müssen das Standardzertifikat durch ein benutzerdefiniertes Zertifikat für den Proxy-Agent ersetzen.Dazu benötigen Sie zunächst ein Zertifikat, eine Zertifikatkette und einen privaten Schlüssel von IhrerZertifizierungsstelle. Für diese Objekte wird eine PKCS12-Datei verwendet, um das Schlüsselmaterial zuschützen, sodass es in den Schlüsselspeicher des Proxy-Agent importiert werden kann. Der Proxy-Agentbasiert auf Apache Knox.

Führen Sie die folgenden Schritte aus, um das Standardzertifikat durch Ihr benutzerdefiniertesZertifikat zu ersetzen. Ersetzen MasterPublicDNS mit dem Wert, der für Master publicDNS auf der Registerkarte Summary im Bereich cluster details angezeigt wird. Ein Beispiel:ec2-11-222-33-44.compute-1.amazonaws.com.

1. Um aus Ihrem Zertifikat, Ihrer Zertifikatkette und Ihrem privaten Schlüssel eine PKCS12-Datei zuerstellen, führen Sie den folgenden Befehl auf einem Host mit den Zertifikatdateien aus, auf demopenssl installiert ist.

openssl pkcs12 -export -out proxy_agent_certificate.pfx -inkey private.key -in certificate.cer -certfile certchain.cer

2. Kopieren Sie die Datei proxy_agent_certificate.pfx in das Verzeichnis /home/hadoop aufdem Masterknoten Ihres Clusters.

scp -i EC2KeyPair.pem proxy_agent_certificate.pfx hadoop@MasterPublicDNS:/home/hadoop

3. Stellen Sie eine Verbindung zu dem Masterknoten Ihres Clusters her.

ssh -i EC2KeyPair.pem hadoop@MasterPublicDNS

4. Ermitteln Sie mit dem folgenden Befehl Ihren Cluster-spezifischen Masterschlüssel.

less /etc/knox/conf/gateway-site.xml

Suchen Sie nach dem gateway.master.secret -Eigenschaft und kopieren Sie den Inhalt desvalue-Tags, da Sie ihn für zukünftige Schritte benötigen.

5. Erstellen Sie mithilfe der folgenden Befehle eine Sicherungskopie der vorhandenen Proxy-Agent-Schlüsselspeicher.

313

Page 321: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStarten eines Amazon EMR-Clusters mit Lake Formation

sudo -scd /mnt/var/lib/knox/data/security/keystoresmkdir backupsmv gateway.jks __gateway-credentials.jceks backups/

6. Importieren Sie Ihre benutzerdefinierten Zertifikate mit den folgenden Befehlen in einen neuenSchlüsselspeicher.

sudo -scd /mnt/var/lib/knox/data/security/keystoreskeytool -importkeystore \-srckeystore /home/hadoop/proxy_agent_certificate.pfx \-srcstoretype pkcs12 -destkeystore gateway.jks \-deststoretype jks \-srcalias 1 \-destalias gateway-identity

Wenn Sie mit Enter destination keystore password zur Eingabe des Passworts desZielschlüsselspeichers aufgefordert werden, verwenden Sie das Knox-Master-Secret aus der Dateigateway-site.xml.

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass die neu erstellte Datei gateway.jksdem Benutzer knox gehört.

chown knox:knox gateway.jks

Wenn Ihr privater Schlüssel durch ein Passwort geschützt ist, stellen Sie sicher, dass Knox diesesPasswort kennt.

sudo -u knox bashcd /usr/lib/knoxbin/knoxcli.sh create-cert create-alias gateway-identity-passphrase

Geben Sie das Passwort zum Schutz Ihres privaten Schlüssels ein, wenn Sie dazu aufgefordertwerden.

7. Starten Sie Knox mit den folgenden Befehlen neu.

sudo -u knox bashcd /usr/lib/knoxbin/gateway.sh stop

Knox sollte automatisch neu gestartet werden, und Sie können den Status von Knox überprüfen, indemSie die Datei /var/log/knox/gateway.log anzeigen.

8. Um sicherzustellen, dass das neue Zertifikat vom Proxy-Agent verwendet wird, navigieren Sie zuApache Zeppelin https://MasterPublicDNS:8442/gateway/default/zeppelin/. Um sicherzustellen,dass es sich um Ihr benutzerdefiniertes Zertifikat handelt, können Sie das Zertifikat in Ihrem Browserüberprüfen.

Einrichten des kontoübergreifenden ZugriffsNachdem Sie einen Amazon EMR-Cluster mit Lake Formation-Integration gestartet haben, können Siekontoübergreifenden Zugriff einrichten. Mit dem kontoübergreifenden AWS Lake Formation-Zugriff könnenBenutzer Tabellen über mehrere AWS-Konten hinweg abfragen und verknüpfen.

314

Page 322: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStarten eines Amazon EMR-Clusters mit Lake Formation

Wenn Sie den kontoübergreifenden Zugriff aktivieren, haben Benutzer eines Kontos detaillierten Zugriffauf die Glue-Data Catalog-Metadaten und die zugrunde liegenden Daten, die zu einem anderen Kontogehören. Weitere Informationen zum kontoübergreifenden Zugriff finden Sie im Entwicklerhandbuch fürAWS Lake Formation.

OverviewUm kontoübergreifenden Zugriff einzurichten, führen Sie Aufgaben aus, während Sie bei den folgendenAWS-Konten angemeldet sind:

• Konto A – Ein AWS-Konto mit den Lake Formation-Daten, die Sie mit einem externen Konto teilenmöchten.

• -Konto B – Das externe AWS-Konto, auf das Sie Lake Formation Zugriff gewähren möchten. Dies sollteein Konto sein, in dem Sie einen EMR-Cluster mit Lake Formation gestartet haben.

Zunächst richten Sie eine Datenressource in Konto A ein und gewähren Zugriff auf die Ressource für KontoB. Anschließend melden Sie sich bei Konto B an, akzeptieren die Einladung von Konto A und erstelleneinen Ressourcenlink, um der Ressource einen neuen Namen in Konto B zu geben. Abschließend fügenSie Berechtigungen für Ihre Lake Formation IAM-Rolle von Konto B hinzu, sodass Benutzer, die bei IhremCluster angemeldet sind, Abfragen für die verknüpfte Ressource in A durchführen können.

PrerequisitesUm Ihre Data Catalog für den kontoübergreifenden Zugriff vorzubereiten, führen Sie die Schritteunter Kontenübergreifende Zugriffsvoraussetzungen aus, bevor Sie beginnen. Sie sollten auchBewährte Methoden und Einschränkungen für mehrere Konten lesen, um sicherzustellen, dass diekontoübergreifende Einrichtung Ihre Anforderungen an den Datenzugriff erfüllt.

Einrichten des kontoübergreifenden Zugriffs

So gewähren Sie von Konto A auf Konto B Zugriff auf Ressourcen

1. Melden Sie sich mit AWS Management ConsoleKonto A bei der an.2. Registrieren Sie einen Speicherort in Amazon S3 mit einer benutzerdefinierten Rolle für Ihr Data Lake.

Informationen zum Erstellen einer benutzerdefinierten Servicerolle finden Sie unter Erstellen einerRolle für einen AWS-Service und Anforderungen für Rollen, die zum Registrieren von Standortenverwendet werden. Anweisungen zum Registrieren eines Speicherorts finden Sie unter Registriereneines Amazon S3-Speicherorts.

Warning

Sie müssen eine benutzerdefinierte Rolle und nicht die serviceverknüpfte Rolle LakeFormation verwenden, wenn Sie diesen Datenspeicherort registrieren. Lake Formationunterstützt die Verwendung seiner serviceverknüpften Rolle nicht, wenn Sie EMR integrieren.

3. Erstellen Sie eine Datenbank mit dem soeben registrierten Datenspeicherort. Weitere Informationenfinden Sie unter Erstellen einer Datenbank.

4. Erstellen Sie eine Tabelle in der Datenbank, die Sie im vorherigen Schritt eingerichtet haben. WeitereInformationen finden Sie unter Erstellen von Tabellen.

5. Erteilen Sie in der AWS Lake Formation-Konsole Berechtigungen für Konto B. Geben Sie diefolgenden Werte an:

• Die Datenbank, die Sie in Schritt 3 erstellt haben.• Die Tabelle, die Sie in Schritt 4 erstellt haben.• Die Konto-ID des externen AWS-Kontos, dem Sie Zugriff gewähren möchten (Konto B).• Wählen Sie Select (Auswählen) für die Berechtigungen Table (Tabelle) und Grantable (Gewährbar)

aus. Wenn Sie einem externen Konto Berechtigungen erteilen, werden die Berechtigungen nicht auf

315

Page 323: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSteuerung des Netzwerkverkehrs mit Sicherheitsgruppen

die Prinzipale in diesem externen Konto erweitert. Sie müssen Berechtigungen erteilen, damit KontoB im Gegenzug den Zugriff auf seine IAM-Rolle für Lake Formation-Prinzipal gewähren kann.

So schließen Sie die Einrichtung des kontoübergreifenden Zugriffs in Konto B ab

1. Nachdem Sie die vorherigen Schritte in Konto A durchgeführt haben, melden Sie sich bei der AWSManagement Console mit Konto B an.

2. Akzeptieren Sie in der AWS Resource Access Manager-Konsole die Einladung für freigegebeneRessourcen von Konto A. Anweisungen finden Sie unter Zugriff auf für Sie freigegebene Ressourcenim -BenutzerhandbuchAWS Resource Access Manager.

3. Greifen Sie als AWS Lake FormationData Lake Administrator auf die -Konsole zu.4. Erstellen Sie einen Datenbank-Ressourcenlink für die von Konto A freigegebene Remote-Datenbank.

Durch das Erstellen eines Ressourcenlinks können Sie der Remote-Datenbank in Ihrer Data Catalogeinen anderen Namen zuweisen. Weitere Informationen finden Sie unter Erstellen eines Ressourcen-Links zu einer freigegebenen Datenkatalogdatenbank.

5. Wählen Sie auf der Seite Databases (Datenbanken) den zuvor erstellten Link zur Datenbankressourceaus.

6. Wählen Sie im Dropdown-Menü Actions unter Permissions die Option Grant aus.7. Wählen Sie für IAM users and roles (IAM-Benutzer und -Rollen) Ihre IAM-Rolle für Lake Formation

aus und stellen Sie sicher, dass Describe (Beschreiben) unter Resource Link Permissions(Berechtigungen für Ressourcenlinks) aktiviert ist. Weitere Informationen finden Sie unter Gewährenvon Berechtigungen für Ressourcenlinks.

8. Wählen Sie Grant (Erteilen) aus, um die Erteilung von Berechtigungen für Ihren Ressourcen-Linkabzuschließen.

9. Wählen Sie im Dropdown-Menü Actions unter Permissions die Option Grant on target aus.Dieser Schritt ist erforderlich, da das Erteilen von Berechtigungen für einen Ressourcenlink keineBerechtigungen für eine (verknüpfte) Zieldatenbank oder -tabelle erteilt. Sie müssen Berechtigungenfür ein Ziel separat erteilen. Weitere Informationen finden Sie unter Gewähren von Berechtigungen fürRessourcenlinks.

10. Wählen Sie unter IAM users and roles (IAM-Benutzer und -Rollen) Ihre IAM-Rolle für Lake Formationaus.

11. Wählen Sie die entsprechenden Zielberechtigungen für Ihre IAM-Rolle für Lake Formation und dannGrant (Erteilen) aus.

Sie sollten nun von Ihrem EMR-Cluster in Konto B aus auf eine Ressource in Konto A zugreifen können.

Angenommen, Sie haben einen Ressourcenlink namens resource-db-link erstellt und Zugriff auf alleSpalten einer Tabelle, t1, in der Datenbank resource-db-link gewährt. Sie können jetzt die erste Spalte,col1, mit der folgenden Spark SQL-Abfrage abrufen:

select col1 from resource-db-link.t1

Informationen zur Fehlerbehebung des kontoübergreifenden Zugriffs finden Sie unter Fehlerbehebung beiLake Formation im -EntwicklerhandbuchAWS Lake Formation.

Steuerung des Netzwerkverkehrs mitSicherheitsgruppen

Sicherheitsgruppen dienen als virtuelle Firewalls für die EC2-Instances in Ihrem Cluster, um den ein- undausgehenden Datenverkehr zu kontrollieren. Für jede Sicherheitsgruppe gibt es einen Satz von Regeln

316

Page 324: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSteuerung des Netzwerkverkehrs mit Sicherheitsgruppen

zur Kontrolle des eingehenden Datenverkehrs und einen Satz von Regeln zur Kontrolle des ausgehendenDatenverkehrs. Weitere Informationen finden Sie unter Amazon EC2-Sicherheitsgruppen für Linux-Instances im Amazon EC2-Benutzerhandbuch für Linux-Instances.

Sie verwenden zwei Klassen von Sicherheitsgruppen mit Amazon EMR: Amazon EMR-verwalteteSicherheitsgruppen und zusätzliche Sicherheitsgruppen.

Mit jedem Cluster sind verwaltete Sicherheitsgruppen verknüpft. Sie können die standardmäßigenverwalteten Sicherheitsgruppen oder benutzerdefinierte verwaltete Sicherheitsgruppen angeben. In jedemFall fügt Amazon EMR den verwalteten Sicherheitsgruppen automatisch Regeln hinzu, die ein Cluster fürdie Kommunikation zwischen Cluster-Instances und AWS-Services benötigt.

Zusätzliche Sicherheitsgruppen sind optional. Sie können sie zusätzlich zu den verwaltetenSicherheitsgruppen angeben, um den Zugriff auf Cluster-Instances anzupassen. ZusätzlicheSicherheitsgruppen enthalten nur von Ihnen definierte Regeln. Amazon EMR ändert diese nicht.

Die von Amazon EMR in verwalteten Sicherheitsgruppen erstellten Regeln gestatten dem Cluster nur dieKommunikation zwischen internen Komponenten. Um Benutzern und Anwendungen den Zugriff auf einenCluster von außerhalb des Clusters zu ermöglichen, können Sie Regeln in verwalteten Sicherheitsgruppenbearbeiten, zusätzliche Sicherheitsgruppen mit zusätzlichen Regeln erstellen oder beides ausführen.

Important

Das Bearbeiten von Regeln in verwalteten Sicherheitsgruppen kann unbeabsichtigteFolgen haben. Möglicherweise blockieren Sie versehentlich den Datenverkehr, der für dieordnungsgemäße Funktion der Cluster erforderlich ist, und verursachen Fehler, da die Knotennicht erreichbar sind. Planen und testen Sie Sicherheitsgruppenkonfigurationen sorgfältig, bevorSie diese implementieren.

Warning

Die EMR-verwaltete Standardsicherheitsgruppe für die Master-Instance in öffentlichen Subnetzen,ElasticMapReduce-master, ist mit einer Regel konfiguriert, die eingehenden Datenverkehraus allen Quellen über Port 22 (IPv4 0.0.0.0/0) zulässt. Auf diese Weise werden anfängliche SSH-Client-Verbindungen mit dem Master-Knoten vereinfacht. Wir empfehlen dringend, dass Sie dieseRegel auf eingehenden Datenverkehr aus vertrauenswürdigen Quellen beschränken oder einebenutzerdefinierte Sicherheitsgruppe angeben, die den Zugriff beschränkt. Weitere Informationenfinden Sie im Arbeiten mit Amazon EMR-verwalteten Sicherheitsgruppen (p. 318).

Sie können Sicherheitsgruppen nur während der Erstellung eines Clusters angeben. Sie können keineSicherheitsgruppen zu Clustern oder Cluster-Instances hinzufügen, während ein Cluster ausgeführt wird.Sie können jedoch Regeln in vorhandenen Sicherheitsgruppen bearbeiten, hinzufügen und entfernen. DieRegeln treten in Kraft, sobald Sie sie speichern.

Sicherheitsgruppen sind standardmäßig einschränkend. Wenn keine Regel hinzugefügt wird, dieDatenverkehr zulässt, wird der Datenverkehr zurückgewiesen. Wenn es mehr als eine Regel für denselbenDatenverkehr und dieselbe Quelle gibt, wird die toleranteste Regel angewendet. Wenn es beispielsweiseeine Regel gibt, die SSH-Verbindungen von der IP-Adresse 192.0.2.12/32 zulässt, und eine weitereRegel, die dem gesamten TCP-Datenverkehr Zugriff aus dem Bereich 192.0.2.0/24 gewährt, hat dieRegel Vorrang, die dem gesamten TCP-Datenverkehr aus dem Bereich Zugriff gewährt, der 192.0.2.12einschließt. In diesem Fall könnte der Client unter 192.0.2.12 mehr Zugriff erhalten als beabsichtigt.

Seien Sie vorsichtig, wenn Sie Regeln für Sicherheitsgruppen bearbeiten. Achten Sie darauf, Regelnhinzufügen, die nur Datenverkehr aus vertrauenswürdigen Clients und nur für die erforderlichen Protokolleund Ports zulassen. Wir empfehlen keine Regeln für eingehenden Datenverkehr, die den öffentlichenZugriff zulassen, d. h. Datenverkehr von Quellen, die als IPv4 0.0.0.0/0 oder IPv6 ::/0 angegeben sind.Sie können Amazon EMR Block Public Access in jeder Region konfigurieren, die Sie verwenden, um dieCluster-Erstellung zu verhindern, wenn eine Regel den öffentlichen Zugriff auf beliebige Ports zulässt,die Sie nicht einer Liste von Ausnahmen hinzufügen. Port 22 für SSH befindet sich standardmäßig in

317

Page 325: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Amazon EMR-verwalteten Sicherheitsgruppen

der Liste der Ausnahmen. Für AWS-Konten, die nach Juli 2019 erstellt wurden, ist Amazon EMR BlockPublic Access standardmäßig aktiviert. Für AWS-Konten, die vor Juli 2019 einen Cluster erstellt haben,ist Amazon EMR Block Public Access standardmäßig deaktiviert. Weitere Informationen finden Sie imVerwenden von Amazon EMR Block Public Access (p. 328).

Themen• Arbeiten mit Amazon EMR-verwalteten Sicherheitsgruppen (p. 318)• Arbeiten mit zusätzlichen Sicherheitsgruppen (p. 324)• Angeben von Amazon EMR-verwalteten und zusätzlichen Sicherheitsgruppen (p. 324)• Angeben von EC2-Sicherheitsgruppen für EMR Notebooks (p. 326)• Verwenden von Amazon EMR Block Public Access (p. 328)

Arbeiten mit Amazon EMR-verwaltetenSicherheitsgruppenMit der Master-Instance und den Core- und Aufgaben-Instances in einem Cluster sind verschiedeneverwaltete Sicherheitsgruppen verknüpft. Sie benötigen eine zusätzliche verwaltete Sicherheitsgruppe fürden Servicezugriff, wenn Sie einen Cluster in einem privaten Subnetz erstellen. Weitere Informationenzur Rolle von verwalteten Sicherheitsgruppen in Bezug auf Ihre Netzwerkkonfiguration finden Sie unterAmazon VPC-Optionen (p. 145).

Wenn Sie verwaltete Sicherheitsgruppen für einen Cluster angeben, müssen Sie für alle verwaltetenSicherheitsgruppen denselben Typ von Sicherheitsgruppe (Standard oder benutzerdefiniert) verwenden.Sie können beispielsweise nicht eine benutzerdefinierte Sicherheitsgruppe für die Master-Instance angebenund dann keine benutzerdefinierte Sicherheitsgruppe für die Core- und Aufgaben-Instances angeben.

Wenn Sie standardmäßige verwaltete Sicherheitsgruppen verwenden, müssen Sie diese beim Erstelleneines Clusters nicht angeben. Amazon EMR verwendet automatisch die standardmäßigen verwaltetenSicherheitsgruppen. Wenn die standardmäßigen verwalteten Sicherheitsgruppen in der VPC des Clustersnoch nicht vorhanden sind, werden sie von Amazon EMR erstellt. Amazon EMR erstellt sie auch, wenn Siesie explizit angeben und sie noch nicht vorhanden sind.

Sie können die Regeln in verwalteten Sicherheitsgruppen nach der Erstellung der Cluster bearbeiten. WennSie einen neuen Cluster erstellen, überprüft Amazon EMR die Regeln in den von Ihnen angegebenenverwalteten Sicherheitsgruppen und erstellt dann alle fehlenden eingehenden Regeln, die der neue Clusterzusätzlich zu den Regeln benötigt, die möglicherweise bereits hinzugefügt wurden. Sofern nicht andersdefiniert, werden alle Regeln, die für standardmäßig EMR-verwaltete Sicherheitsgruppen gelten, auch denvon Ihnen angegebenen benutzerdefinierten EMR-verwalteten Sicherheitsgruppen hinzugefügt.

Die standardmäßigen verwalteten Sicherheitsgruppen sind:

• ElasticMapReduce-Master

Informationen zu den Regeln in dieser Sicherheitsgruppe finden Sie unter Amazon EMR-verwalteteSicherheitsgruppe für die Master-Instance (öffentliche Subnetze) (p. 319).

• ElasticMapReduce-Slave

Informationen zu den Regeln in dieser Sicherheitsgruppe finden Sie unter Amazon EMR-verwalteteSicherheitsgruppe für Core- und Aufgaben-Instances (öffentliche Subnetze) (p. 321).

• ElasticMapReduce-Master-Privat

Informationen zu den Regeln in dieser Sicherheitsgruppe finden Sie unter Amazon EMR-verwalteteSicherheitsgruppe für die Master-Instance (private Subnetze) (p. 322).

• ElasticMapReduce-Slave-Privat

318

Page 326: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Amazon EMR-verwalteten Sicherheitsgruppen

Informationen zu den Regeln in dieser Sicherheitsgruppe finden Sie unter Amazon EMR-verwalteteSicherheitsgruppe für Core- und Aufgaben-Instances (private Subnetze) (p. 322).

• ElasticMapReduce-Servicezugriff

Informationen zu den Regeln in dieser Sicherheitsgruppe finden Sie unter Amazon EMR-verwalteteSicherheitsgruppe für den Servicezugriff (private Subnetze) (p. 323).

Amazon EMR-verwaltete Sicherheitsgruppe für die Master-Instance (öffentliche Subnetze)Die standardmäßige verwaltete Sicherheitsgruppe für die Master-Instance in öffentlichen Subnetzenhat den Group Name von ElasticMapReduce-master. Sie hat die folgenden Regeln. Wenn Sie einebenutzerdefinierte verwaltete Sicherheitsgruppe angeben, fügt Amazon EMR dieselben Regeln hinzu, mitAusnahme der SSH-Regel.

Typ Protocol(Protokoll)

Port-Bereich

Source Details

Regeln für eingehenden Datenverkehr

Alle ICMP-IPv4

Alle N/A

Alle TCP TCP Alle

Alle UDP UDP Alle

Die Gruppen-IDder verwaltetenSicherheitsgruppefür die Master-Instance. Mit anderenWorten, dieselbeSicherheitsgruppe,in der die Regelangezeigt wird.

Diese reflexiven Regeln ermöglicheneingehenden Datenverkehr aus allenmit der angegebenen Sicherheitsgruppeverknüpften Instances. Die Verwendung derstandardmäßigen verwalteten SicherheitsgruppeElasticMapReduce-master fürmehrere Cluster ermöglicht den Core- undAufgabenknoten dieser Cluster die gegenseitigeKommunikation über ICMP oder einen TCP-oder UDP-Port. Sie geben benutzerdefinierteverwaltete Sicherheitsgruppen an, um denCluster-übergreifenden Zugriff einzuschränken.

Alle ICMP-IPV4

Alle N/A

Alle TCP TCP Alle

Alle UDP UDP Alle

Die Gruppen-IDder verwaltetenSicherheitsgruppe,die für Core- undAufgabenknotenangegeben wurde.

Diese Regeln lassen jeden eingehenden ICMP-Datenverkehr und jeden Datenverkehr überTCP- oder UDP-Ports aus allen Core- undAufgaben-Instances zu, die mit der angegebenenSicherheitsgruppe verknüpft sind, auch wenn sichdie Instances in verschiedenen Clustern befinden.

BenutzerdefiniertTCP 8443 VerschiedeneAmazon-IP-Adressbereiche

Diese Regeln ermöglichen dem Cluster-Managerdie Kommunikation mit dem Master-Knoten.

SSH TCP 22 0.0.0.0/0 Erlauben Sie eingehende SSH-Verbindungen ausbeliebigen Quellen.

Warning

Wir empfehlen dringend, dass Sie dieseRegel für eingehenden Datenverkehrauf vertrauenswürdige Quellenbeschränken. Alternativ könnenSie eine benutzerdefinierte EMR-verwaltete Sicherheitsgruppe zumEinschränken des Zugriffs angeben.

319

Page 327: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Amazon EMR-verwalteten Sicherheitsgruppen

Typ Protocol(Protokoll)

Port-Bereich

Source Details

Weitere Informationen hierzu finden Sieunter procedure to remove public accessto SSH (p. 320).

So schränken Sie den Zugriff mithilfe von SSH für die Sicherheitsgruppe ElasticMapReduce-master ein

Sie müssen bei AWS als ein Stammbenutzer oder IAM-Prinzipal angemeldet sein, der zur Verwaltungvon Sicherheitsgruppen für die VPC berechtigt ist, in der sich der Cluster befindet. Weitere Informationenfinden Sie unter Ändern der Berechtigungen für einen IAM-Benutzer und in der Beispielrichtlinie, die dieVerwaltung von EC2-Sicherheitsgruppen erlaubt, im IAM-Benutzerhandbuch.

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Clusters (Cluster) aus.3. Wählen Sie den Name (Namen) des Clusters.4. Wählen Sie unter Security and access (Sicherheit und Zugriff) den Link Security groups for Master

(Sicherheitsgruppen für Master).

5. Wählen Sie aus der Liste ElasticMapReduce-master.6. Wählen Sie Inbound (Eingehend), Edit (Bearbeiten).7. Suchen Sie nach einer Regel für den eingehenden Datenverkehr, die einen öffentlichen Zugriff mit den

folgenden Einstellungen zulässt. Wenn eine solche Regel vorhanden ist, wählen Sie Delete (Löschen)aus, um sie zu entfernen.

• Type (Typ)

SSH

320

Page 328: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Amazon EMR-verwalteten Sicherheitsgruppen

• Port

22• Source (Quelle)

Benutzerdefiniert 0.0.0.0/08. Scrollen Sie auf der Seite nach unten und klicken Sie auf Add Rule (Regel hinzufügen).9. Wählen Sie für Type (Typ) SSH aus.

Dadurch wird automatisch TCP für Protocol (Protokoll) und 22 für Port Range (Portbereich)eingegeben.

10. Wählen Sie als Quelle My IP (Meine IP) aus.

Dies fügt automatisch die IP-Adresse Ihres Client-Computers als Quell-Adresse hinzu. Alternativkönnen Sie eine Reihe von Custom (Benutzerdefinierten) vertrauenswürdigen Client-IP-Adressenauswählen und auf Add rule (Regel hinzufügen) klicken, um weitere Regeln für andere Clients zuerstellen. Zahlreiche Netzwerkumgebungen weisen IP-Adressen dynamisch zu. Daher müssenSie möglicherweise regelmäßig Sicherheitsgruppenregeln bearbeiten, um IP-Adressen fürvertrauenswürdige Clients zu aktualisieren.

11. Wählen Sie Save (Speichern) aus.12. Wählen Sie optional ElasticMapReduce-slave aus der Liste aus, und wiederholen Sie die

oben beschriebenen Schritte, um dem SSH-Client Zugriff auf Core- und Aufgabenknoten vonvertrauenswürdigen Clients zu gewähren.

Amazon EMR-verwaltete Sicherheitsgruppe für Core- undAufgaben-Instances (öffentliche Subnetze)Die standardmäßige verwaltete Sicherheitsgruppe für Core- und Aufgaben-Instances in öffentlichenSubnetzen hat den Group Name (Gruppennamen) von ElasticMapReduce-slave. Für die verwalteteStandardsicherheitsgruppe gelten die folgenden Regeln. Amazon EMR fügt die gleichen Regeln hinzu,wenn Sie eine benutzerdefinierte verwaltete Sicherheitsgruppe angeben..

Typ Protocol(Protokoll)

Port-Bereich

Source Details

Regeln für eingehenden Datenverkehr

Alle ICMP-IPV4

Alle N/A

Alle TCP TCP Alle

Alle UDP UDP Alle

Die Gruppen-IDder verwaltetenSicherheitsgruppefür Core- undAufgaben-Instances.Mit anderenWorten, dieselbeSicherheitsgruppe,in der die Regelangezeigt wird.

Diese reflexiven Regeln ermöglicheneingehenden Datenverkehr aus allenmit der angegebenen Sicherheitsgruppeverknüpften Instances. Die Verwendung derstandardmäßigen verwalteten SicherheitsgruppeElasticMapReduce-slave für mehrereCluster ermöglicht den Core- und Aufgaben-Instances dieser Cluster die gegenseitigeKommunikation über ICMP oder einen TCP-oder UDP-Port. Sie geben benutzerdefinierteverwaltete Sicherheitsgruppen an, um denCluster-übergreifenden Zugriff einzuschränken.

Alle ICMP-IPV4

Alle N/A

Alle TCP TCP Alle

Die Gruppen-IDder verwaltetenSicherheitsgruppe fürdie Master-Instance.

Diese Regeln lassen jeden eingehenden ICMP-Datenverkehr und jeden Datenverkehr über TCP-oder UDP-Ports aus allen Master-Instances zu,die mit der angegebenen Sicherheitsgruppe

321

Page 329: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Amazon EMR-verwalteten Sicherheitsgruppen

Typ Protocol(Protokoll)

Port-Bereich

Source Details

Alle UDP UDP Alle verknüpft sind, auch wenn sich die Instances inverschiedenen Clustern befinden.

Amazon EMR-verwaltete Sicherheitsgruppe für die Master-Instance (private Subnetze)Die standardmäßige verwaltete Sicherheitsgruppe für die Master-Instance in privaten Subnetzenhat den Group Name (Gruppennamen) von ElasticMapReduce-Master-Private. Für die verwalteteStandardsicherheitsgruppe gelten die folgenden Regeln. Amazon EMR fügt die gleichen Regeln hinzu,wenn Sie eine benutzerdefinierte verwaltete Sicherheitsgruppe angeben..

Typ Protocol(Protokoll)

Port-Bereich

Source Details

Regeln für eingehenden Datenverkehr

Alle ICMP-IPv4

Alle N/A

Alle TCP TCP Alle

Alle UDP UDP Alle

Die Gruppen-IDder verwaltetenSicherheitsgruppefür die Master-Instance. Mit anderenWorten, dieselbeSicherheitsgruppe,in der die Regelangezeigt wird.

Diese reflexiven Regeln ermöglicheneingehenden Datenverkehr aus allenmit der angegebenen Sicherheitsgruppeverknüpften Instances, die aus dem privatenSubnetz erreichbar sind. Die Verwendung derstandardmäßigen verwalteten SicherheitsgruppeElasticMapReduce-Master-Private fürmehrere Cluster ermöglicht den Core- undAufgabenknoten dieser Cluster die gegenseitigeKommunikation über ICMP oder einen TCP-oder UDP-Port. Sie geben benutzerdefinierteverwaltete Sicherheitsgruppen an, um denCluster-übergreifenden Zugriff einzuschränken.

Alle ICMP-IPV4

Alle N/A

Alle TCP TCP Alle

Alle UDP UDP Alle

Die Gruppen-IDder verwaltetenSicherheitsgruppefür Core- undAufgabenknoten.

Diese Regeln lassen jeden eingehenden ICMP-Datenverkehr und jeden Datenverkehr überTCP- oder UDP-Ports aus allen Core- undAufgaben-Instances zu, die mit der angegebenenSicherheitsgruppe verknüpft und aus demprivaten Subnetz erreichbar sind, auch wenn sichdie Instances in verschiedenen Clustern befinden.

HTTPS(8443)

TCP 8443 Die Gruppen-IDder verwaltetenSicherheitsgruppefür den Servicezugriffin einem privatenSubnetz.

Diese Regel ermöglicht dem Cluster-Manager dieKommunikation mit dem Master-Knoten.

Amazon EMR-verwaltete Sicherheitsgruppe für Core- undAufgaben-Instances (private Subnetze)Die standardmäßige verwaltete Sicherheitsgruppe für Core- und Aufgaben-Instances in privaten Subnetzenhat den Group Name (Gruppennamen) von ElasticMapReduce-Slave-Private. Für die verwaltete

322

Page 330: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Amazon EMR-verwalteten Sicherheitsgruppen

Standardsicherheitsgruppe gelten die folgenden Regeln. Amazon EMR fügt die gleichen Regeln hinzu,wenn Sie eine benutzerdefinierte verwaltete Sicherheitsgruppe angeben..

Typ Protocol(Protokoll)

Port-Bereich

Source Details

Regeln für eingehenden Datenverkehr

Alle ICMP-IPV4

Alle N/A

Alle TCP TCP Alle

Alle UDP UDP Alle

Die Gruppen-IDder verwaltetenSicherheitsgruppefür Core- undAufgaben-Instances.Mit anderenWorten, dieselbeSicherheitsgruppe,in der die Regelangezeigt wird.

Diese reflexiven Regeln ermöglicheneingehenden Datenverkehr aus allenmit der angegebenen Sicherheitsgruppeverknüpften Instances. Die Verwendung derstandardmäßigen verwalteten SicherheitsgruppeElasticMapReduce-slave für mehrereCluster ermöglicht den Core- und Aufgaben-Instances dieser Cluster die gegenseitigeKommunikation über ICMP oder einen TCP-oder UDP-Port. Sie geben benutzerdefinierteverwaltete Sicherheitsgruppen an, um denCluster-übergreifenden Zugriff einzuschränken.

Alle ICMP-IPV4

Alle N/A

Alle TCP TCP Alle

Alle UDP UDP Alle

Die Gruppen-IDder verwaltetenSicherheitsgruppe fürdie Master-Instance.

Diese Regeln lassen jeden eingehenden ICMP-Datenverkehr und jeden Datenverkehr über TCP-oder UDP-Ports aus allen Master-Instances zu,die mit der angegebenen Sicherheitsgruppeverknüpft sind, auch wenn sich die Instances inverschiedenen Clustern befinden.

HTTPS(8443)

TCP 8443 Die Gruppen-IDder verwaltetenSicherheitsgruppefür den Servicezugriffin einem privatenSubnetz.

Diese Regel ermöglicht dem Cluster-Manager dieKommunikation mit Core- und Aufgabenknoten.

Amazon EMR-verwaltete Sicherheitsgruppe für den Servicezugriff(private Subnetze)Die standardmäßige verwaltete Sicherheitsgruppe für den Servicezugriff in privaten Subnetzen hatden Group Name (Gruppennamen) von ElasticMapReduce-ServiceAccess. Sie besitzt Regeln für deneingehenden und den ausgehenden Datenverkehr, die Datenverkehr über HTTPS (Port 8443, Port9443) mit den anderen verwalteten Sicherheitsgruppen in privaten Subnetzen zulassen. Diese Regelnermöglichen dem Cluster-Manager die Kommunikation mit dem Master-Knoten und mit Kern- undAufgabenknoten. Dieselben Regeln sind erforderlich, wenn Sie benutzerdefinierte Sicherheitsgruppenverwenden.

Typ Protocol(Protokoll)

Port-Bereich

Source Details

Regeln für ausgehenden Datenverkehr erforderlich für alle EMR-Cluster

HTTPS(8443)

TCP 8443 Die Gruppen-IDder verwaltetenSicherheitsgruppe fürdie Master-Instance.

Diese Regeln ermöglichen dem Cluster-Managerdie Kommunikation mit dem Master-Knoten undmit Kern- und Aufgabenknoten.

323

Page 331: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit zusätzlichen Sicherheitsgruppen

Typ Protocol(Protokoll)

Port-Bereich

Source Details

HTTPS(8443)

TCP 8443 Die Gruppen-IDder verwaltetenSicherheitsgruppe fürCore- und Aufgaben-Instances.

Diese Regeln ermöglichen dem Cluster-Managerdie Kommunikation mit dem Master-Knoten undmit Kern- und Aufgabenknoten.

Regeln für eingehenden Datenverkehr Erforderlich für EMR-Cluster mit Amazon EMR ab Version 5.30.0.

HTTPS(9443)

TCP 9443 Die Gruppen-IDder verwaltetenSicherheitsgruppe fürdie Master-Instance.

Diese Regel ermöglicht die Kommunikationzwischen der Sicherheitsgruppe der Master-Instance und der Sicherheitsgruppe desServicezugriffs.

Arbeiten mit zusätzlichen SicherheitsgruppenSie können zusätzliche Sicherheitsgruppen unabhängig davon verwenden, ob Sie die standardmäßigenverwalteten Sicherheitsgruppen verwenden oder benutzerdefinierte verwaltete Sicherheitsgruppenangeben. Mit zusätzlichen Sicherheitsgruppen können Sie den Zugriff auf die einzelnen Cluster und vonexternen Clients, Ressourcen und Anwendungen anpassen.

Betrachten Sie beispielsweise das folgende Szenario. Es gibt mehrere Cluster, die miteinanderkommunizieren müssen. Sie möchten jedoch nur einem bestimmten Teilsatz von Clustern eingehendenSSH-Zugriff auf die Master-Instance gewähren. Hierzu können Sie für die Cluster den gleichen Satz vonverwalteten Sicherheitsgruppen verwenden. Anschließend erstellen Sie zusätzliche Sicherheitsgruppen,die eingehenden SSH-Zugriff von vertrauenswürdigen Clients zulassen, und geben die zusätzlichenSicherheitsgruppen für die Master-Instance für jeden Cluster in der Untergruppe an.

Sie können bis zu vier zusätzliche Sicherheitsgruppen für die Master-Instance, vier für Core- und Aufgaben-Instances und vier für den Servicezugriff (in privaten Subnetzen) verwenden. Wenn notwendig, könnenSie dieselben zusätzlichen Sicherheitsgruppen für Master-Instances, Core- und Aufgaben-Instances undden Servicezugriff angeben. Die maximale Anzahl von Sicherheitsgruppen und -regeln in Ihrem Kontounterliegt Kontolimits. Weitere Informationen finden Sie unter Sicherheitsgruppenlimits im Amazon VPCBenutzerhandbuch.

Angeben von Amazon EMR-verwalteten undzusätzlichen SicherheitsgruppenSie können Sicherheitsgruppen über die AWS Management Console, die AWS CLI oder die EMR-APIangeben. Wenn Sie keine Sicherheitsgruppen angeben, erstellt Amazon EMR Standardsicherheitsgruppen.Die Angabe zusätzlicher Sicherheitsgruppen ist optional. Sie können Master-Instances, Core- undAufgaben-Instances und dem Servicezugriff (nur private Subnetze) zusätzliche Sicherheitsgruppenzuweisen.

So geben Sie Sicherheitsgruppen über die Konsole an

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Create Cluster (Cluster erstellen) und Go to advanced options (Erweiterte Optionen

aufrufen) aus.3. Wählen Sie Optionen für Ihren Cluster aus, bis Sie Schritt 4: erreichen. -Sicherheit.4. Wählen Sie EC2 Security Groups (EC2-Sicherheitsgruppen) aus, um den Abschnitt zu erweitern.

324

Page 332: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAngeben von Sicherheitsgruppen

In EMR managed security groups (EMR-verwaltete Sicherheitsgruppen) sind die standardmäßigenverwalteten Sicherheitsgruppen vorausgewählt. Wenn in der VPC für Master (Master), Core& Task (Core und Aufgabe) oder Service Access (Servicezugriff) (nur private Subnetze) keinestandardmäßigen verwalteten Sicherheitsgruppen vorhanden sind, wird vor dem Namen derverknüpften Sicherheitsgruppe Create (Erstellen) angezeigt.

5. Wenn Sie benutzerdefinierte verwaltete Sicherheitsgruppen verwenden, wählen Sie sie aus den ListenEMR managed security groups (EMR-verwaltete Sicherheitsgruppen) aus.

Wenn Sie eine benutzerdefinierte verwaltete Sicherheitsgruppe auswählen, werden Sie zur Auswahleiner benutzerdefinierten Sicherheitsgruppe für andere Instances aufgefordert. Sie können für einenCluster nur benutzerdefinierte oder nur standardmäßige verwaltete Sicherheitsgruppen verwenden.

6. Optional können Sie in Additional security groups (Zusätzliche Sicherheitsgruppen) das Bleistiftsymbolauswählen, bis zu vier Sicherheitsgruppen aus der Liste auswählen und dann Assign security groups(Sicherheitsgruppen zuweisen) auswählen. Wiederholen Sie dies für jeden Eintrag in Master (Master),Core & Task (Core und Aufgabe) und Service Access (Servicezugriff) wie gewünscht.

7. Wählen Sie Create Cluster aus.

Angeben von Sicherheitsgruppen über die AWS CLIUm Sicherheitsgruppen über die AWS CLI anzugeben, verwenden Sie den Befehl create-cluster mitden folgenden Parametern der Option --ec2-attributes:

Parameter Description (Beschreibung)

EmrManagedMasterSecurityGroup Verwenden Sie diesen Parameter, um einebenutzerdefinierte verwaltete Sicherheitsgruppefür die Master-Instance anzugeben. Wenndieser Parameter angegeben wird, muss auchEmrManagedSlaveSecurityGroup angegebenwerden. Für Cluster in privaten Subnetzenmuss auch ServiceAccessSecurityGroupangegeben werden.

EmrManagedSlaveSecurityGroup Verwenden Sie diesen Parameter, um einebenutzerdefinierte verwaltete Sicherheitsgruppe fürCore- und Aufgaben-Instances anzugeben. Wenndieser Parameter angegeben wird, muss auchEmrManagedMasterSecurityGroup angegebenwerden. Für Cluster in privaten Subnetzenmuss auch ServiceAccessSecurityGroupangegeben werden.

ServiceAccessSecurityGroup Verwenden Sie diesen Parameter,um eine benutzerdefinierte verwalteteSicherheitsgruppe für den Servicezugriffanzugeben. Dies gilt nur für Cluster in privatenSubnetzen. Die Sicherheitsgruppe, die Sie alsServiceAccessSecurityGroup angeben,sollte nicht für andere Zwecke verwendet werdenund auch für Amazon EMR reserviert sein. Wenndieser Parameter angegeben wird, muss auchEmrManagedMasterSecurityGroup angegebenwerden.

325

Page 333: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSicherheitsgruppen für EMR-Notebooks

Parameter Description (Beschreibung)

AdditionalMasterSecurityGroups Verwenden Sie diesen Parameter, um bis zu vierzusätzliche verwaltete Sicherheitsgruppen für dieMaster-Instance anzugeben.

AdditionalSlaveSecurityGroups Verwenden Sie diesen Parameter, um bis zu vierzusätzliche verwaltete Sicherheitsgruppen für dieCore- und Aufgaben-Instances anzugeben.

Example – Angeben benutzerdefinierter Amazon EMR-verwalteter Sicherheitsgruppen undzusätzlicher Sicherheitsgruppen

Im folgenden Beispiel werden benutzerdefinierte Amazon EMR-verwaltete Sicherheitsgruppen für einenCluster in einem privaten Subnetz, mehrere zusätzliche Sicherheitsgruppen für die Master-Instance undeine einzelne zusätzliche Sicherheitsgruppe für Core- und Aufgaben-Instances angegeben.

Note

Zur besseren Lesbarkeit sind Linux-Zeilenfortsetzungszeichen (\) enthalten. Sie können entwederentfernt oder in Linux-Befehlen verwendet werden. Ersetzen Sie diese Zeichen unter Windowsdurch ein Caret-Zeichen (^).

aws emr create-cluster --name "ClusterCustomManagedAndAdditionalSGs" \--release-label emr-emr-5.31.0 --applications Name=Hue Name=Hive \Name=Pig --use-default-roles --ec2-attributes \SubnetIds=subnet-xxxxxxxxxxxx,KeyName=myKey,\ServiceAccessSecurityGroup=sg-xxxxxxxxxxxx,\EmrManagedMasterSecurityGroup=sg-xxxxxxxxxxxx,\EmrManagedSlaveSecurityGroup=sg-xxxxxxxxxxx,\AdditionalMasterSecurityGroups=['sg-xxxxxxxxxxx',\'sg-xxxxxxxxxxx','sg-xxxxxxxxxx'],\AdditionalSlaveSecurityGroups=sg-xxxxxxxxxxx \--instance-type m5.xlarge

Weitere Informationen finden Sie unter create-cluster in der AWS CLI Command Reference.

Angeben von EC2-Sicherheitsgruppen für EMRNotebooksWenn Sie ein EMR-Notebook erstellen, wird der Netzwerkdatenverkehr zwischen dem EMR-Notebookund dem Amazon EMR-Cluster mithilfe von zwei Sicherheitsgruppen gesteuert, wenn der Notebook-Editor verwendet wird. Die Standard-Sicherheitsgruppen verfügen über Mindestregeln, die nurNetzwerkdatenverkehr zwischen dem EMR-Notebooks-Service und den Clustern zulassen, an die dieNotebooks angefügt sind.

Ein EMR-Notebook verwendet Apache Livy für die Kommunikation mit dem Cluster über einen Proxy überTCP-Port 18888. Indem Sie benutzerdefinierte Sicherheitsgruppen mit an Ihre Umgebung angepasstenRegeln erstellen, können Sie den Netzwerkdatenverkehr so einschränken, dass nur ein Teil der NotebooksCode innerhalb des Notebook-Editors auf bestimmten Clustern ausführen kann. Die Sicherheitsgruppenwerden zusätzlich zu den Sicherheitsgruppen für den Cluster verwendet. Weitere Informationen finden Sieunter Steuerung des Netzwerkverkehrs mit Sicherheitsgruppen im Management Guide für Amazon EMRund Angeben von EC2-Sicherheitsgruppen für EMR Notebooks (p. 326).

326

Page 334: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSicherheitsgruppen für EMR-Notebooks

EC2-Standard-Sicherheitsgruppe für die Master-InstanceZusätzlich zu den Sicherheitsgruppen des Clusters für die Master-Instance ist die EC2-Standard-Sicherheitsgruppe für die Master-Instance der Master-Instance zugeordnet.

Gruppenname: ElasticMapReduceEditors-Livy

Regeln

• Eingehend

Zulassen von TCP Port 18888 von allen Ressourcen in der EC2-Standard-Sicherheitsgruppe für EMR-Notebooks

• Ausgehend

Keine

Standard-EC2-Sicherheitsgruppe für EMR NotebooksDie EC2-Standard-Sicherheitsgruppe für EMR-Notebook ist mit dem Notebook-Editor für alle EMR-Notebook verknüpft, denen sie zugewiesen ist.

Gruppenname: ElasticMapReduceEditors-Editor

Regeln

• Eingehend

Keine• Ausgehend

Lassen Sie TCP Port 18888 auf alle Ressourcen in der EC2-Standard-Sicherheitsgruppe für EMR-Notebooks zu.

Benutzerdefinierte EC2-Sicherheitsgruppe für EMR-Notebooksbeim Zuordnen von Notebooks zu Git-RepositorysUm ein Git-Repository mit Ihrem Notebook verknüpfen zu können, muss die Sicherheitsgruppe für dasEMR-Notebook eine Regel für ausgehenden Datenverkehr enthalten, damit das Notebook Datenverkehran das Internet weiterleiten kann. Es wird empfohlen, zu diesem Zweck eine neue Sicherheitsgruppe zuerstellen. Durch das Aktualisieren der Standardsicherheitsgruppe -ElasticMapReduceEditors-Editor könnenandere Notebooks, die dieser Sicherheitsgruppe angefügt sind, möglicherweise die gleichen Regeln fürausgehenden Datenverkehr erhalten.

Regeln

• Eingehend

Keine• Ausgehend

Erlauben Sie dem Notebook, Datenverkehr über den Cluster an das Internet zu leiten, wie im folgendenBeispiel veranschaulicht:

327

Page 335: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von Block Public Access

Typ Protocol (Protokoll) Port-Bereich Zieladresse

Benutzerdefinierte TCP-Regel

TCP 18888 SG-

HTTPS TCP 443 0.0.0.0/0

Verwenden von Amazon EMR Block Public AccessAmazon EMR Block Public Access verhindert, dass ein Cluster gestartet wird, wenn eineSicherheitsgruppe, die dem Cluster zugeordnet ist, über eine Regel verfügt, die eingehenden Datenverkehrvon IPv4 0.0.0.0/0 oder IPv6 ::/0 (öffentlicher Zugriff) auf einem Port zulässt, es sei denn, der Portwurde als Ausnahme angegeben. Port 22 ist standardmäßig eine Ausnahme. Sie können Ausnahmenkonfigurieren, um den öffentlichen Zugriff auf einen Port oder einen Bereich von Ports zu erlauben. Darüberhinaus können Sie den öffentlichen Zugriff blockieren oder deaktivieren. Wir empfehlen, ihn zu aktivieren.

Block Public Access (Öffentlichen Zugriff blockieren) ist für jede AWS-Region für Ihr AWS-Konto aktiviertund konfiguriert. Mit anderen Worten, jede Region verfügt über eine Block Public Access-Konfiguration, diefür alle Cluster gilt, die von Ihrem Konto in dieser Region erstellt wurden.

Block Public Access ist nur während der Cluster-Erstellung anwendbar. Block Public Access verhindertnicht, dass IAM-Prinzipale mit entsprechenden Berechtigungen Sicherheitsgruppenkonfigurationenaktualisieren, um öffentlichen Zugriff auf ausgeführten Clustern zu ermöglichen.

Note

Für Konten, die vor dem 25. November 2019 Cluster in einer Region erstellt haben, ist dasBlockieren des öffentlichen Zugriffs in dieser Region standardmäßig deaktiviert. Um dieseFunktion verwenden zu können, müssen Sie sie manuell aktivieren und konfigurieren. Für Konten,die vor diesem Datum keinen EMR-Cluster in einer Region erstellt haben, ist das Blockieren desöffentlichen Zugriffs in dieser Region standardmäßig aktiviert.

Konfigurieren von Block Public AccessSie können die Einstellungen für Block Public Access mithilfe von AWS Management Console, AWS CLIund der Amazon EMR-API aktivieren und deaktivieren. Die Einstellungen gelten für Ihr Konto je nachRegion.

So konfigurieren Sie Block Public Access mithilfe der AWS Management Console

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Stellen Sie in der Navigationsleiste sicher, dass die Region, die Sie konfigurieren möchten, ausgewählt

ist.3. Wählen Sie Block public access (Öffentlichen Zugriff sperren) aus.4. Führen Sie unter Block public access settings (Einstellungen für die Sperrung des öffentlichen

Zugriffs) die folgenden Schritte aus.

Aufgabe Vorgehensweise

Block Public Access aktivieren oder deaktivieren Wählen Sie Change (Ändern), On (Ein) oder Off(Aus) und dann das Häkchen zur Bestätigungaus.

328

Page 336: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von Block Public Access

Aufgabe Vorgehensweise

Ports in der Liste der Ausnahmen bearbeiten 1. Wählen Sie unter Exceptions (Ausnahmen),die Option Edit (Bearbeiten) aus.

2. Um der Liste der Ausnahmen Portshinzuzufügen, wählen Sie Add a port range(Port-Bereich hinzufügen) aus und gebenSie einen neuen Port oder Port-Bereich ein.Wiederholen Sie den Vorgang für jeden Portoder Port-Bereich, der hinzugefügt werdensoll.

3. Um einen Port oder Port-Bereich zu entfernen,wählen Sie das x neben dem Eintrag in derListe Port ranges (Bort-Bereiche) aus.

4. Wählen Sie Save Changes (Änderungenspeichern).

So konfigurieren Sie Block Public Access mithilfe der AWS CLI

Verwenden Sie den aws emr put-block-public-access-configuration-Befehl, um Block PublicAccess zu konfigurieren, wie in den folgenden Beispielen gezeigt.

Aufgabe Vorgehensweise

Block Public Access aktivieren Legen Sie BlockPublicSecurityGroupRuleswie im folgenden Beispiel gezeigt auf truefest. Damit der Cluster gestartet werden kann,darf keine Sicherheitsgruppe, die einem Clusterzugeordnet ist, über eine Regel für eingehendenDatenverkehr verfügen, die den öffentlichen Zugriffzulässt.

aws emr put-block-public-access-configuration --block-public-access-configuration BlockPublicSecurityGroupRules=true

Block Public Access deaktivieren Legen Sie BlockPublicSecurityGroupRuleswie im folgenden Beispiel gezeigt auf falsefest. Sicherheitsgruppen, die einem Clusterzugeordnet sind, können Regeln für eingehendenDatenverkehr aufweisen, die öffentlichen Zugriffauf beliebige Ports zulassen. Wir empfehlen dieseKonfiguration nicht.

aws emr put-block-public-access-configuration --block-public-access-configuration BlockPublicSecurityGroupRules=false

Block Public Access aktivieren und Ports alsAusnahmen angeben

Im folgenden Beispiel wird Block Public Accessaktiviert und Port 22 sowie die Ports 100-101werden als Ausnahmen angegeben. Auf dieseWeise können Cluster erstellt werden, wenn einezugeordnete Sicherheitsgruppe über eine Regel für

329

Page 337: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCompliance-Validierung

Aufgabe Vorgehensweiseeingehenden Datenverkehr verfügt, die öffentlichenZugriff auf die Ports 22, 100 oder 101 zulässt.

aws emr put-block-public-access-configuration --block-public-access-configuration '{ "BlockPublicSecurityGroupRules": true, "PermittedPublicSecurityGroupRuleRanges": [ { "MinRange": 22, "MaxRange": 22 }, { "MinRange": 100, "MaxRange": 101 } ] }'

Compliance-Validierung für Amazon EMRDie Auditoren Dritter bewerten die Sicherheit und die Compliance von Amazon EMR im Rahmen mehrererAWS-Compliance-Programme. Hierzu zählen unter anderem SOC, PCI, FedRAMP und HIPAA.

Eine Liste der AWS-Services, die in bestimmten Compliance-Programmen enthalten sind, finden Sie unterAWS-Services in Scope nach Compliance-Programm. Allgemeine Informationen finden Sie unter AWS-Compliance-Programme.

Die Auditberichte von Drittanbietern lassen sich mit AWS Artifact herunterladen. Weitere Informationenfinden Sie unter Herunterladen von Berichten in AWS Artifact.

Ihre Compliance-Verantwortung bei Verwendung von Amazon EMR hängt von der Vertraulichkeit derDaten, den Compliance-Zielen des Unternehmens und den geltenden Gesetzen und Vorschriften ab.Wenn Ihre Nutzung von Amazon EMR Gegenstand der Einhaltung von Standards wie HIPAA, PCI oderFedRAMP ist, stellt AWS Ressourcen zur Unterstützung bereit:

• Kurzanleitungen für Sicherheit und Compliance – In diesen Bereitstellungsleitfäden finden Sie wichtigeÜberlegungen zur Architektur sowie die einzelnen Schritte zur Bereitstellung von sicherheits- undCompliance-orientierten Basisumgebungen in AWS.

• Whitepaper zur Erstellung einer Architektur mit HIPAA-konformer Sicherheit und Compliance – DiesesWhitepaper beschreibt, wie Unternehmen mithilfe von AWS HIPAA-konforme Anwendungen erstellen.

• AWS-Compliance-Ressourcen – Diese Arbeitsbücher und Leitfäden könnten für Ihre Branche und IhrenStandort interessant sein.

• AWS Config – Dieser AWS-Service bewertet, zu welchem Grad die Konfiguration Ihrer Ressourcen deninternen Vorgehensweisen, Branchenrichtlinien und Vorschriften entspricht.

• AWS Security Hub – Dieser AWS-Service liefert Ihnen einen umfassenden Überblick über IhrenSicherheitsstatus in AWS. So können Sie Ihre Compliance mit den Sicherheitsstandards der Brancheund Best Practices abgleichen.

Ausfallsicherheit in Amazon EMRIm Zentrum der globalen AWS-Infrastruktur stehen die AWS-Regionen und -Availability Zones(Verfügbarkeitszonen, AZs). AWS-Regionen stellen mehrere physisch getrennte und isolierte AvailabilityZones bereit, die über hoch redundante Netzwerke mit niedriger Latenz und hohen Durchsätzen verbundensind. Mithilfe von Availability Zones können Sie Anwendungen und Datenbanken erstellen und ausführen,die automatisch Failover zwischen Availability Zones ausführen, ohne dass es zu Unterbrechungenkommt. Availability Zones sind besser hoch verfügbar, fehlertoleranter und skalierbarer als herkömmlicheInfrastrukturen mit einem oder mehreren Rechenzentren.

330

Page 338: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSicherheit der Infrastruktur

Weitere Informationen über zu AWS-Regionen und Availability Zones finden Sie unter Weltweite AWS-Infrastruktur.

Neben der globalen AWS-Infrastruktur stellt Amazon EMR verschiedene Funktionen bereit, um IhrenAnforderungen an Ausfallsicherheit und Datensicherung gerecht zu werden.

• Integration in Amazon S3 über EMRFS• Support für mehrere Master-Knoten

Sicherheit der Infrastruktur in Amazon EMRAls verwalteter Service ist Amazon EMR durch die globalen Verfahren zur Gewährleistung derNetzwerksicherheit von AWS geschützt, die im Whitepaper Amazon Web Services: Übersicht über dieSicherheitsprozesse beschrieben sind.

Sie verwenden von AWS veröffentlichte API-Aufrufe, um über das Netzwerk auf Amazon EMR zuzugreifen.Clients müssen Transport Layer Security (TLS) 1.0 oder höher unterstützen. Wir empfehlen TLS 1.2 oderhöher. Clients müssen außerdem Cipher Suites mit PFS (Perfect Forward Secrecy) wie DHE (EphemeralDiffie-Hellman) oder ECDHE (Elliptic Curve Ephemeral Diffie-Hellman) unterstützen. Die meisten modernenSystemen wie Java 7 und höher unterstützen diese Modi.

Außerdem müssen Anforderungen mit einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüsselsigniert sein, der mit einem IAM-Prinzipal verknüpft ist. Alternativ können Sie mit AWS Security TokenService (AWS STS) temporäre Sicherheitsanmeldeinformationen erstellen, um die Anforderungen zusignieren.

Themen• Herstellen einer Verbindung mit Amazon EMR über einen Schnittstellen-VPC-Endpunkt (p. 331)

Herstellen einer Verbindung mit Amazon EMR übereinen Schnittstellen-VPC-EndpunktSie können die Verbindung zu Amazon EMR direkt über einen Schnittstellen-VPC-Endpunkt (AWSPrivateLink) in der Virtual Private Cloud (VPC) herstellen, statt eine Verbindung über das Internet zuverwenden. Wenn Sie einen Schnittstellen-VPC-Endpunkt verwenden, findet die Kommunikation zwischender VPC und Amazon EMR vollständig innerhalb des AWS-Netzwerks statt. Jeder VPC-Endpunkt wirddurch eine oder mehrere Elastic Network-Schnittstellen (ENIs) mit privaten IP-Adressen in Ihren VPC-Subnetzen repräsentiert.

Der Schnittstellen-VPC-Endpunkt verbindet die VPC direkt mit Amazon EMR, ohne Internet-Gateway, NAT-Gerät, VPN-Verbindung oder AWS Direct Connect-Verbindung. Die Instances in der VPC benötigen für dieKommunikation mit der Amazon EMR-API keine öffentlichen IP-Adressen.

Um Amazon EMR über die VPC zu verwenden, müssen Sie die Verbindung über eine Instance in der VPCherstellen oder das private Netzwerk mit der VPC verbinden. Dies erreichen Sie mit einem Amazon VirtualPrivate Network (VPN) oder mit AWS Direct Connect. Informationen zu Amazon VPN finden Sie unter VPN-Verbindungen im Amazon Virtual Private Cloud-Benutzerhandbuch. Informationen zu AWS Direct Connectfinden Sie unter Erstellen einer Verbindung im AWS Direct Connect-Benutzerhandbuch.

Sie können über die AWS-Konsole oder AWS Command Line Interface (AWS CLI)-Befehle einenSchnittstellen-VPC-Endpunkt erstellen, um eine Verbindung zu Amazon EMR herzustellen. WeitereInformationen finden Sie unter Erstellen eines Schnittstellenendpunkts.

331

Page 339: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideHerstellen einer Verbindung mit Amazon

EMR über einen Schnittstellen-VPC-Endpunkt

Wenn Sie nach dem Erstellen eines Schnittstellen-VPC-Endpunkts private DNS-Host-Namen für denEndpunkt aktivieren, wird der Amazon EMR-Standardendpunkt in den VPC-Endpunkt aufgelöst. DerService-Standardname für den Endpunkt für Amazon EMR hat das folgende Format.

elasticmapreduce.Region.amazonaws.com

Wenn Sie keine privaten DNS-Host-Namen aktivieren, stellt Amazon VPC einen DNS-Endpunktnamenbereit, den Sie im folgenden Format verwenden können:

VPC_Endpoint_ID.elasticmapreduce.Region.vpce.amazonaws.com

Weitere Informationen finden Sie unter Schnittstellen-VPC-Endpunkte (AWS PrivateLink) im Amazon VPCBenutzerhandbuch.

Amazon EMR unterstützt Aufrufe all seiner API-Aktionen in der VPC.

Sie können VPC-Endpunktrichtlinien an einen VPC-Endpunkt anfügen, um den Zugriff für IAM-Prinzipalezu steuern. Sie können einem VPC-Endpunkt auch Sicherheitsgruppen zuordnen, um den eingehendenund ausgehenden Zugriff basierend auf Ursprung und Ziel des Netzwerkdatenverkehrs zu steuern, z. B.mit einem IP-Adressbereich. Weitere Informationen finden Sie unter Steuern des Zugriffs auf Services mitVPC-Endpunkten.

Erstellen einer VPC-Endpunktrichtlinie für Amazon EMRSie können eine Richtlinie für Amazon VPC-Endpunkte für Amazon EMR erstellen, in der Sie Folgendesangeben:

• Prinzipal, der Aktionen ausführen/nicht ausführen kann• Aktionen, die ausgeführt werden können• Ressourcen, für die Aktionen ausgeführt werden können

Weitere Informationen finden Sie unter Steuerung des Zugriffs auf Services mit VPC-Endpunkten im Amazon VPC-Benutzerhandbuch.

Example – VPC-Endpunktrichtlinie zum Verweigern des Zugriffs mit einem angegebenen AWS-Konto

Die folgende VPC-Endpunktrichtlinie verweigert dem AWS-Konto 123456789012 jeglichen Zugriff aufRessourcen, die den Endpunkt verwenden.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] }

332

Page 340: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideHerstellen einer Verbindung mit Amazon

EMR über einen Schnittstellen-VPC-Endpunkt

} ]}

Example – VPC-Endpunktrichtlinie zum Gewähren des VPC-Zugriffs auf einen angegebenen IAM-Prinzipal (Benutzer)

Die folgende VPC-Endpunktrichtlinie gewährt nur dem IAM-Benutzer lijuan im AWS-Konto123456789012 vollen Zugriff. Allen anderen IAM-Prinzipalen wird der Zugriff über den Endpunktverweigert.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/lijuan" ] } }]}

Example – VPC-Endpunktrichtlinie zum Erlauben von EMR-Leseoperationen

Die folgende VPC-Endpunktrichtlinie erlaubt nur dem AWS-Konto 123456789012 das Ausführen derangegebenen Amazon EMR-Aktionen.

Die angegebenen Aktionen stellen das Äquivalent eines schreibgeschützten Zugriffs für Amazon EMR dar.Alle anderen Aktionen in der VPC werden dem angegebenen Konto verweigert. Allen anderen Konten wirdder Zugriff verweigert. Eine Liste der Amazon EMR-Aktionen finden Sie unter Aktionen, Ressourcen undBedingungsschlüssel für Amazon EMR.

{ "Statement": [ { "Action": [ "elasticmapreduce:DescribeSecurityConfiguration", "elasticmapreduce:GetBlockPublicAccessConfiguration", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ViewEventsFromAllClustersInConsole", "elasticmapreduce:ListSteps", "elasticmapreduce:ListInstanceFleets", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeStep", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSecurityConfigurations", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListClusters", "elasticmapreduce:ListEditors" ], "Effect": "Allow", "Resource": "*", "Principal": { "AWS": [ "123456789012" ] } }

333

Page 341: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideHerstellen einer Verbindung mit Amazon

EMR über einen Schnittstellen-VPC-Endpunkt

]}

Example – VPC-Endpunktrichtlinie, die den Zugriff auf einen angegebenen Cluster verweigert

Die folgende VPC-Endpunktrichtlinie gewährt vollen Zugriff für alle Konten und Prinzipale, verweigertjedoch jeglichen Zugriff des AWS-Kontos 123456789012 auf Aktionen, die im Amazon EMR-Clustermit der Cluster-ID j-A1B2CD34EF5G ausgeführt werden. Andere Amazon EMR-Aktionen, die keineBerechtigungen auf Ressourcenebene für Cluster unterstützen, sind weiterhin zulässig. Eine Liste derAmazon EMR-Aktionen und die entsprechenden Ressourcentypen finden Sie unter Aktionen, Ressourcenund Bedingungsschlüssel für Amazon EMR.

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "*", "Effect": "Deny", "Resource": "arn:aws:elasticmapreduce:us-west-2:123456789012:cluster/j-A1B2CD34EF5G", "Principal": { "AWS": [ "123456789012" ] } } ]}

334

Page 342: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView and Monitor a Cluster

Manage ClustersNach dem Starten Ihres Clusters können Sie ihn überwachen und verwalten. Amazon EMR bietet mehrereTools, mit denen Sie eine Verbindung zu Ihrem Cluster herstellen und diesen kontrollieren können.

Themen• View and Monitor a Cluster (p. 335)• Verbinden mit dem Cluster (p. 383)• Beenden eines Clusters (p. 401)• Skalieren von Cluster-Ressourcen (p. 403)• Cloning a Cluster Using the Console (p. 436)• Übermitteln von Aufträgen an einen Cluster (p. 437)• Automate Recurring Clusters with AWS Data Pipeline (p. 444)

View and Monitor a ClusterAmazon EMR bietet mehrere Tools, die Sie verwenden können, um Informationen über Ihren Cluster zusammeln. Sie können Informationen zum Cluster über die Konsole, die Befehlszeilenschnittstelle (CLI)oder programmgesteuert abrufen. Die Standard-Hadoop-Webschnittstellen und Protokolldateien sind aufdem Master-Knoten verfügbar. Sie können auch Überwachungsservices wie CloudWatch und Gangliaverwenden, um die Leistung Ihres Clusters zu verfolgen.

Der Anwendungsverlauf ist auch über die Konsole mit den „persistenten“ Anwendungs-UIs für SparkHistory Server ab Amazon EMR 5.25.0 verfügbar. Mit Amazon EMR 6.x sind auch persistente YARNTimeline Server und Tez-Benutzeroberflächen verfügbar. Diese Dienste werden außerhalb des Clustersgehostet, sodass Sie nach Beendigung des Clusters 30 Tage lang auf den Anwendungsverlauf zugreifenkönnen, ohne dass eine SSH-Verbindung oder ein Web-Proxy erforderlich ist. Weitere Information unterAnzeigen des Anwendungsverlaufs

Themen• View Cluster Status and Details (p. 335)• Enhanced Step Debugging (p. 341)• Anzeigen des Anwendungsverlaufs (p. 343)• View Log Files (p. 349)• View Cluster Instances in Amazon EC2 (p. 353)• CloudWatch-Ereignisse und -Metriken (p. 354)• View Cluster Application Metrics with Ganglia (p. 381)• Protokollieren von Amazon EMR-API-Aufrufen in AWS CloudTrail (p. 381)

View Cluster Status and DetailsNach dem Erstellen eines Clusters können Sie dessen Status überwachen und detaillierte Informationenzu dessen Ausführung und möglicherweise aufgetretenen Fehlern abrufen – auch nachdem der Cluster

335

Page 343: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Cluster Status and Details

beendet wurde. Amazon EMR speichert zu Referenzzwecken Metadaten zu beendeten Cluster für zweiMonate. Anschließend werden die Metadaten gelöscht. Sie können keine Cluster aus dem Cluster-Verlauflöschen. Sie können jedoch in der AWS Management Console die Option Filter (Filtern) und in der AWSCLI Optionen mit dem Befehl list-clusters verwenden, um sich auf für Sie relevante Cluster zukonzentrieren.

Sie können auf den innerhalb des Clusters gespeicherten Anwendungsverlauf eine Woche ab demZeitpunkt der Aufzeichnung zugreifen, unabhängig davon, ob der Cluster ausgeführt wird oder beendetwurde. Darüber hinaus speichern persistente Anwendungsbenutzeroberflächen den Anwendungsverlauf für30 Tage nach Beendigung eines Clusters außerhalb des Clusters. Weitere Information unter Anzeigen desAnwendungsverlaufs

View Cluster Status Using the AWS Management ConsoleIn Clusters List (Cluster-Liste) in der Amazon EMR-Konsole werden alle Cluster in Ihrem Konto und IhrerAWS-Region einschließlich beendeter Cluster aufgelistet. Die Liste zeigt für jeden Cluster Folgendesan: Name (Name) und ID (ID), Status (Status), Creation time (Zeitpunkt der Erstellung), Elapsed time(Verstrichene Zeit), über die der Cluster ausgeführt wurde, und Normalized instance hours (NormalisierteInstance-Stunden), die sich für alle EC2-Instances im Cluster angesammelt haben. Diese Liste ist derAusgangspunkt für die Überwachung des Status von Clustern. Sie ist so konzipiert, dass Sie jeden Clusterzu Analyse- und Fehlerbehebungszwecken aufschlüsseln können.

So zeigen Sie eine verkürzte Zusammenfassung der Cluster-Informationen an

• Wählen Sie den Abwärtspfeil neben dem Link für den Cluster in Name (Name) aus.

Die Zeile für den Cluster wird erweitert, sodass weitere Informationen zu Clustern, Hardware, Schrittenund Bootstrap-Aktionen dargestellt werden. Verwenden Sie die Links in diesem Abschnitt, umaufgegliederte Details einzusehen. Klicken Sie beispielsweise auf einen Link in Steps (Schritte), umauf Schrittprotokolldateien zuzugreifen, die JAR-Datei für den Schritt anzuzeigen, die Aufträge undAufgaben für den Schritt detailliert anzuzeigen und auf Protokolldateien zuzugreifen.

So zeigen Sie den Cluster-Status ausführlich an

• Wählen Sie den Cluster-Link in Name (Name) aus, um eine Cluster-Detailseite für den Cluster zuöffnen. Verwenden Sie die Registerkarten, um Informationen anzuzeigen, wie im folgenden Abschnittbeschrieben.

Verwenden Sie die jeweiligen Registerkarten für die folgenden Informationen:

336

Page 344: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Cluster Status and Details

Tab Informationen

Übersicht Auf dieser Registerkarte können SieBasisinformationen zu Ihrer Cluster-Konfigurationanzeigen, z. B. die URL für SSH-Verbindungenmit dem Master-Knoten, welche Open-Source-Anwendungen beim Erstellen des Clusters vonAmazon EMR installiert wurden, Speicherortevon Protokollen in Amazon S3 und die Versionvon Amazon EMR, die zum Erstellen desClusters verwendet wurde.

Application user interfaces(Anwendungsbenutzeroberflächen)

Verwenden Sie diese Registerkarte, umpersistente YARN Timeline Server- undTez UI-Anwendungsdetails außerhalb desClusters anzuzeigen. Für Spark-Aufgabenkönnen Sie verfügbare Informationen zuAufträgen, Phasen und Executors aufgliedern.Weitere Informationen finden Sie im Anzeigendes Anwendungsverlaufs (p. 343).Anwendungsbenutzeroberflächen fürAnwendungen innerhalb des Clusters sindverfügbar, während der Cluster ausgeführt wird.

Überwachung Über diese Registerkarte können Sie Diagrammeanzeigen, die Hauptkennzahlen des Cluster-Betriebs über einen bestimmten angegebenenZeitraum darstellen. Sie können Daten aufCluster-Ebene, Daten auf Knotenebene undInformationen zu E/A und Datenspeicherunganzeigen.

337

Page 345: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Cluster Status and Details

Tab Informationen

Hardware (Hardware) Über diese Registerkarte können SieInformationen zu Knoten in Ihrem Clusteranzeigen, z. B. EC2 Instance-IDs, DNS-Namenund IP-Adressen und vieles mehr.

Ereignisse Über diese Registerkarte können Sie dasEreignisprotokoll für den Cluster anzeigen.Weitere Informationen finden Sie im Überwachender CloudWatch-Ereignisse (p. 355).

Schritte Über diese Registerkarte können Sie denStatus für Schritte einsehen, die Sie übermittelthaben, und auf entsprechende Protokolldateienzugreifen. Weitere Informationen zu denSchritten finden Sie unter Arbeiten mitSchritten unter Verwendung von AWS CLI undKonsole (p. 437).

Konfigurationen Über diese Registerkarte können Siebenutzerdefinierte Konfigurationsobjekteanzeigen, die für den Cluster übernommenwurden. Weitere Informationen zuKonfigurationsklassifizierungen finden Sie unterKonfigurieren von Anwendungen im AmazonEMR-Versionshinweise.

Bootstrap-Aktionen Über diese Registerkarte können Sie den Statusvon Bootstrap-Aktionen anzeigen, die der Clusterbeim Start ausführt. Bootstrap-Aktionen werdenfür benutzerdefinierte Softwareinstallationen underweiterte Konfigurationen verwendet. WeitereInformationen finden Sie im Create BootstrapActions to Install Additional Software (p. 132).

View Cluster Status Using the AWS CLIDie folgenden Beispiele zeigen, wie Sie Cluster-Details über die AWS CLI abrufen. Weitere Informationenzu verfügbaren Befehlen finden Sie in der AWS CLI-Befehlsreferenz für Amazon EMR. Sie könnenden Befehl describe-cluster verwenden, um Cluster-Details einschließlich Status, Hardware- undSoftwarekonfiguration, VPC-Einstellungen, Bootstrap-Aktionen, Instance-Gruppen usw. anzuzeigen. Dasfolgende Beispiel zeigt die Verwendung des Befehls describe-cluster, gefolgt von Beispielen für denBefehl list-clusters.

Example Anzeigen des Cluster-Status

Sie benötigen die Cluster-ID, um den Befehl describe-cluster zu verwenden. In diesem Beispiel wirdgezeigt, wie Sie eine Liste von innerhalb eines bestimmten Zeitraums erstellten Clustern abrufen und dannmit einer der zurückgegebenen Cluster-IDs weitere Informationen zum Status eines bestimmten Clustersauflisten.

Der folgende Befehl beschreibt den Cluster j-1K48XXXXXXHCB, die Sie durch Ihre Cluster-ID ersetzen.

aws emr describe-cluster --cluster-id j-1K48XXXXXXHCB

Die Ausgabe des Befehls ähnelt der folgenden:

338

Page 346: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Cluster Status and Details

{ "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1438281058.061, "CreationDateTime": 1438280702.498 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting for steps to run" } }, "Ec2InstanceAttributes": { "EmrManagedMasterSecurityGroup": "sg-cXXXXX0", "IamInstanceProfile": "EMR_EC2_DefaultRole", "Ec2KeyName": "myKey", "Ec2AvailabilityZone": "us-east-1c", "EmrManagedSlaveSecurityGroup": "sg-example" }, "Name": "Development Cluster", "ServiceRole": "EMR_DefaultRole", "Tags": [], "TerminationProtected": false, "ReleaseLabel": "emr-4.0.0", "NormalizedInstanceHours": 16, "InstanceGroups": [ { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1438281058.101, "CreationDateTime": 1438280702.499 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "CORE", "InstanceGroupType": "CORE", "Id": "ig-2EEXAMPLEXXP", "Configurations": [], "InstanceType": "m5.xlarge", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }, { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1438281023.879, "CreationDateTime": 1438280702.499 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "Id": "ig-2A1234567XP", "Configurations": [], "InstanceType": "m5.xlarge", "Market": "ON_DEMAND",

339

Page 347: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Cluster Status and Details

"RunningInstanceCount": 1 } ], "Applications": [ { "Version": "1.0.0", "Name": "Hive" }, { "Version": "2.6.0", "Name": "Hadoop" }, { "Version": "0.14.0", "Name": "Pig" }, { "Version": "1.4.1", "Name": "Spark" } ], "BootstrapActions": [], "MasterPublicDnsName": "ec2-X-X-X-X.compute-1.amazonaws.com", "AutoTerminate": false, "Id": "j-jobFlowID", "Configurations": [ { "Properties": { "hadoop.security.groups.cache.secs": "250" }, "Classification": "core-site" }, { "Properties": { "mapreduce.tasktracker.reduce.tasks.maximum": "5", "mapred.tasktracker.map.tasks.maximum": "2", "mapreduce.map.sort.spill.percent": "90" }, "Classification": "mapred-site" }, { "Properties": { "hive.join.emit.interval": "1000", "hive.merge.mapfiles": "true" }, "Classification": "hive-site" } ] }}

Example Auflisten von Clustern nach Erstellungsdatum

Zum Abrufen von in einem bestimmten Datenbereich erstellten Clustern verwenden Sie den Befehl list-clusters mit den Parametern --created-after und --created-before.

Mit dem folgenden Befehl werden alle Cluster aufgelistet, die zwischen dem 9. Oktober 2019 und dem12. Oktober 2019 erstellt wurden.

aws emr list-clusters --created-after 2019-10-09T00:12:00 --created-before 2019-10-12T00:12:00

340

Page 348: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideEnhanced Step Debugging

Example Auflisten von Clustern nach Status

Verwenden Sie zum Auflisten von Clustern nach Status den Befehl list-clusters mit dem Parameter--cluster-states. Gültige Cluster-Zustände: STARTEN, BOOTSTRAPPING, AUSFÜHREN, WARTEN,BEENDEN, BEENDET und BEENDET_MIT_FEHLER.

aws emr list-clusters --cluster-states TERMINATED

Sie können auch die folgenden Abkürzungsparameter verwenden, um alle Cluster in den angegebenenZuständen aufzulisten:

• --active filters clusters in the STARTING,BOOTSTRAPPING, RUNNING, WAITING, orTERMINATING states.

• --terminated filters clusters in the TERMINATED state.• --failed parameter filters clusters in the TERMINATED_WITH_ERRORS state.

Die folgenden Befehle geben dasselbe Ergebnis zurück.

aws emr list-clusters --cluster-states TERMINATED

aws emr list-clusters --terminated

Enhanced Step DebuggingWenn ein Amazon EMR-Schritt fehlschlägt und Sie Ihre Arbeit mit der Schritt-API-Operation mit einemAMI, Version 5.x oder höher, gesendet haben, kann Amazon EMR in einigen Fällen die Ursache desSchrittfehlers ermitteln und zusammen mit den Namen der entsprechenden Protokolldatei und einem Teilder Anwendungs-Stack-Trace-Informationen über die API zurückgeben. Die folgenden Fehler könnenidentifiziert werden:

• A common Hadoop error such as the output directory already exists, the input directory does not exist, oran application runs out of memory.

• Java errors such as an application that was compiled with an incompatible version of Java or run with amain class that is not found.

• An issue accessing objects stored in Amazon S3.

Diese Informationen stehen über die API-Operationen DescribeStep und ListSteps zur Verfügung. Das FeldFailureDetails der StepSummary, das von diesen Operationen zurückgegeben wird. Für den Zugriff auf dieFailureDetails-Informationen, verwenden Sie die AWS-Befehlszeilenschnittstelle oder AWS SDK.

So zeigen Sie Fehlerdetails in der AWS-Konsole an

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Cluster List und wählen Sie einen Cluster aus.3. Wählen Sie das Pfeilsymbol neben den einzelnen Schritten, um weitere Details anzuzeigen.

Wenn der Schritt fehlgeschlagen ist und Amazon EMR die Ursache ermitteln kann, sehen Sie dieFehlerdetails.

341

Page 349: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideEnhanced Step Debugging

So zeigen Sie Fehlerdetails mithilfe der AWS-CLI an

• Um Fehlerdetails für einen Schritt mit der AWS-Befehlszeilenschnittstelle (CLI) abzurufen, verwendenSie den "describe-step"-Befehl.

aws emr describe-step –cluster-id j-1K48XXXXXHCB –step-id s-3QM0XXXXXM1W

Die Ausgabe sieht etwa folgendermaßen aus.

{ "Step": { "Status": { "FailureDetails": { "LogFile": "s3://myBucket/logs/j-1K48XXXXXHCB/steps/s-3QM0XXXXXM1W/stderr.gz", "Message": "org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory s3://myBucket/logs/beta already exists", "Reason": "Output directory already exists." }, "Timeline": { "EndDateTime": 1469034209.143, "CreationDateTime": 1469033847.105, "StartDateTime": 1469034202.881 }, "State": "FAILED", "StateChangeReason": {} }, "Config": { "Args": [ "wordcount", "s3://myBucket/input/input.txt", "s3://myBucket/logs/beta" ], "Jar": "s3://myBucket/jars/hadoop-mapreduce-examples-2.7.2-amzn-1.jar", "Properties": {} }, "Id": "s-3QM0XXXXXM1W", "ActionOnFailure": "CONTINUE",

342

Page 350: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen des Anwendungsverlaufs

"Name": "ExampleJob" }}

Anzeigen des AnwendungsverlaufsSie können die Spark History Server- und YARN Timeline Service-Anwendungsdetails auf derRegisterkarte Application user interfaces (Anwendungsbenutzeroberflächen) auf der Detailseiteeines Clusters in der Konsole anzeigen. Der Amazon EMR-Anwendungsverlauf erleichtert Ihnen dieProblembehandlung und Analyse von aktiven Aufgaben und des Aufgabenverlaufs.

Die Registerkarte Application user interfaces (Anwendungsbenutzeroberflächen) bietet verschiedeneAnzeigeoptionen:

• Zugriff innerhalb des Clusters auf persistente Anwendungsbenutzeroberflächen – Ab Amazon EMRVersion 5.25.0 stehen persistente Verknüpfungen für Anwendungsbenutzeroberflächen für Sparkzur Verfügung. Mit Amazon EMR Version 6.0.0 und höher verfügen Tez UI und der YARN TimelineServer auch über persistente Anwendungsbenutzeroberflächen. Der YARN Timeline Server und dieTez UI sind Open-Source-Anwendungen, die Metriken für aktive und beendete Cluster bereitstellen.Die Benutzeroberfläche von Spark enthält Details zu Planungsphasen und -aufgaben, RDD-Größenund Speichernutzung, Umgebungsinformationen und Informationen zu den laufenden Executoren. Dadie persistente Anwendung UIs außerhalb des Clusters ausgeführt wird, stehen Cluster-Informationenund -Protokolle nach dem Beenden einer Anwendung 30 Tage lang zur Verfügung. Im Gegensatz zuAnwendungsbenutzeroberflächen innerhalb eines Clusters ist für persistente Anwendungen UIs nichterforderlich, dass Sie einen Webproxy über eine SSH-Verbindung einrichten.

• Anwendungsbenutzeroberflächen innerhalb des Clusters – Es gibt eine Vielzahl von Anwendungsverlauf-Benutzeroberflächen, die auf einem Cluster ausgeführt werden können. Benutzeroberflächen innerhalbeines Clusters werden auf dem Master-Knoten gehostet und erfordern, dass Sie eine SSH-Verbindungzum Webserver einrichten. Anwendungsbenutzeroberflächen innerhalb eines Clusters speichern denAnwendungsverlauf für eine Woche nach dem Beenden einer Anwendung.

• High-Level-Anwendungsverlaufs – Mit Amazon EMR Version 5.8.0 oder höher können Sie eineZusammenfassung des Anwendungsverlaufs in der EMR-Konsole anzeigen, einschließlichSchlüsselmetriken für Phasenaufgaben und Executoren. Die Zusammenfassung desAnwendungsverlaufs steht für alle YARN Anwendungen zur Verfügung. Zusätzliche Details werden fürSpark-Anwendungen bereitgestellt, aber diese Details sind nur eine Teilmenge der Informationen, dieüber die Benutzeroberfläche von Spark verfügbar sind.

Anzeigen von persistenten AnwendungsbenutzeroberflächenAb Amazon EMR Version 5.25.0 können Sie eine Verbindung zu den persistenten Spark HistoryServer-Anwendungsdetails herstellen, die außerhalb des Clusters gehostet werden, indem Sie dieSeite Summary (Zusammenfassung) des Clusters oder die Registerkarte Application user interfaces(Anwendungsbenutzeroberflächen) in der Konsole verwenden. Persistente Anwendungsschnittstellen fürTez UI und YARN Timeline Server sind ab Amazon EMR Version 5.30.1 verfügbar. Der Zugriff auf denpersistenten Anwendungsverlauf mit einem Klick bietet folgende Vorteile:

• Sie können aktive Aufgaben und den Aufgabenverlauf schnell analysieren und Probleme damit beheben,ohne einen Web-Proxy über eine SSH-Verbindung einzurichten.

• Sie können auf den Anwendungsverlauf und relevante Protokolldateien für aktive und beendete Clusterzugreifen. Die Protokolle stehen nach dem Ende der Anwendung 30 Tage lang zur Verfügung.

Wählen Sie auf der Registerkarte Application user interfaces (Anwendungsbenutzeroberflächen) oder derSeite Summary (Zusammenfassung) des Clusters in der Amazon EMR 5.30.1- oder 6.x-Konsole den Link

343

Page 351: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen des Anwendungsverlaufs

YARN timeline server (YARN-Timeline-Server), Tez UI (Zez-Benutzeroberfläche) oder Spark history server(Spark-Verlaufserver) aus.

Das Anwendungs-UI wird in einer neuen Browserregisterkarte geöffnet. Weitere Informationen finden Sieunter Überwachung und Instrumentierung.

Sie können YARN-Containerprotokolle über die Links auf dem Spark History Server, YARN Timeline Serverund Tez UI anzeigen.

Note

Um über Spark History Servers, YARN Timeline Server und Tez UI auf YARN-Container-Protokolle zugreifen zu können, müssen Sie die Protokollierung in Amazon S3 für Ihren Clusteraktivieren. Wenn die Protokollierung nicht aktiviert ist, funktionieren die Links zu den YARNContainer-Protokollen nicht.

Protokollsammlung

Um den Zugriff auf persistente Anwendungsbenutzeroberflächen mit einem Klick zu ermöglichen, werdenvon Amazon EMR zwei Arten von Protokollen gesammelt:

• Anwendungsereignisprotokolle werden in einem EMR-System-Bucket erfasst. Die Ereignisprotokollewerden im Ruhezustand mittels serverseitiger Verschlüsselung mit Amazon S3 Managed Keys (SSE-S3) verschlüsselt. Wenn Sie ein privates Subnetz für Ihren Cluster verwenden, stellen Sie sicher, dassSie “arn:aws:s3:::prod.MyRegion.appinfo.src/*” in die Ressourcenliste der Amazon S3-Richtlinie für das private Subnetz aufnehmen. Weitere Informationen finden Sie unter Amazon S3-Mindestrichtlinie für privates Subnetz.

• YARN-Container-Protokolle werden in einem Amazon S3-Bucket gesammelt, den Sie besitzen. Siemüssen die Protokollierung für Ihren Cluster aktivieren, um auf YARN-Container-Protokolle zugreifenzu können. Weitere Informationen finden Sie unter Konfigurieren der Cluster-Protokollierung und desDebuggings.

Wenn Sie diese Funktion aus Datenschutzgründen deaktivieren müssen, können Sie den Daemon mithilfeeines Bootstrap-Skripts beim Erstellen eines Clusters stoppen, wie im folgenden Beispiel gezeigt wird.

aws emr create-cluster --name "Stop Application UI Support" --release-label emr-5.31.0 --applications Name=Hadoop Name=Spark --ec2-attributes KeyName=keyname --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=CORE,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=TASK,InstanceCount=1,InstanceType=m3.xlarge --use-default-roles --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/run-if,Args=["instance.isMaster=true","echo Stop Application UI | sudo tee /etc/apppusher/run-apppusher; sudo systemctl stop apppusher || exit 0"]

Nachdem Sie dieses Bootstrap-Skript ausgeführt haben, sammelt Amazon EMR keine Spark HistoryServer- oder YARN Timeline Server-Ereignisprotokolle im EMR-System-Bucket. Auf der RegisterkarteApplication user interfaces (Anwendungsbenutzeroberflächen) werden keine Informationen zum

344

Page 352: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen des Anwendungsverlaufs

Anwendungsverlauf verfügbar sein und Sie verlieren den Zugriff auf alle Anwendungsbenutzeroberflächenüber die Konsole.

Überlegungen und Einschränkungen

Der Ein-Klick-Zugriff auf persistente Anwendungsbenutzeroberflächen hat derzeit folgendeEinschränkungen:

• Es gibt mindestens zwei Minuten Verzögerung, wenn die Anwendungsdetails auf der Benutzeroberflächedes Spark History Servers angezeigt werden.

• Diese Funktion funktioniert nur, wenn sich das Ereignisprotokollverzeichnis für die Anwendung in HDFSbefindet. Amazon EMR speichert Ereignisprotokolle standardmäßig in einem Verzeichnis von HDFS.Wenn Sie das Standardverzeichnis in ein anderes Dateisystem ändern, beispielsweise Amazon S3,funktioniert die Funktion nicht.

• Diese Funktion ist derzeit nicht für EMR-Cluster mit mehreren Master-Knoten oder für EMR-Cluster mitAWS Lake Formation-Integration verfügbar.

• Um den Zugriff auf persistente Anwendungsbenutzeroberflächen mit einem Klick zu ermöglichen,müssen Sie über die Berechtigung für die DescribeCluster-Aktion für EMR verfügen. Wenn Sie dieBerechtigung eines IAM-Prinzipals für diese Aktion verweigern, dauert es etwa fünf Minuten, bis dieBerechtigungsänderung propagiert wird.

• Wenn Sie Anwendungen in einem laufenden Cluster neu konfigurieren, ist der Anwendungsverlauf nichtüber das Anwendungs-UI verfügbar.

• Die Anzahl der aktiven Anwendungen für jedes AWS-Konto darf UIs 50 nicht überschreiten.• Sie können auf die Anwendung UIs über die Konsole in den Regionen USA Ost (Nord-Virginia und

Ohio), USA West (Nordkalifornien und Oregon), Kanada (Zentral), EU (Frankfurt, Irland, London undParis), Asien-Pazifik (Mumbai, Osaka, Seoul, Singapur, Sydney und Tokio) und Südamerika (Sao Paulo)zugreifen.

Anzeigen von Anwendungsbenutzeroberflächen innerhalb einesClustersAnwendungsbenutzeroberflächen innerhalb eines Clusters werden auf dem Master-Knoten gehostet underfordern einen SSH-Tunnel zum lokalen Webserver des Master-Knotens. Weitere Informationen undAnweisungen zum Einrichten eines SSH-Tunnels finden Sie unter Anzeigen von auf Amazon EMR-Clusterngehosteten Webschnittstellen (p. 390).

Mit Ausnahme des Spark History Server-, YARN Timeline Server- und Hive-Anwendungen kann derAnwendungsverlauf auf dem Cluster nur angezeigt werden, während der Cluster ausgeführt wird.

Wählen Sie auf der Registerkarte Application user interfaces (Anwendungsbenutzeroberflächen)oder auf der Seite Summary (Zusammenfassung) des Clusters den Link Application user interfaces(Anwendungsbenutzeroberflächen) für Ihren Cluster in der Amazon EMR 6.x-Konsole aus, den Sieanzeigen möchten.

345

Page 353: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen des Anwendungsverlaufs

Anzeigen einer Zusammenfassung des AnwendungsverlaufsAb Amazon EMR Version 5.8.0 können Sie einen High-Level-Anwendungsverlauf auf der RegisterkarteApplication user interfaces (Anwendungsbenutzeroberflächen) in der Amazon EMR-Konsole anzeigen.Amazon EMR behält die Zusammenfassung des Anwendungsverlaufs bis zu sieben Tage nach Abschlusseiner Anwendung bei.

In der folgenden Abfolge wird ein Drilldown durch eine Spark- oder YARN-Anwendung in dieAufgabendetails unter Verwendung von Application user interfaces (Anwendungsbenutzeroberflächen)auf einer Clusterdetailseite veranschaulicht. Sie können in der Liste Clusters (Cluster) die Option Namefür einen Cluster auswählen, um Details zu diesem anzuzeigen. Um Informationen zu YARN-Container-Protokollen anzeigen zu können, müssen Sie die Protokollierung für Ihren Cluster aktivieren. WeitereInformationen finden Sie unter Konfigurieren der Cluster-Protokollierung und des Debuggings. Für denSpark-Anwendungsverlauf sind die in der Zusammenfassungstabelle bereitgestellten Informationen nureine Teilmenge der Informationen, die über die Benutzeroberfläche des Spark History-Servers verfügbarsind.

Im folgenden Beispiel wird auf der Registerkarte Application user interfaces(Anwendungsbenutzeroberflächen) eine Zeile erweitert, um die Diagnosezusammenfassung für eine Spark-Anwendung anzuzeigen, und der Link Application ID (Anwendungs-ID) wird ausgewählt, um die Detailseiner anderen Anwendung anzuzeigen.

346

Page 354: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen des Anwendungsverlaufs

Im unteren Beispiel wird die Beschreibung von Aufgabe 9 in der Registerkarte Jobs (Aufgaben) der Detailsfür YARN application (YARN-Anwendung) ausgewählt, um die Details zu Aufgabe 9 anzuzeigen.

347

Page 355: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen des Anwendungsverlaufs

Auf der Detailseite für Aufgabe 9 werden Informationen zu den einzelnen Aufgabenphasen erweitert unddann wird Description (Beschreibung) für Phase 29 ausgewählt, um Details zu Phase 29 anzuzeigen.

Auf der Detailseite Stage 29 (Phase 29) werden die wichtigsten Metriken für Phasenaufgaben undExecutors angezeigt und die Protokolle für Aufgaben und Executors können über Links angezeigt werden.

348

Page 356: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Log Files

View Log FilesSowohl Amazon EMR als auch Hadoop erstellen Protokolldateien, die Aufschluss über den jeweiligenStatus des Clusters geben. Standardmäßig werden diese Dateien im Verzeichnis /mnt/var/log/ dem Master-Knoten gespeichert. Abhängig von der Konfiguration Ihres Clusters beim Start können diese Protokolleauch in Amazon S3 archiviert und über das grafische Debugging-Tool angezeigt werden.

Es gibt viele Arten von Protokollen, die auf dem Master-Knoten gespeichert werden. Amazon EMRschreibt Schritt- und Bootstrap-Aktions- und Instance-Status-Protokolle. Apache Hadoop erstelltProtokolle mit Daten zur Verarbeitung von Aufträgen, Aufgaben und versuchten Aufgaben. Hadoopprotokolliert außerdem Protokolle seiner Daemons. Weitere Informationen zu den von Hadoop erstelltenProtokollen finden Sie unter http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html.

Themen• View Log Files on the Master Node (p. 349)• View Log Files Archived to Amazon S3 (p. 351)• View Log Files in the Debugging Tool (p. 352)

View Log Files on the Master NodeDie folgende Tabelle listet einige der Protokolldateien auf, die auf dem Master-Knoten zu finden sind.

Ort Description (Beschreibung)

/mnt/var/log/bootstrap-actions Protokolle, die bei der Verarbeitung von Bootstrap-Aktionen geschrieben werden.

349

Page 357: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Log Files

Ort Description (Beschreibung)

/mnt/var/log/hadoop-state-pusher Protokolle, die vom Hadoop-Status-Push-Prozessgeschrieben werden.

/mnt/var/log/instance-controller (Amazon EMR4.6.0 und früher)

/emr/instance-controller (Amazon EMR 4.7.0 undhöher)

Instance-Controller-Protokolle.

/mnt/var/log/instance-state instance-Statusprotokolle. Diese enthaltenInformationen über die CPU, den Arbeitsspeicherund Garbage Collector-Threads des Knotens.

/mnt/var/log/service-nanny (Amazon EMR 4.6.0und früher)

/emr/service-nanny (Amazon EMR 4.6.0 undhöher)

Protokolle, die vom Service-Nanny-Prozessgeschrieben werden.

/mnt/var/log/application Protokolle, die sich auf eine bestimmte Anwendungbeziehen, wie z. B. Hadoop, Spark oder Hive.

/mnt/var/log/hadoop/steps/N Schrittprotokolle, die Informationen über dieVerarbeitung des Schritts enthalten. Der Wertvon N zeigt den Stepid an, der von Amazon EMR.Ein Cluster hat beispielsweise zwei Schritte:s-1234ABCDEFGH und s-5678IJKLMNOP. Dererste Schritt befindet sich in /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/ und denzweiten Schritt /mnt/var/log/hadoop/steps/s-5678IJKLMNOP/.

Die von Amazon EMR erstellten Schrittprotokollebeinhalten das Folgende.

• controller: Informationen über die Bearbeitungdes Schrittes. Wenn Ihr Schritt beim Ladenfehlschlägt, finden Sie den Stacktrace in dieserLog-Datei.

• syslog: beschreibt die Durchführung vonHadoop-Aufträgen im Schritt.

• stderr: Standardfehlerkanal für Hadoop währendder Bearbeitung des Schrittes.

• stdout: Standardausgabekanal für Hadoopwährend der Bearbeitung des Schrittes.

Dient zum Anzeigen von Protokolldateien auf dem Master-Knoten

1. Verwenden Sie SSH für die Verbindung mit dem Master-Knoten wie in Verbinden mit dem Master-Knoten über SSH (p. 385) beschrieben.

2. Navigieren Sie zu dem Verzeichnis mit den Protokolldateiinformationen, die Sie anzeigen möchten.Die oben stehenden Tabelle gibt eine Liste der verfügbaren Protokolldateien mit dem entsprechendenSpeicherort an. Das folgende Beispiel zeigt den Befehl für die Navigation zum Schrittprotokoll mit einerID, s-1234ABCDEFGH.

350

Page 358: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Log Files

cd /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/

3. Verwenden Sie einen Datei-Viewer Ihrer Wahl, um die Protokolldatei anzuzeigen. Im folgendenBeispiel wird der Linux-Befehl less verwendet, um die Protokolldatei controller anzuzeigen.

less controller

View Log Files Archived to Amazon S3Standardmäßig archivieren mit der Konsole gestartete Amazon EMR-Cluster Protokolldateien in AmazonS3 automatisch. Sie können einen eigenen Protokollpfad angeben, und zulassen, dass die Konsoleautomatisch einen Protokollpfad generiert. Für Cluster, die mit der CLI oder API gestartet wurden, müssenSie die Archivierung des Amazon S3-Protokolls manuell konfigurieren.

Wann Amazon EMR ist zum Archivieren von Protokolldateien konfiguriert Amazon S3, speichert dieDateien an dem von Ihnen angegebenen S3-Standort im /JobFlowId/ Ordner, wo JobFlowId ist dieCluster-Kennung.

Die folgende Tabelle listet einige der Protokolldateien auf, die in Amazon S3 zu finden sind.

Ort Description (Beschreibung)

/JobFlowIdKnoten Knotenprotokolle, einschließlich Bootstrap-Aktion,Instance-Status und Anwendungsprotokollenfür den Knoten. Die Protokolle für jeden Knotenwerden in einem Ordner mit der Bezeichnungder Kennung der EC2 Instance dieses Knotensgespeichert.

/JobFlowIdKnoteninstanceId/application Die Protokolle, die von einzelnen Anwendungenoder Daemons, die einer Anwendung zugeordnetsind, erstellt wurden. Das Hive-Server-Protokollbefindet sich beispielsweise im VerzeichnisJobFlowId/node/instanceId/hive/hive-server.log.

/JobFlowIdstepsN/ Schrittprotokolle, die Informationen über dieVerarbeitung des Schritts enthalten. Der Wertvon N zeigt den Stepid an, der von Amazon EMR.Ein Cluster hat beispielsweise zwei Schritte:s-1234ABCDEFGH und s-5678IJKLMNOP. Dererste Schritt befindet sich in /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/ und denzweiten Schritt /mnt/var/log/hadoop/steps/s-5678IJKLMNOP/.

Die von Amazon EMR erstellten Schrittprotokollebeinhalten das Folgende.

• controller: Informationen über die Bearbeitungdes Schrittes. Wenn Ihr Schritt beim Ladenfehlschlägt, finden Sie den Stacktrace in dieserLog-Datei.

• syslog: beschreibt die Durchführung vonHadoop-Aufträgen im Schritt.

351

Page 359: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Log Files

Ort Description (Beschreibung)• stderr: Standardfehlerkanal für Hadoop während

der Bearbeitung des Schrittes.• stdout: Standardausgabekanal für Hadoop

während der Bearbeitung des Schrittes.

/JobFlowIdcontainers/ Anwendungscontainerprotokolle. Die Protokollefür jede YARN-Anwendung werden an diesenSpeicherorten abgelegt.

/JobFlowId/hadoop-mapreduce/ Die Protokolle, die Informationen zuKonfigurationsdetails und Auftragsverlauf vonMapReduce-Aufträgen enthalten.

So zeigen Sie archivierte Protokolldateien in Amazon S3 mithilfe der Konsole an

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon S3-Konsole unterhttps://console.aws.amazon.com/s3/.

2. Öffnen Sie den S3-Bucket, den Sie angegeben haben, als Sie den Cluster für die Archivierung vonProtokolldateien in Amazon S3 konfiguriert haben.

3. Navigieren Sie zu der Protokolldatei, die die Informationen enthält, die angezeigt werden sollen. Dieoben stehenden Tabelle gibt eine Liste der verfügbaren Protokolldateien mit dem entsprechendenSpeicherort an.

4. Doppelklicken Sie auf eine Protokolldatei, um sie im Browser anzusehen.

Wenn Sie die Protokolldateien nicht in der Amazon S3-Konsole anzeigen möchten, können Sie die Dateienaus Amazon S3 mit einem Tool wie z. B. dem Amazon S3-Organizer-Plug-in für den Firefox-Webbrowserauf Ihren lokalen Computer herunterladen oder eine Anwendung zum Abrufen der Objekte aus AmazonS3 entwickeln. Weitere Informationen finden Sie unter Objekte abrufen im Entwicklerhandbuch für AmazonSimple Storage Service.

View Log Files in the Debugging ToolAmazon EMR aktiviert das Debugging-Tool nicht automatisch. Sie müssen diese Funktion beim Starten desClusters konfigurieren.

So zeigen Sie mithilfe der Konsole Cluster-Protokolle an

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie auf der Seite Cluster List (Cluster-Liste) das Detailsymbol neben dem gewünschten

Cluster aus.

Die Seite Cluster Details (Cluster-Details) wird daraufhin angezeigt. Im Bereich Steps (Schritte) zeigendie Links rechts neben den einzelnen Schritten die verschiedenen Arten von Protokollen an, die für denSchritt verfügbar sind. Diese Protokolle werden von Amazon EMR generiert.

3. Um eine Liste der Hadoop-Aufträge anzuzeigen, die einem angegebenen Schritt zugeordnet sind,wählen Sie den Link View Jobs (Aufträge anzeigen) rechts neben dem Schritt aus.

4. Um eine Liste der Hadoop-Aufgaben anzuzeigen, die einem angegebenen Auftrag zugeordnet sind,wählen Sie den Link View Tasks (Aufgaben anzeigen) rechts neben dem Auftrag aus.

352

Page 360: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Cluster Instances in Amazon EC2

5. Um eine Liste der Versuche anzuzeigen, die eine bestimmte Aufgabe ausgeführt wurde, um sieabzuschließen, wählen Sie den Link View Attempts (Versuche anzeigen) rechts neben der Aufgabeaus.

6. Um die von einem Aufgabenversuch generierten Protokolle anzuzeigen, wählen Sie die Links stderr,stdout und syslog rechts neben dem Aufgabenversuch aus.

Das Debugging-Tool zeigt Links zu den Protokolldateien an, nachdem Amazon EMR die Protokolldateienin Ihren Bucket in Amazon S3 hochgeladen hat. Da Protokolldateien in Amazon S3 alle 5 Minutenhochgeladen werden, kann es einige Minuten dauern, bis das Hochladen der Protokolldatei abgeschlossenist, nachdem der Schritt abgeschlossen wurde.

Amazon EMR aktualisiert regelmäßig den Status von Hadoop-Aufträgen, Aufgaben und versuchtenAufgaben im Debugging-Tool. Sie können auf Refresh List (Liste aktualisieren) in den Debugging-Bereichen klicken, um den aktuellen Status dieser Elemente abzurufen.

View Cluster Instances in Amazon EC2Um Ihnen bei der Verwaltung Ihrer Ressourcen zu unterstützen, ermöglicht Amazon EC2 es Ihnen, IhrenRessourcen Metadaten in Form von Tags zuzuweisen. Jedes Amazon EC2-Tag besteht aus einemSchlüssel und einem Wert. Mit Tags können Sie Ihre Amazon EC2-Ressourcen auf unterschiedliche Weisekategorisieren: beispielsweise nach Zweck, Eigentümer oder Umgebung.

Sie können die Ressourcen auf Grundlage der Tags suchen und filtern. Die Ihrem AWS-Kontozugewiesenen Tags, stehen nur Ihnen zur Verfügung. Andere Konten, die die Ressourcen mit Ihren Kontoteilen, können Ihre Tags nicht anzeigen.

353

Page 361: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Amazon EMR-markiert automatisch die gestarteten einzelnen EC2-Instances mit Schlüssel-Wert-Paaren,die den Cluster und die Instance-Gruppe identifizieren, zu der die Instance gehört. Dadurch ist es sehreinfach, Ihre EC2-Instances zu filtern, z. B. um nur die Instanzen eines bestimmten Clusters oder alleaktuell ausgeführten Instances in der Task-Instance-Gruppe anzuzeigen. Dies ist besonders dann nützlich,wenn Sie mehrere Clusters gleichzeitig ausführen oder eine große Anzahl an EC2-Instances verwalten.

Dies sind die vordefinierten Schlüssel-Wert-Paare, die Amazon EMR zuordnet:

Schlüssel Wert

aws:elasticmapreduce:job-flow-id <job-flow-identifier>

aws:elasticmapreduce:instance-group-role <group-role>

Die Werte werden folgendermaßen näher definiert:

• The <job-flow-identifier> is the ID of the cluster the instance is provisioned for. It appears in the format j-XXXXXXXXXXXXX.

• The <group-role> is one of the following values: master, core, or task. These values correspond to themaster instance group, core instance group, and task instance group.

Sie können das Anzeigen und Filtern anhand der Tags ausführen, die Amazon EMR hinzufügt. WeitereInformationen finden Sie unter Verwenden von Tags im Amazon EC2-Benutzerhandbuch für Linux-Instances. Da die Tags von Amazon EMR sind Systemtags und können nicht bearbeitet oder gelöschtwerden, die Abschnitte zum Anzeigen und Filtern von Tags sind am relevantesten.

Note

Amazon EMR fügt der EC2-Instance dann Tags hinzu, wenn ihr Status auf "In Ausführung"aktualisiert wird. Wenn zwischen dem Zeitpunkt, an dem die EC2-Instance bereitgestellt wird, unddem Zeitpunkt, an dem der Status auf "In Ausführung" wechselt, eine Wartezeit auftritt, werdendie von Amazon EMR gesetzten Tags nicht angezeigt, bis die Instanz gestartet wird. Wenn keineTags angezeigt werden, warten Sie einige Minuten und aktualisieren Sie die Ansicht.

CloudWatch-Ereignisse und -MetrikenAnhand der Ereignisse und Metriken können Sie die Aktivitäten und den Zustand eines Amazon EMR-Clusters nachverfolgen. Zeigen Sie in der Amazon EMR-Konsole Ereignisse und Metriken eines einzelnenClusters oder die Ereignisse für alle Cluster in einer Region an. Sie können mit CloudWatch-Ereignisseeine Aktion definieren, die ausgeführt wird, wenn Amazon EMR ein Ereignis generiert, das dem von Ihnenfestgelegten Muster entspricht. Darüber hinaus können Sie CloudWatch auch zur Überwachung vonMetriken verwenden.

Ereignisse sind nützlich zur Überwachung bestimmter Vorgänge in einem Cluster, beispielsweise wenn sichder Zustand eines Clusters vom Starten zum Ausführen ändert. Metriken sind nützlich zur Überwachungeines bestimmten Werts, beispielsweise dem Prozentsatz des verfügbaren Speicherplatzes, der von HDFSin einem Cluster verbraucht wird.

Weitere Informationen über CloudWatch-Ereignisse finden Sie im Benutzerhandbuch für AmazonCloudWatch Events. Weitere Informationen zu CloudWatchMetriken finden Sie unter Verwenden vonAmazon CloudWatch-Metriken und Erstellen von Amazon CloudWatch-Alarmen im Amazon CloudWatch-Benutzerhandbuch.

Themen• Überwachen der CloudWatch-Ereignisse (p. 355)• Überwachen der Metriken mit CloudWatch (p. 364)

354

Page 362: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Überwachen der CloudWatch-EreignisseAmazon EMR verfolgt Ereignisse und speichert die Informationen für bis zu sieben Tage. Änderungen amStatus von Clustern, Instance-Gruppen, Auto Scaling-Richtlinien und -schritten führt dazu, dass ein Ereignisaufgezeichnet wird. Jedes Ereignis enthält Informationen über Datum und Uhrzeit, zu denen das Ereignisauftrat, sowie weitere Details, wie z. B. die betroffene Cluster- oder Instance-Gruppe.

Die folgende Tabelle enthält Amazon EMR-Ereignisse zusammen mit den Änderungen hinsichtlich desZustands oder des Status, auf den das Ereignis hinweist, sowie den Schweregrad des Ereignisses als auchEreignismeldungen. Jedes Ereignis wird als JSON-Objekt dargestellt, das automatisch an den Ereignis-Stream gesendet wird. Das JSON-Objekt enthält weitere Details zum Ereignis. Das JSON-Objekt istbesonders wichtig, wenn Sie für die Verarbeitung von Ereignissen Regeln mit CloudWatch-Ereignissefestlegen, da die Regeln versuchen, den Mustern im JSON-Objekt zu entsprechen. Weitere Informationenfinden Sie unter Ereignisse und Ereignismuster und Amazon EMR-Ereignisse im Benutzerhandbuch fürAmazon CloudWatch Events.

Cluster-Ereignisse

Status oder Statusänderung Schweregrad Meldung

STARTING INFO Amazon EMR-ClusterClusterId (ClusterName)wurde angefordert um Time undwird erstellt.

STARTING INFO Note

Gilt nur für Clustermit der Instance-Flottenkonfiguration undmehreren Subnetzen,die innerhalb einer VPCausgewählt wurden.

Amazon EMR-ClusterClusterId (ClusterName)wird in Subnetz erstellt(SubnetName) in derVPC (VPCName) in derVerfügbarkeitszone(AvailabilityZoneID), dieaus den angegebenen VPC-Optionen ausgewählt wurde.

STARTING INFO Note

Gilt nur für Clustermit der Instance-Flottenkonfiguration undmehreren AvailabilityZones, die innerhalbEC2-Classic ausgewähltwurden.

Amazon EMR-ClusterClusterId (ClusterName)

355

Page 363: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Status oder Statusänderung Schweregrad Meldungwird in der Availability Zone(AvailabilityZoneID),die aus den angegebenenVerfügbarkeitszonenoptionenausgewählt wurde.

RUNNING INFO Amazon EMR-ClusterClusterId (ClusterName)hat mit der Ausführung vonSchritten bei begonnen Time.

WAITING INFO Amazon EMR-ClusterClusterId (ClusterName)wurde erstellt bei Time und isteinsatzbereit.

—oder—

Amazon EMR-ClusterClusterId (ClusterName)alle ausstehenden Schritte amabgeschlossen Time.

Note

Ein Cluster im WAITING-Status kann trotzdemAufträge bearbeiten.

TERMINATED Der Schweregrad istabhängig vom Grund für dieStatusänderung, wie nachfolgenddargestellt:

• CRITICAL wenn derCluster mit einem derfolgenden Gründe für dieStatusänderung beendetwurde: INTERNAL_ERROR, ,und Sie haben die MöglichkeitVALIDATION_ERROR, , undSie haben die MöglichkeitINSTANCE_FAILURE, , undSie haben die MöglichkeitBOOTSTRAP_FAILURE, oderSTEP_FAILURE.

• INFO wenn der Cluster miteinem der folgenden Gründefür die Statusänderungbeendet wurde:USER_REQUEST oderALL_STEPS_COMPLETED.

Amazon EMR-ClusterClusterId (ClusterName)wurde beendet um Timemit einem Grund dafür,StateChangeReason:Code.

356

Page 364: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Status oder Statusänderung Schweregrad Meldung

TERMINATED_WITH_ERRORS CRITICAL Amazon EMR-ClusterClusterId (ClusterName)wurde mit Fehlern bei beendetTime mit einem Grund dafür,StateChangeReason:Code.

Instance-FlottenereignisseNote

Die Instance-Flottenkonfiguration ist nur in Amazon EMR-Versionen 4.8.0 und höher verfügbar,nicht in 5.0.0 und 5.0.3.

Status oder Statusänderung Schweregrad Meldung

Von PROVISIONING um zusehen, WAITING

INFO Bereitstellung für Instance-Flotte InstanceFleetIDin (in) Amazon EMR bündelnClusterId (ClusterName)ist abgeschlossen. Bereitstellunggestartet um Time und nahmNum Minuten. Die Instance-Flotte hat jetzt die On-Demand-Kapazität von Num und Spot-Kapazität von Num. (z. B.. DieOn-Demand-Zielkapazität warNum, und die Spot-Zielkapazitätwar Num.

Von WAITING um zu sehen,RESIZING

INFO Eine Größenänderungfür die Instance-FlotteInstanceFleetID im AmazonEMR-Cluster ClusterId(ClusterName) gestartetum Time. (z. B. Die Größe derInstance-Flotte wird von einerOn-Demand-Kapazität vongeändert Num zu einem Ziel vonNumund von einer Spot-Kapazitätvon Num zu einem Ziel von Num.

Von RESIZING um zu sehen,WAITING

INFO Die Größenänderungsoperationfür die Instance-FlotteInstanceFleetID imAmazon EMR-ClusterClusterId (ClusterName)ist abgeschlossen. DieGrößenänderung begann umTime und nahm Num Minuten.Die Instance-Flotte hat jetztdie On-Demand-Kapazität vonNum und Spot-Kapazität vonNum. (z. B.. Die On-Demand-

357

Page 365: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Status oder Statusänderung Schweregrad MeldungZielkapazität war Num und dieZiel-Spot-Kapazität Num.

Von RESIZING um zu sehen,WAITING

WARN Die Größenänderungsoperationfür die Instance-FlotteInstanceFleetID im AmazonEMR-Cluster ClusterId(ClusterName) hat dieZeitüberschreitung erreicht undgestoppt. Die Größenänderungbegann um Time und beendetnach Num Minuten. Die Instance-Flotte hat jetzt die On-Demand-Kapazität von Num und Spot-Kapazität von Num. (z. B.. DieOn-Demand-Zielkapazität warNum und die Ziel-Spot-KapazitätNum.

SUSPENDED ERROR Instance-Flotte (Instance-Flotte InstanceFleetIDin (in) Amazon EMR bündelnClusterId (ClusterName)wurde festgenommen beiTime aus folgendem Grund:ReasonDesc.

RESIZING WARNING Die Größenänderungsoperationfür die Instance-FlotteInstanceFleetID in(in) Amazon EMR bündelnClusterId (ClusterName)ist aus folgendem Grund hängengeblieben: ReasonDesc.

WAITING oder RUNNING INFO Eine Größenänderungfür die Instance-FlotteInstanceFleetID in(in) Amazon EMR bündelnClusterId (ClusterName)wurde initiiert von Entity umTime.

Instance-Gruppen-Ereignisse

Status oder Statusänderung Schweregrad Meldung

Von RESIZING um zu sehen,RUNNING

INFO Die Größenänderungsoperationfür die Instance-GruppeInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)ist abgeschlossen. Es hat jetzteine Instance-Anzahl von Num.

358

Page 366: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Status oder Statusänderung Schweregrad Meldung(z. B.. Die Größenänderungbegann um Time und nahm NumMinuten zum Ausfüllen von.

Von RUNNING um zu sehen,RESIZING

INFO Eine Größenänderungfür die Instance-GruppeInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)gestartet um Time. (z. B.. DieGröße wird von einer Instance-Anzahl von geändert Num to Num.

SUSPENDED ERROR InstanzgruppeInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)wurde festgenommen beiTime aus folgendem Grund:ReasonDesc.

RESIZING WARNING Die Größenänderungsoperationfür die Instance-GruppeInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)ist aus folgendem Grund hängengeblieben: ReasonDesc.

Von RUNNING um zu sehen,RESIZING

INFO Eine Größenänderungfür die Instance-GruppeInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)wurde initiiert von Entity umTime.

Note

Ab Amazon EMR Version 5.21.0 können Sie Cluster-Konfigurationen überschreiben undzusätzliche Konfigurationsklassifikationen für jede Instance-Gruppe in einem ausgeführten Clusterangeben. Dies erfolgt über die Amazon EMR-Konsole, die AWS Command Line Interface-(AWSCLI) oder das AWS SDK. Weitere Information finden Sie unter Angabe einer Konfiguration für eineInstance-Gruppe in einem ausgeführten Cluster.

Die folgende Tabelle listet Amazon EMR-Ereignisse für die Rekonfigurationsoperation zusammen mit demStatus oder der Statusänderung auf, den bzw. die das Ereignis meldet. Dazu kommen die Relevanz desEreignisses und die Ereignismeldungen.

Status oder Statusänderung Schweregrad Meldung

RUNNING INFO Eine Neukonfigurationfür eine InstanzgruppeInstanceGroupID inder Amazon EMR bündeln

359

Page 367: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Status oder Statusänderung Schweregrad MeldungClusterId (ClusterName)wurde vom Benutzer aminitiiert Time. (z. B. Version derangeforderten Konfiguration istNum.

Von RECONFIGURING um zusehen, RUNNING

INFO Die Neukonfigurationsoperationfür die Instance-GruppeInstanceGroupID inder Amazon EMR bündelnClusterId (ClusterName)ist abgeschlossen. DieNeukonfiguration begann umTime und nahm Num Minutenzum Ausfüllen von. Die aktuelleKonfigurationsversion ist Num.

Von RUNNING um zu sehen,RECONFIGURING

INFO Eine Neukonfigurationfür eine InstanzgruppeInstanceGroupID inder Amazon EMR bündelnClusterId (ClusterName)gestartet um Time. (z. B.. Es wirdvon Versionsnummer konfiguriertNum bis Versionsnummer Num.

RESIZING INFO Neukonfiguration desVorgangs in RichtungKonfigurationsversion Num z. B.Gruppe InstanceGroupIDin der Amazon EMR bündelnClusterId (ClusterName)ist vorübergehend blockiert beiTime da sich die Instanzgruppein befindet State.

RECONFIGURING INFO Ändern der Größe des Vorgangsin Richtung Instance-Anzahl Numz. B. Gruppe InstanceGroupIDin der Amazon EMR bündelnClusterId (ClusterName)ist vorübergehend blockiertbei Time da sich die Instance-Gruppe in State.

RECONFIGURING WARNING Die Neukonfigurationsoperationfür die Instance-GruppeInstanceGroupID inder Amazon EMR bündelnClusterId (ClusterName)fehlgeschlagen bei Time undnahm Num Minuten bis zumFehlschlagen. FehlgeschlageneKonfigurationsversion ist Num.

360

Page 368: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Status oder Statusänderung Schweregrad Meldung

RECONFIGURING INFO Die Konfigurationenwerden auf die vorherigeerfolgreiche Versionsnummerzurückgesetzt Numz. B.Gruppe InstanceGroupIDin der Amazon EMR bündelnClusterId (ClusterName)um Time. (z. B.. Die neueKonfigurationsversion ist Num.

Von RECONFIGURING um zusehen, RUNNING

INFO Die Konfigurationen wurdenerfolgreich auf die vorherigeerfolgreiche Versionzurückgesetzt Num z. B.Gruppe InstanceGroupIDin der Amazon EMR bündelnClusterId (ClusterName)um Time. (z. B.. Die neueKonfigurationsversion ist Num.

Von RECONFIGURING um zusehen, SUSPENDED

CRITICAL Die vorherige erfolgreicheVersion konnte nichtwiederhergestellt werdenNum für InstanzgruppeInstanceGroupID inder Amazon EMR bündelnClusterId (ClusterName)um Time.

Auto Scaling-Richtlinienereignisse

Status oder Statusänderung Schweregrad Meldung

PENDING INFO Eine Auto Scaling-Richtliniewurde der Instance-Gruppehinzugefügt InstanceGroupIDin (in) Amazon EMR bündelnClusterId (ClusterName)um Time. (z. B.. Die Richtliniewartet auf Anhang.

—oder—

Die Auto Scaling-Richtliniefür die Instance-GruppeInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)wurde aktualisiert um Time.(z. B.. Die Richtlinie wartet aufAnhang.

ATTACHED INFO Die Auto Scaling-Richtliniefür die Instance-Gruppe

361

Page 369: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Status oder Statusänderung Schweregrad MeldungInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)wurde angehängt am Time.

DETACHED INFO Die Auto Scaling-Richtliniefür die Instance-GruppeInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)wurde entfernt um Time.

FAILED ERROR Die Auto Scaling-Richtliniefür die Instance-GruppeInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)konnte nicht angefügt werdenund ist fehlgeschlagen bei Time.

—oder—

Die Auto Scaling-Richtliniefür die Instance-GruppeInstanceGroupID in(in) Amazon EMR bündelnClusterId (ClusterName)konnte nicht getrennt werden undist fehlgeschlagen bei Time.

Schritt-Ereignisse

Status oder Statusänderung Schweregrad Meldung

PENDING INFO Schritt StepID (StepName)wurde hinzugefügt zu AmazonEMR bündeln ClusterId(ClusterName) um Time undsteht zur Ausführung aus.

CANCEL_PENDING WARN Schritt StepID (StepName)in (in) Amazon EMR bündelnClusterId (ClusterName)wurde abgebrochen um Timeund steht zur Stornierung aus.

RUNNING INFO Schritt StepID (StepName)in (in) Amazon EMR bündelnClusterId (ClusterName)gestartet am Time.

COMPLETED INFO Schritt StepID (StepName)in (in) Amazon EMR bündelnClusterId (ClusterName)abgeschlossene Ausführung bei

362

Page 370: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Status oder Statusänderung Schweregrad MeldungTime. (z. B.. Der Schritt wurdegestartet unter Time und nahmNum Minuten zum Ausfüllen von.

CANCELLED WARN Abbruchanforderung für Cluster-Schritt erfolgreich StepID(StepName) in (in) AmazonEMR bündeln ClusterId(ClusterName) um Time,und der Schritt wird jetztabgebrochen.

FAILED ERROR Schritt StepID (StepName)in (in) Amazon EMR bündelnClusterId (ClusterName)fehlgeschlagen bei Time.

Anzeigen von Ereignissen unter Verwendung der Amazon EMR-Konsole

Für jeden Cluster können Sie eine einfache Liste der Ereignisse im Detailbereich anzeigen, der dieEreignisse in der Reihenfolge ihres Auftretens auflistet. Sie können auch alle Ereignisse für alle Cluster ineiner Region in absteigender Reihenfolge ihres Auftretens anzeigen.

Note

Wenn Sie nicht möchten, dass ein Benutzer alle Cluster-Ereignisse für eine Region sehenkann, erstellen Sie eine Anweisung, die die Berechtigung ("Effect": "Deny") für die Aktionelasticmapreduce:ViewEventsFromAllClustersInConsole ablehnt. Fügen Sie dieseAnweisung einer Richtlinie hinzu, die dem Benutzer zugeordnet ist.

Anzeigen von Ereignissen für alle Cluster einer Region

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/.2. Wählen Sie Events (Ereignisse).

Anzeigen von Ereignissen eines bestimmten Clusters

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/.2. Klicken Sie auf Cluster List (Cluster-Liste), wählen Sie einen Cluster und anschließend View details

(Details anzeigen) aus.3. Wählen Sie im Cluster-Detailbereich die Option Events (Ereignisse) aus.

363

Page 371: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Erstellen von Regeln für Amazon EMR-Ereignisse mithilfe von CloudWatch

Amazon EMR sendet Ereignisse automatisch an einen CloudWatch-Ereignis-Stream. Sie können Regelnerstellen, die nach einem bestimmten Muster auf Ereignisse zutreffen, und Sie können die Ereignissean Ziele weiterleiten, um entsprechende Maßnahmen zu ergreifen, z. B. E-Mail-Benachrichtigungensenden. Muster werden mit dem JSON-Objekt abgeglichen. Weitere Informationen über die Amazon EMR-Ereignisdetails finden Sie unter Amazon EMR-Ereignisse im Benutzerhandbuch für Amazon CloudWatchEvents.

Informationen zum Einrichten von CloudWatch-Ereignisregeln finden Sie unter Erstellen einer CloudWatch-Regel, die bei einem Ereignis ausgelöst wird.

Überwachen der Metriken mit CloudWatchMetriken werden alle 5 Minuten aktualisiert, automatisch gesammelt und mithilfe von Push an CloudWatchübertragen, um an jeden EMR-Cluster verteilt zu werden. Dieses Intervall kann nicht konfiguriert werden.Für die Amazon EMR-Metriken in CloudWatch fallen keine Gebühren an. Die Metriken werden für zweiWochen archiviert, danach werden die Daten verworfen.

Wie verwende ich Amazon EMR-Metriken?

Die von Amazon EMR gemeldeten Metriken bieten Informationen, die Sie auf unterschiedliche Weiseanalysieren können. In der folgenden Tabelle finden Sie einige häufige Verwendungszwecke für dieMetriken. Es handelt sich dabei um Vorschläge für den Einstieg und nicht um eine umfassende Liste. EineListe der gesamten Metriken, die von Amazon EMR gemeldet werden, finden Sie unter Von Amazon EMRgemeldete Metriken in CloudWatch (p. 368).

Wie gehe ich vor? Relevante Metriken

Verfolgen des Cluster-Fortschritts Sehen Sie sich die RunningMapTasks, ,und Sie haben die MöglichkeitRemainingMapTasks, , und Sie haben dieMöglichkeit RunningReduceTasks, undRemainingReduceTasks -Metriken.

Erkennen von Clustern im Leerlauf Die IsIdle-Metrik verfolgt, ob ein Clusterverfügbar ist, aber aktuell keine Aufgaben ausführt.

364

Page 372: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Wie gehe ich vor? Relevante MetrikenSie können einen Alarm einrichten, wenn sich derCluster für einen bestimmten Zeitraum im Leerlaufbefunden hat z. B. 30 Minuten.

Erkennen, wenn ein Knoten zu wenig Speicherplatzhat

Bei der HDFSUtilization-Metrik handelt essich um den prozentualen Anteil des derzeitverwendeten Speicherplatzes. Wenn dieseAngabe über eine für Ihre Anwendung akzeptableGrenze steigt, z. B. 80 % der verwendetenKapazität, müssen Sie möglicherweise die GrößeIhres Clusters ändern und weitere Core-Knotenhinzufügen.

Zugreifen auf CloudWatch-Metriken

Es gibt viele Möglichkeiten, auf die Metriken zuzugreifen, die Amazon EMR per Push an CloudWatchüberträgt. Sie können sie entweder über die Amazon EMR- oder die CloudWatch-Konsole anzeigen oderSie mithilfe der CloudWatch-CLI oder der CloudWatch-API abrufen. Die folgenden Verfahren zeigen, wieSie mithilfe dieser verschiedenen Tools auf die Metriken zugreifen können.

So zeigen Sie Metriken in der Amazon EMR-Konsole an

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/.2. Um die Metriken für einen Cluster anzuzeigen, wählen Sie einen Cluster aus, sodass der Bereich

Summary (Übersicht) angezeigt wird.3. Wählen Sie Monitoring (Überwachung) aus, um Informationen zu diesem Cluster anzuzeigen. Wählen

Sie eine der Registerkarten Cluster-Status, Map/Reduce, Node Status (Knoten-Status), IO oder HBaseaus, um die Berichte über Fortschritt und Zustand des Clusters zu laden.

4. Nachdem Sie die gewünschte Metrik ausgewählt haben, können Sie ein Diagramm auswählen.Bearbeiten Sie die Felder Start und End (Ende), um die Metriken auf einen bestimmbaren Zeitrahmenzu filtern.

So zeigen Sie Metriken in der CloudWatch-Konsole an

1. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.2. Wählen Sie im Navigationsbereich EMR aus.3. Scrollen Sie zur Metrik, die grafisch dargestellt werden soll. Sie können die Cluster-Kennung auch

nach dem zu überwachenden Cluster durchsuchen.

365

Page 373: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

4. Öffnen Sie eine Metrik, um das Diagramm anzuzeigen.

366

Page 374: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

So greifen Sie auf Metriken aus der CloudWatch-CLI; zu:

• Anruf mon-get-stats. (z. B.. Weitere Informationen finden Sie im Amazon CloudWatch-Benutzerhandbuch.

So greifen Sie auf Metriken aus der CloudWatch-API; zu:

• Anruf GetMetricStatistics. (z. B.. Weitere Informationen finden Sie unter Amazon CloudWatchAPI Reference.

Einrichten von Alarmen für Metriken

Da Amazon EMR Metriken per Push zu CloudWatch überträgt, können Sie mithilfe von CloudWatch Alarmefür die Amazon EMR-Metriken einrichten. So können Sie beispielsweise in CloudWatch einen Alarmkonfigurieren, damit Ihnen eine E-Mail gesendet wird, sobald die HDFS-Auslastung 80 % übersteigt.

Die folgenden Themen geben Ihnen eine grobe Übersicht darüber, wie Sie die Alarme mithilfe vonCloudWatch einrichten können. Detaillierte Anweisungen finden Sie unter Erstellen oder Bearbeiten einesCloudWatch-Alarms im Amazon CloudWatch-Benutzerhandbuch.

367

Page 375: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Einstellen von Alarmen mit der CloudWatch-Konsole

1. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.2. Wählen Sie Create Alarm aus. Dadurch wird der Create Alarm Wizard (Assistent zum Erstellen von

Alarmen) gestartet.3. Wählen Sie EMR Metrics (EMR-Metriken), und durchlaufen Sie die Amazon EMR-Metriken, bis Sie die

Metrik finden, auf die Sie einen Alarm setzen möchten. Eine einfache Möglichkeit, um nur die AmazonEMR-Metriken in diesem Dialogfeld anzuzeigen, besteht darin, nur nach der Cluster-Kennung IhresClusters zu suchen. Wählen Sie die Metrik aus, um einen Alarm zu erstellen, und klicken Sie dann aufNext (Weiter).

4. Geben Sie für die Metrik die Werte für Name, Description (Beschreibung), Threshold (Schwellenwert)und Time (Zeit) ein.

5. Wenn CloudWatch Ihnen eine E-Mail Nachricht senden soll, wenn der Alarmstatus erreicht wird,wählen Sie im Feld Wann immer dieser Alarm ausgegeben wird: die Option Status lautet ALARM aus.Wählen Sie unter Send notification to: (Benachrichtigung senden an:) ein vorhandenes SNS-Themaaus. Wenn Sie die Option Create topic (Thema erstellen) auswählen, können Sie den Namen und dieE-Mail-Adressen für eine neue E-Mail-Abonnementliste einrichten. Diese Liste wird gespeichert underscheint für künftige Alarme in der Liste.

Note

Wenn Sie Create topic (Thema erstellen) verwenden, um ein neues Amazon SNS-Thema einzurichten, müssen die E-Mail Adressen überprüft werden, bevor die EmpfängerBenachrichtigungen erhalten. E-Mail Nachrichten werden nur gesendet, wenn der Alarm ineinen Alarmzustand wechselt. Wenn es zu dieser Änderung des Alarmzustands kommt, bevordie E-Mail Adressen überprüft wurden, erhalten die Empfänger keine Benachrichtigung.

6. Zu diesem Zeitpunkt bietet Ihnen der Bildschirm Define Alarm (Alarm definieren) die Möglichkeit, denAlarm noch einmal zu überprüfen, bevor Sie ihn erstellen. Wählen Sie Create Alarm aus.

Note

Weitere Informationen zum Einrichten von Alarmen mithilfe der CloudWatch-Konsole findenSie unter Erstellen eines Alarms, der eine E-Mail-Nachricht sendet im Amazon CloudWatch-Benutzerhandbuch.

So richten Sie mit der CloudWatch-API einen Alarm ein:

• Anruf mon-put-metric-alarm. (z. B.. Weitere Informationen finden Sie unter Amazon CloudWatch-Benutzerhandbuch.

So richten Sie mit der CloudWatch-API einen Alarm ein:

• Anruf PutMetricAlarm. (z. B.. Weitere Informationen finden Sie unter Amazon CloudWatch APIReference

Von Amazon EMR gemeldete Metriken in CloudWatch

Die folgenden Tabellen listen alle Metriken auf, die Amazon EMR in der Konsole meldet und per Push anCloudWatch überträgt.

Amazon EMR-Metriken

Amazon EMR sendet Daten für mehrere Metriken an CloudWatch. Alle Amazon EMR-Cluster sendenautomatisch Metriken in Intervallen von fünf Minuten. Die Metriken werden für zwei Wochen archiviert.Nach Ablauf dieses Zeitraums werden die Daten verworfen.

368

Page 376: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Der Namespace AWS/ElasticMapReduce enthält die folgenden Metriken.Note

Amazon EMR ruft Metriken von einem Cluster ab. Wenn die Verbindung zu einem Cluster verlorengeht, werden keine Metriken gemeldet, bis der Cluster wieder verfügbar ist.

Die folgenden Metriken sind für Cluster mit Hadoop 2.x -Versionen verfügbar.

Metrik Description (Beschreibung)

Cluster-Status

IsIdle Gibt an, dass ein Cluster keine Arbeiten mehr ausführt, aberunverändert aktiv ist und Kosten verursacht. Der Wert beträgt 1,wenn weder Tasks noch Aufträge ausgeführt werden, andernfallsbeträgt der Wert 0. Dieser Wert wird in 5-Minuten-Intervallengeprüft. Wenn der Wert 1 beträgt, bedeutet dies, dass derCluster zum Zeitpunkt der Prüfung ungenutzt war, aber nicht diegesamten fünf Minuten. Um Falschmeldungen zu vermeiden,sollten Sie einen Alarm auslösen, wenn dieser Wert in mehrerenaufeinander folgenden 5-Minuten-Prüfungen 1 beträgt. Siekönnen zum Beispiel einen Alarm auslösen, wenn dieser Wert 30Minuten oder länger 1 beträgt.

Anwendungsfall: Überwachen Cluster Leistung

Einheiten: Boolesch

ContainerAllocated Anzahl der vom ResourceManager zugeordneten Ressourcen-Container.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

ContainerReserved Anzahl der reservierten Container.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

ContainerPending Anzahl der Container in der Warteschlange, die noch nichtzugeordnet worden sind.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

ContainerPendingRatio Verhältnis von ausstehenden Containern zu zugeordnetenContainern (ContainerPendingRatio = ContainerPending /ContainerAllocated). Wenn ContainerAllocated = 0, dannContainerPendingRatio = ContainerPending. Der Wert vonContainerPendingRatio ist eine Zahl, kein Prozentsatz. DieserWert ist zum Skalieren von Cluster-Ressourcen anhand desZuordnungsverhaltens des Containers hilfreich.

Einheiten: Count

AppsCompleted Anzahl der an YARN übermittelten abgeschlossenenAnwendungen.

369

Page 377: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

AppsFailed Anzahl der an YARN übermittelten Anwendungen, derenAbschluss fehlgeschlagen ist.

Anwendungsfall: Überwachen Cluster Fortschritt, ÜberwachenCluster Gesundheit

Einheiten: Count

AppsKilled Anzahl der an YARN übermittelten Anwendungen, die beendetworden sind.

Anwendungsfall: Überwachen Cluster Fortschritt, ÜberwachenCluster Gesundheit

Einheiten: Count

AppsPending Anzahl der an YARN übermittelten Anwendungen, die sich imausstehenden Zustand befinden.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

AppsRunning Anzahl der an YARN übermittelten Anwendungen, die ausgeführtwerden.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

AppsSubmitted Anzahl der an YARN übermittelten Anwendungen.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

Knotenstatus

CoreNodesRunning Anzahl der arbeitenden Core-Knoten. Die Datenpunkte dieserMetrik werden nur dann angegeben, wenn die zugehörigeInstance-Gruppe existiert.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

CoreNodesPending Anzahl der Core-Knoten, die auf eine Zuordnung warten. Esmüssen nicht alle angeforderten Core-Knoten sofort verfügbarsein. Diese Metrik gibt die ausstehenden Anforderungen an. DieDatenpunkte dieser Metrik werden nur dann angegeben, wenndie zugehörige Instance-Gruppe existiert.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

370

Page 378: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

LiveDataNodes Prozentsatz der Datenknoten, die Arbeit von Hadoopempfangen.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Prozent

MRTotalNodes Anzahl der Knoten, die gegenwärtig für MapReduce-Aufträge verfügbar sind. Entspricht der YARN-Metrikmapred.resourcemanager.TotalNodes.

Verwenden Sie: Überwachen Cluster Fortschritt

Einheiten: Count

MRActiveNodes Anzahl der Knoten, die gegenwärtig MapReduce-Tasksoder -Aufträge ausführen. Entspricht der YARN-Metrikmapred.resourcemanager.NoOfActiveNodes.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

MRLostNodes Anzahl der MapReduce zugeordneten Knoten, die mit demZustand "LOST" gekennzeichnet worden sind. Entspricht derYARN-Metrik mapred.resourcemanager.NoOfLostNodes.

Anwendungsfall: Überwachen Cluster Zustand, überwachenCluster Fortschritt

Einheiten: Count

MRUnhealthyNodes Anzahl der MapReduce-Aufträgen zur Verfügungstehenden Knoten, die mit dem Zustand "UNHEALTHY"gekennzeichnet sind. Entspricht der YARN-Metrikmapred.resourcemanager.NoOfUnhealthyNodes.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

MRDecommissionedNodes Anzahl der MapReduce-Anwendungen zugeordnetenKnoten, die mit dem Zustand "DECOMISSIONED"gekennzeichnet worden sind. Entspricht der YARN-Metrikmapred.resourcemanager.NoOfDecommissionedNodes.

Verwenden Sie: Überwachen Cluster Zustand, überwachenCluster Fortschritt

Einheiten: Count

371

Page 379: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

MRRebootedNodes Anzahl der MapReduce zur Verfügung stehenden Knoten,die neu gebootet und mit dem Zustand "REBOOTED"gekennzeichnet worden sind. Entspricht der YARN-Metrikmapred.resourcemanager.NoOfRebootedNodes.

Anwendungsfall: Überwachen Cluster Zustand, überwachenCluster Fortschritt

Einheiten: Count

MultiMasterInstanceGroupNodesRunningDie Anzahl der zurzeit ausgeführten Master-Knoten.

Anwendungsfall: Ausfall und Ersatz des Master-Knotensüberwachen

Einheiten: Count

MultiMasterInstanceGroupNodesRunningPercentageDer Prozentsatz der zurzeit im Verhältnis zur angefordertenInstance-Zahl für Master-Knoten ausgeführten Master-Knoten.

Anwendungsfall: Ausfall und Ersatz des Master-Knotensüberwachen

Einheiten: Prozent

MultiMasterInstanceGroupNodesRequestedDie Anzahl der angeforderten Master-Knoten.

Anwendungsfall: Ausfall und Ersatz des Master-Knotensüberwachen

Einheiten: Count

IO

S3ByteWritten Anzahl der auf Amazon S3 geschriebenen Byte.

Anwendungsfall: Analysieren Cluster Leistung, überwachenCluster Fortschritt

Einheiten: Count

S3ByteRead Anzahl der von Amazon S3 gelesenen Byte.

Anwendungsfall: Analysieren Cluster Leistung, überwachenCluster Fortschritt

Einheiten: Count

HDFSUtilization Prozentsatz des gegenwärtig benutzten HDFS-Speichers.

Anwendungsfall: Analysieren Cluster Leistung

Einheiten: Prozent

372

Page 380: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

HDFSByteRead Anzahl der von HDFS gelesenen Byte. Mit dieser Metrik werdennur MapReduce-Aufträge aggregiert und sie gilt nicht für andereWorkloads unter EMR.

Anwendungsfall: Analysieren Cluster Leistung, überwachenCluster Fortschritt

Einheiten: Count

HDFSByteWritten Anzahl der auf HDFS geschriebenen Byte. Mit dieser Metrikwerden nur MapReduce-Aufträge aggregiert und sie gilt nicht fürandere Workloads unter EMR.

Anwendungsfall: Analysieren Cluster Leistung, überwachenCluster Fortschritt

Einheiten: Count

MissingBlocks Anzahl der Blöcke, in denen HDFS keine Replicas hat. Hierbeikann es sich um beschädigte Blöcke handeln.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

CorruptBlocks Anzahl der Blöcke, die von HDFS als beschädigt angegebenwerden.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

TotalLoad Gesamtanzahl der gleichzeitigen Datenübertragungen.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

MemoryTotalMB Gesamtgröße des Speichers im Cluster.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

MemoryReservedMB Größe des reservierten Speichers.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

MemoryAvailableMB Verfügbarer zuzuordnender Speicher.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

373

Page 381: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

YARNMemoryAvailablePercentage Prozentsatz des für YARN verbleibenden verfügbaren Speichers(YARNMemoryAvailablePercentage = MemoryAvailableMB /MemoryTotalMB). Dieser Wert ist zum Skalieren von Cluster-Ressourcen anhand der YARN-Speichernutzung hilfreich.

Einheiten: Prozent

MemoryAllocatedMB Menge des dem Cluster zugeordneten Speichers.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

PendingDeletionBlocks Anzahl der zum Löschen gekennzeichneten Blöcke.

Anwendungsfall: Überwachen Cluster Fortschritt, ÜberwachenCluster Gesundheit

Einheiten: Count

UnderReplicatedBlocks Anzahl der Blöcke, die nochmals repliziert werden müssen.

Anwendungsfall: Überwachen Cluster Fortschritt, ÜberwachenCluster Gesundheit

Einheiten: Count

DfsPendingReplicationBlocks Status der Blockreplikation: replizierte Blöcke, Alterder Replikationsanforderung und nicht erfolgreicheReplikationsanforderungen.

Anwendungsfall: Überwachen Cluster Fortschritt, ÜberwachenCluster Gesundheit

Einheiten: Count

CapacityRemainingGB Gesamtbetrag der verbleibenden HDFS-Festplattenkapazität.

Anwendungsfall: Überwachen Cluster Fortschritt, ÜberwachenCluster Gesundheit

Einheiten: Count

HBase

HbaseBackupFailed Gibt an, ob die letzte Sicherung fehlgeschlagen ist. Sie iststandardmäßig auf 0 gesetzt und wird in 1 geändert, wenn dervorhergehende Sicherungsversuch fehlgeschlagen ist. DieseMetrik wird nur für HBase-Cluster angegeben.

Anwendungsfall: HBase-Sicherungen überwachen

Einheiten: Count

374

Page 382: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

MostRecentBackupDuration Dauer, bis die vorherige Sicherung abgeschlossen ist. DieseMetrik wird unabhängig davon erstellt, ob die letzte Sicherungerfolgreich war oder fehlgeschlagen ist. Während die Sicherungausgeführt wird, gibt die Metrik die Anzahl der Minuten seit demStart der Sicherung zurück. Diese Metrik wird nur für HBase-Cluster angegeben.

Anwendungsfall: HBase-Sicherungen überwachen

Einheiten: Minuten

TimeSinceLastSuccessfulBackup Anzahl der verstrichenen Minuten nach der letzten erfolgreichenHBase-Sicherung auf Ihrem Cluster. Diese Metrik wird nur fürHBase-Cluster angegeben.

Anwendungsfall: HBase-Sicherungen überwachen

Einheiten: Minuten

Nachfolgend sind die Hadoop 1-Metriken aufgeführt:

Metrik Description (Beschreibung)

Cluster-Status

IsIdle Gibt an, dass ein Cluster keine Arbeiten mehr ausführt, aberunverändert aktiv ist und Kosten verursacht. Der Wert beträgt 1,wenn weder Tasks noch Aufträge ausgeführt werden, andernfallsbeträgt der Wert 0. Dieser Wert wird in 5-Minuten-Intervallengeprüft. Wenn der Wert 1 beträgt, bedeutet dies, dass derCluster zum Zeitpunkt der Prüfung ungenutzt war, aber nicht diegesamten fünf Minuten. Um Falschmeldungen zu vermeiden,sollten Sie einen Alarm auslösen, wenn dieser Wert in mehrerenaufeinander folgenden 5-Minuten-Prüfungen 1 beträgt. Siekönnen zum Beispiel einen Alarm auslösen, wenn dieser Wert 30Minuten oder länger 1 beträgt.

Anwendungsfall: Überwachen Cluster Leistung

Einheiten: Boolesch

JobsRunning Anzahl der Aufträge im Cluster, die gegenwärtig ausgeführtwerden.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

JobsFailed Anzahl der fehlgeschlagenen Aufträge im Cluster.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

Map/Reduce

375

Page 383: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

MapTasksRunning Anzahl der Map-Tasks für jeden Auftrag. Wenn Sie einenScheduler installiert haben und mehrere Aufträge ausführen,werden mehrere Grafiken erstellt.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

MapTasksRemaining Anzahl der verbleibenden Map-Tasks für jeden Auftrag. WennSie einen Scheduler installiert haben und mehrere Aufträgeausführen, werden mehrere Grafiken erstellt. Eine verbleibendeZuordnungsaufgabe ist eine Aufgabe, die sich in keinem derfolgenden Zustände befindet: Wird ausgeführt, abgetötet oderabgeschlossen.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

MapSlotsOpen Ungenutzte Kapazität für Map-Tasks. Dies wird als die maximaleAnzahl von Map-Tasks für einen bestimmten Cluster abzüglichder Gesamtanzahl der gegenwärtig ausgeführten Map-Tasks indiesem Cluster berechnet.

Anwendungsfall: Analysieren Cluster Leistung

Einheiten: Count

RemainingMapTasksPerSlot Das Verhältnis der insgesamt verbleibenden Map-Tasks,bezogen auf die insgesamt verfügbaren Map-Slots im Cluster.

Anwendungsfall: Analysieren Cluster Leistung

Einheiten: Verhältnis

ReduceTasksRunning Anzahl der laufenden Reduce-Tasks für jeden Auftrag. WennSie einen Scheduler installiert haben und mehrere Aufträgeausführen, werden mehrere Grafiken erstellt.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

ReduceTasksRemaining Anzahl der verbleibenden Reduce-Tasks für jeden Auftrag.Wenn Sie einen Scheduler installiert haben und mehrereAufträge ausführen, werden mehrere Grafiken erstellt.

Anwendungsfall: Überwachen Cluster Fortschritt

Einheiten: Count

376

Page 384: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

ReduceSlotsOpen Ungenutzte Kapazität für Reduce-Tasks. Dies wird als diemaximale Anzahl von Reduce-Tasks für einen bestimmtenCluster abzüglich der Gesamtanzahl der gegenwärtigausgeführten Reduce-Tasks in diesem Cluster berechnet.

Anwendungsfall: Analysieren Cluster Leistung

Einheiten: Count

Knotenstatus

CoreNodesRunning Anzahl der arbeitenden Core-Knoten. Die Datenpunkte dieserMetrik werden nur dann angegeben, wenn die zugehörigeInstance-Gruppe existiert.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

CoreNodesPending Anzahl der Core-Knoten, die auf eine Zuordnung warten. Esmüssen nicht alle angeforderten Core-Knoten sofort verfügbarsein. Diese Metrik gibt die ausstehenden Anforderungen an. DieDatenpunkte dieser Metrik werden nur dann angegeben, wenndie zugehörige Instance-Gruppe existiert.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

LiveDataNodes Prozentsatz der Datenknoten, die Arbeit von Hadoopempfangen.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Prozent

TaskNodesRunning Anzahl der arbeitenden Aufgabenknoten. Die Datenpunktedieser Metrik werden nur dann angegeben, wenn die zugehörigeInstance-Gruppe existiert.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

TaskNodesPending Anzahl der Aufgabenknoten, die auf eine Zuordnung warten.Es müssen nicht alle angeforderten Aufgabenknotensofort verfügbar sein. Diese Metrik gibt die ausstehendenAnforderungen an. Die Datenpunkte dieser Metrik werdennur dann angegeben, wenn die zugehörige Instance-Gruppeexistiert.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

377

Page 385: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

LiveTaskTrackers Prozentsatz der funktionierenden Task-Tracker.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Prozent

IO

S3ByteWritten Anzahl der auf Amazon S3 geschriebenen Byte. Mit dieserMetrik werden nur MapReduce-Aufträge aggregiert und sie giltnicht für andere Workloads unter EMR.

Anwendungsfall: Analysieren Cluster Leistung, überwachenCluster Fortschritt

Einheiten: Count

S3ByteRead Anzahl der von Amazon S3 gelesenen Byte. Mit dieser Metrikwerden nur MapReduce-Aufträge aggregiert und sie gilt nicht fürandere Workloads unter EMR.

Anwendungsfall: Analysieren Cluster Leistung, überwachenCluster Fortschritt

Einheiten: Count

HDFSUtilization Prozentsatz des gegenwärtig benutzten HDFS-Speichers.

Anwendungsfall: Analysieren Cluster Leistung

Einheiten: Prozent

HDFSByteRead Anzahl der von HDFS gelesenen Byte.

Anwendungsfall: Analysieren Cluster Leistung, überwachenCluster Fortschritt

Einheiten: Count

HDFSByteWritten Anzahl der auf HDFS geschriebenen Byte.

Anwendungsfall: Analysieren Cluster Leistung, überwachenCluster Fortschritt

Einheiten: Count

MissingBlocks Anzahl der Blöcke, in denen HDFS keine Replicas hat. Hierbeikann es sich um beschädigte Blöcke handeln.

Anwendungsfall: Überwachen Cluster Gesundheit

Einheiten: Count

378

Page 386: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

TotalLoad Die aktuelle Gesamtzahl an Lesern und Schreibern, die von allenDataNodes in einem Cluster gemeldet werden.

Anwendungsfall: Diagnostizieren Sie den Grad, in dem hohe E/Azu einer schlechten Ausführungsleistung des Auftrags beitragenkönnen. Worker-Knoten, die den DataNode-Daemon ausführen,müssen auch Zuordnungs- und Reduzierungsaufgabenausführen. Dauerhaft hohe TotalLoad-Werte können daraufhinweisen, dass ein hoher E/A-Wert einer der Faktoren für eineschlechte Leistung sein könnte. Gelegentliche Spitzen in diesemWert sind typisch und weisen in der Regel nicht auf ein Problemhin.

Einheiten: Count

HBase

BackupFailed Gibt an, ob die letzte Sicherung fehlgeschlagen ist. Sie iststandardmäßig auf 0 gesetzt und wird in 1 geändert, wenn dervorhergehende Sicherungsversuch fehlgeschlagen ist. DieseMetrik wird nur für HBase-Cluster angegeben.

Anwendungsfall: HBase-Sicherungen überwachen

Einheiten: Count

MostRecentBackupDuration Dauer, bis die vorherige Sicherung abgeschlossen ist. DieseMetrik wird unabhängig davon erstellt, ob die letzte Sicherungerfolgreich war oder fehlgeschlagen ist. Während die Sicherungausgeführt wird, gibt die Metrik die Anzahl der Minuten seit demStart der Sicherung zurück. Diese Metrik wird nur für HBase-Cluster angegeben.

Anwendungsfall: HBase-Sicherungen überwachen

Einheiten: Minuten

TimeSinceLastSuccessfulBackup Anzahl der verstrichenen Minuten nach der letzten erfolgreichenHBase-Sicherung auf Ihrem Cluster. Diese Metrik wird nur fürHBase-Cluster angegeben.

Anwendungsfall: HBase-Sicherungen überwachen

Einheiten: Minuten

Cluster-Kapazitätsmetriken

Die folgenden Metriken geben die aktuelle oder Zielkapazitäten eines Clusters an. Diese Metriken sindnur verfügbar, wenn die verwaltete Skalierung aktiviert ist. Für Cluster, die aus Instance-Flotten bestehen,werden die Cluster-Kapazitätsmetriken in gemessen. Units. (z. B.. Für Cluster, die aus Instance-Gruppenbestehen, werden die Cluster-Kapazitätsmetriken in gemessen. Nodes oder VCPU basierend auf demEinheitentyp, der in der verwalteten Skalierungsrichtlinie verwendet wird. Weitere Informationen finden Sieunter Verwenden von EMR-verwalteter Skalierung inAmazon EMR im Management Guide für AmazonEMR.

379

Page 387: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloudWatch-Ereignisse und -Metriken

Metrik Description (Beschreibung)

• TotalUnitsRequested

• TotalNodesRequested

• TotalVCPURequested

Die Gesamtzahl von Einheiten/Knoten/vCPUs in einem Cluster,die durch die verwaltete Skalierung bestimmt wird.

Einheiten: Count

• TotalUnitsRunning

• TotalNodesRunning

• TotalVCPURunning

Die aktuelle Gesamtzahl der Einheiten/Knoten/vCPUs, diein einem ausgeführten Cluster verfügbar sind. Wenn eineClustergrößenänderung angefordert wird, wird diese Metrikaktualisiert, nachdem die neuen Instances hinzugefügt oder ausdem Cluster entfernt wurden.

Einheiten: Count

• CoreUnitsRequested

• CoreNodesRequested

• CoreVCPURequested

Die Zielnummer der CORE-Einheiten/Knoten/vCPUs in einemCluster, die durch die verwaltete Skalierung bestimmt wird.

Einheiten: Count

• CoreUnitsRunning

• CoreNodesRunning

• CoreVCPURunning

Die aktuelle Anzahl von CORE-Einheiten/Knoten/vCPUs, die ineinem Cluster ausgeführt werden.

Einheiten: Count

• TaskUnitsRequested

• TaskNodesRequested

• TaskVCPURequested

Die Zielnummer der AUFGABEN-Einheiten/Knoten/vCPUs ineinem Cluster, die durch die verwaltete Skalierung bestimmtwird.

Einheiten: Count

• TaskUnitsRunning

• TaskNodesRunning

• TaskVCPURunning

Die aktuelle Anzahl von AUFGABEN-Einheiten/Knoten/vCPUs,die in einem Cluster ausgeführt werden.

Einheiten: Count

Dimensionen von Amazon EMR-Metriken

Die Amazon EMR-Daten können mithilfe der folgenden Dimensionen in der folgenden Tabelle gefiltertwerden.

Dimension Description (Beschreibung)

JobFlowId Dasselbe wie Cluster ID, die eindeutige Kennung einesClusters im Formular ist j-XXXXXXXXXXXXX. (z. B.. SuchenSie diesen Wert, indem Sie auf die Schaltfläche Cluster inder Amazon EMR-Konsole.

JobId Die Kennung eines Auftrags in einem Cluster. Sie könnendies zum Filtern der von einem Cluster zurückgegebenenMetriken verwenden, die sich auf einen einzelnenAuftrag im Cluster beziehen. JobId hat das Formatjob_XXXXXXXXXXXX_XXXX.

380

Page 388: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideView Cluster Application Metrics with Ganglia

View Cluster Application Metrics with GangliaGanglia ist mit den Amazon EMR-Versionen 4.2 und höher verfügbar. Ganglia ist ein Open-Source-Projekt.Es handelt sich um ein skalierbares, verteiltes System zur Überwachung von Clustern und Grids, daszugleich die Auswirkungen auf die Leistung minimiert. Wenn Sie Ganglia in Ihrem Cluster aktivieren,können Sie Berichte erstellen und die Leistung des Clusters als Ganzes betrachten. Ebenso können Sie dieLeistung einzelner Knoten-Instances überprüfen. Ganglia ist außerdem zur Aufnahme und Visualisierungvon Hadoop- und Spark-Metriken konfiguriert. Weitere Informationen finden Sie unter Ganglia im AmazonEMR-Versionshinweise.

Protokollieren von Amazon EMR-API-Aufrufen in AWSCloudTrailAmazon EMR ist in AWS CloudTrail integriert, einen Service, der die Aktionen eines Benutzers, einer Rolleoder eines AWS-Services in Amazon EMR aufzeichnet. CloudTrail erfasst alle API-Aufrufe für AmazonEMR als Ereignisse. Zu den erfassten Aufrufen gehören Aufrufe von der Amazon EMR-Konsole und Code-Aufrufe der Amazon EMR-API-Operationen. Wenn Sie einen Trail erstellen, können Sie die kontinuierlicheBereitstellung von CloudTrail-Ereignissen an einen Amazon S3-Bucket, einschließlich Ereignissen fürAmazon EMR, aktivieren. Auch wenn Sie keinen Trail konfigurieren, können Sie die neuesten Ereignissein der CloudTrail-Konsole in Event history (Ereignisverlauf) anzeigen. Mit den von CloudTrail gesammeltenInformationen können Sie die an Amazon EMR gestellte Anfrage, die IP-Adresse, von der die Anfragegestellt wurde, den Initiator der Anfrage, den Zeitpunkt der Anfrage und weitere Angaben bestimmen.

Weitere Informationen zu CloudTrail finden Sie im AWS CloudTrail User Guide.

Amazon EMR-Informationen in CloudTrailCloudTrail wird beim Erstellen Ihres AWS-Kontos für Sie aktiviert. Die in Amazon EMR auftretendenAktivitäten werden als CloudTrail-Ereignis zusammen mit anderen AWS-Serviceereignissen in Eventhistory (Ereignisverlauf) aufgezeichnet. Sie können die neusten Ereignisse in Ihrem AWS-Konto anzeigen,suchen und herunterladen. Weitere Informationen finden Sie unter Anzeigen von Ereignissen mit demCloudTrail-API-Ereignisverlauf.

Erstellen Sie für eine fortlaufende Aufzeichnung der Ereignisse in Ihrem AWS-Konto, darunter Ereignissefür Amazon EMR, einen Trail. Ein Trail ermöglicht CloudTrail die Übermittlung von Protokolldateien aneinen Amazon S3-Bucket. Wenn Sie einen Pfad in der Konsole anlegen, gilt dieser standardmäßig füralle AWS-Regionen. Der Trail protokolliert Ereignisse aus allen Regionen in der AWS-Partition und stelltdie Protokolldateien in dem Amazon S3-Bucket bereit, den Sie angeben. Darüber hinaus können Sieandere AWS-Services konfigurieren, um die in den CloudTrail-Protokollen erfassten Ereignisdaten weiterzu analysieren und entsprechend zu agieren. Weitere Informationen finden Sie unter:

• Übersicht zum Erstellen eines Pfads• In CloudTrail unterstützte Services und Integrationen• Konfigurieren von Amazon SNS-Benachrichtigungen für CloudTrail• Empfangen von CloudTrail-Protokolldateien aus mehreren Regionen und EmpfangenCloudTrail von

Protokolldateien aus mehreren Konten

Alle Amazon EMR-Aktionen werden von CloudTrail protokolliert und in der Amazon EMR APIReference dokumentiert. Zum Beispiel werden durch Aufrufe der RunJobFlow-, ListCluster- undDescribeCluster-Aktionen Einträge in den CloudTrail-Protokolldateien generiert.

Jedes Event oder jeder Protokolleintrag enthält Informationen über den Ersteller der Anfrage. Anhand derIdentitätsinformationen zur Benutzeridentität können Sie Folgendes bestimmen:

381

Page 389: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideProtokollieren von Amazon EMR-API-Aufrufen in AWS CloudTrail

• Ob die Anfrage mit Root- oder AWS Identity and Access Management-Benutzeranmeldeinformationen(IAM) ausgeführt wurde.

• Ob die Anfrage mit temporären Sicherheitsanmeldeinformationen für eine Rolle oder einen föderiertenBenutzer ausgeführt wurde.

• Ob die Anfrage von einem anderen AWS-Service getätigt wurde.

Weitere Informationen finden Sie unter CloudTrail-Element "userIdentity".

Beispiel: Amazon EMR-ProtokolldateieinträgeEin Trail ist eine Konfiguration, durch die Ereignisse an den von Ihnen angegebenen Amazon S3-Bucket übermittelt werden. CloudTrail-Protokolldateien können einen oder mehrere Einträge enthalten.Ein Ereignis stellt eine einzelne Anfrage aus einer beliebigen Quelle dar und enthält unter anderemInformationen über die angeforderte Aktion, das Datum und die Uhrzeit der Aktion sowie über dieAnfrageparameter. CloudTrail-Protokolldateien sind kein geordnetes Stacktrace der öffentlichen API-Aufrufe und erscheinen daher nicht in einer bestimmten Reihenfolge.

Das folgende Beispiel zeigt einen CloudTrail-Protokolleintrag, der die Aktion RunJobFlow demonstriert.

{ "Records": [ { "eventVersion":"1.01", "userIdentity":{ "type":"IAMUser", "principalId":"EX_PRINCIPAL_ID", "arn":"arn:aws:iam::123456789012:user/temporary-user-xx-7M", "accountId":"123456789012", "userName":"temporary-user-xx-7M" }, "eventTime":"2018-03-31T17:59:21Z", "eventSource":"elasticmapreduce.amazonaws.com", "eventName":"RunJobFlow", "awsRegion":"us-west-2", "sourceIPAddress":"192.0.2.1", "userAgent":"aws-sdk-java/unknown-version Linux/xx Java_HotSpot(TM)_64-Bit_Server_VM/xx", "requestParameters":{ "tags":[ { "value":"prod", "key":"domain" }, { "value":"us-west-2", "key":"realm" }, { "value":"VERIFICATION", "key":"executionType" } ], "instances":{ "slaveInstanceType":"m5.xlarge", "ec2KeyName":"emr-integtest", "instanceCount":1, "masterInstanceType":"m5.xlarge", "keepJobFlowAliveWhenNoSteps":true, "terminationProtected":false },

382

Page 390: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerbinden mit dem Cluster

"visibleToAllUsers":false, "name":"MyCluster", "ReleaseLabel":"emr-5.16.0" }, "responseElements":{ "jobFlowId":"j-2WDJCGEG4E6AJ" }, "requestID":"2f482daf-b8fe-11e3-89e7-75a3d0e071c5", "eventID":"b348a38d-f744-4097-8b2a-e68c9b424698" }, ...additional entries ]}

Verbinden mit dem ClusterWenn Sie einen Amazon EMR-Cluster ausführen, müssen Sie häufig nur eine Anwendung ausführen,um die Daten zu analysieren, und dann die Ausgabe aus dem Amazon S3-Bucket erfassen. In anderenFällen möchten Sie vielleicht mit dem Master-Knoten interagieren, während der Cluster ausgeführt wird. Siemöchten z. B. eine Verbindung mit dem Master-Knoten herstellen, um interaktive Abfragen auszuführen,Protokolldateien zu prüfen, ein Problem mit dem Cluster zu debuggen, Leistung mithilfe einer Anwendungwie Ganglia zu überwachen, die im Master-Knoten ausgeführt wird, und so weiter. In den folgendenAbschnitten werden Techniken beschrieben, mit denen Sie eine Verbindung mit dem Master-Knotenherstellen können.

In einem EMR-Cluster ist der Master-Knoten eine Amazon EC2-Instance. Diese koordiniert die EC2-Instances, die als Aufgaben- und Hauptknoten ausgeführt werden. Der Master-Knoten stellt einenöffentlichen DNS-Namen bereit, den Sie verwenden können, um eine Verbindung mit der Instanceherzustellen. Amazon EMR erstellt standardmäßig die Sicherheitsgruppenregeln für Master-, Core- undSlave-Knoten, die bestimmen, wie Sie auf die Knoten zugreifen.

Note

Eine Verbindung mit dem Master-Knoten ist nur möglich, während der Cluster ausgeführtwird. Wenn der Cluster beendet wird, wird die EC2-Instance beendet, die als Master-Knotenfungiert, und ist nicht länger verfügbar. Um eine Verbindung mit dem Master-Knoten einzurichten,müssen Sie sich auch beim Cluster authentifizieren. Sie können entweder Kerberos für dieAuthentifizierung verwenden, oder einen privaten Schlüssel eines Amazon EC2-Schlüsselpaarsangeben, wenn Sie den Cluster starten. Weitere Informationen zur Konfiguration von Kerberosund die Einrichtung einer Verbindung finden Sie unter Use Kerberos Authentication (p. 265).Wenn Sie einen Cluster über die Konsole starten, wird der private Schlüssel des Amazon EC2-Schlüsselpaares im Abschnitt Security and Access (Sicherheit und Zugriff) auf der Seite CreateCluster (Cluster erstellen) angegeben.

Standardmäßig erlaubt die ElasticMapReduce-Master-Sicherheitsgruppe keinen eingehenden SSH-Zugriff.Möglicherweise müssen Sie eine Regel hinzufügen, die eingehenden SSH-Zugriff (TCP-Port 22) vonbestimmten Quellen erlaubt. Weitere Informationen zum Ändern von Sicherheitsgruppenregeln finden Sieunter Hinzufügen von Regeln zu einer Sicherheitsgruppe im Amazon EC2-Benutzerhandbuch für Linux-Instances.

Important

Ändern Sie nicht die übrigen Regeln in der ElasticMapReduce-Master-Sicherheitsgruppe. DasÄndern dieser Regeln kann die Ausführung des Clusters beeinträchtigen.

Themen• Bevor Sie eine Verbindung herstellen: Autorisieren von eingehendem Datenverkehr (p. 384)

383

Page 391: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBevor Sie eine Verbindung herstellen

• Verbinden mit dem Master-Knoten über SSH (p. 385)• Anzeigen von auf Amazon EMR-Clustern gehosteten Webschnittstellen (p. 390)

Bevor Sie eine Verbindung herstellen: Autorisieren voneingehendem DatenverkehrBevor Sie eine Verbindung zu einem Amazon EMR-Cluster herstellen, müssen Sie eingehenden SSH-Datenverkehr (Port 22) von vertrauenswürdigen Clients, wie z. B. der IP-Adresse Ihres Computers,autorisieren. Bearbeiten Sie dazu die verwalteten Sicherheitsgruppenregeln für die Knoten, mit denen Sieeine Verbindung herstellen möchten. Die folgenden Anweisungen zeigen Ihnen beispielsweise, wie SieRegeln für eingehenden Datenverkehr für den SSH-Zugriff auf die Standard-ElasticMapReduce-Master-Sicherheitsgruppe hinzufügen.

Weitere Informationen zur Verwendung von Sicherheitsgruppen mit Amazon EMR finden Sie unterSteuerung des Netzwerkverkehrs mit Sicherheitsgruppen (p. 316).

So schränken Sie den Zugriff mithilfe von SSH für die Sicherheitsgruppe ElasticMapReduce-master ein

Sie müssen bei AWS als ein Stammbenutzer oder IAM-Prinzipal angemeldet sein, der zur Verwaltungvon Sicherheitsgruppen für die VPC berechtigt ist, in der sich der Cluster befindet. Weitere Informationenfinden Sie unter Ändern der Berechtigungen für einen IAM-Benutzer und in der Beispielrichtlinie, die dieVerwaltung von EC2-Sicherheitsgruppen erlaubt, im IAM-Benutzerhandbuch.

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie Clusters (Cluster) aus.3. Wählen Sie den Name (Namen) des Clusters.4. Wählen Sie unter Security and access (Sicherheit und Zugriff) den Link Security groups for Master

(Sicherheitsgruppen für Master).

384

Page 392: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerbinden mit dem Master-Knoten über SSH

5. Wählen Sie aus der Liste ElasticMapReduce-master.6. Wählen Sie Inbound (Eingehend), Edit (Bearbeiten).7. Suchen Sie nach einer Regel für den eingehenden Datenverkehr, die einen öffentlichen Zugriff mit den

folgenden Einstellungen zulässt. Wenn eine solche Regel vorhanden ist, wählen Sie Delete (Löschen)aus, um sie zu entfernen.

• Type (Typ)

SSH• Port

22• Source (Quelle)

Benutzerdefiniert 0.0.0.0/08. Scrollen Sie auf der Seite nach unten und klicken Sie auf Add Rule (Regel hinzufügen).9. Wählen Sie für Type (Typ) SSH aus.

Dadurch wird automatisch TCP für Protocol (Protokoll) und 22 für Port Range (Portbereich)eingegeben.

10. Wählen Sie als Quelle My IP (Meine IP) aus.

Dies fügt automatisch die IP-Adresse Ihres Client-Computers als Quell-Adresse hinzu. Alternativkönnen Sie eine Reihe von Custom (Benutzerdefinierten) vertrauenswürdigen Client-IP-Adressenauswählen und auf Add rule (Regel hinzufügen) klicken, um weitere Regeln für andere Clients zuerstellen. Zahlreiche Netzwerkumgebungen weisen IP-Adressen dynamisch zu. Daher müssenSie möglicherweise regelmäßig Sicherheitsgruppenregeln bearbeiten, um IP-Adressen fürvertrauenswürdige Clients zu aktualisieren.

11. Wählen Sie Save (Speichern) aus.12. Wählen Sie optional ElasticMapReduce-slave aus der Liste aus, und wiederholen Sie die

oben beschriebenen Schritte, um dem SSH-Client Zugriff auf Core- und Aufgabenknoten vonvertrauenswürdigen Clients zu gewähren.

Verbinden mit dem Master-Knoten über SSHSecure Shell (SSH) ist ein Netzwerkprotokoll, mit dem Sie eine sichere Verbindung mit einem Remote-Computer erstellen können. Nach dem Verbinden verhält sich das Terminal auf Ihrem lokalen Computerso, als würde es auf dem Remote-Computer ausgeführt. Lokal erstellte Befehle werden auf dem Remote-Computer ausgeführt und die Befehlsausgabe vom Remote-Computer wird im Terminal-Fenster angezeigt.

Wenn Sie SSH mit AWS verwenden, stellen Sie eine Verbindung mit einer EC2-Instance her, die ein inder Cloud ausgeführter virtueller Server ist. Beim Arbeiten mit Amazon EMR wird SSH am häufigstenverwendet, um eine Verbindung mit der EC2-Instance herzustellen, die als Master-Knoten des Clustersdient.

Wenn Sie SSH zum Herstellen einer Verbindung mit dem Master-Knoten verwenden, können Sie denCluster überwachen und mit ihm interagieren. Sie können Linux-Befehle auf dem Master-Knoten absetzen,Anwendungen wie Hive und Pig interaktiv ausführen, Verzeichnisse durchsuchen, Protokolldateien lesenusw. Darüber hinaus können Sie einen Tunnel in Ihrer SSH-Verbindung erstellen, um die auf dem Master-Knoten gehosteten Webschnittstellen anzeigen zu lassen. Weitere Informationen finden Sie im Anzeigenvon auf Amazon EMR-Clustern gehosteten Webschnittstellen (p. 390).

Um eine Verbindung mit dem Master-Knoten unter Verwendung von SSH herzustellen, müssen Sieden öffentlichen DNS-Namen des Master-Knotens verwenden. Darüber hinaus muss die dem Master-Knoten zugeordnete Sicherheitsgruppe über eine Regel für eingehenden Datenverkehr verfügen, die SSH

385

Page 393: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerbinden mit dem Master-Knoten über SSH

(TCP-Port 22)-Datenverkehr von einer Quelle zulässt, an der die SSH-Verbindung ihren Ursprung hat.Möglicherweise müssen Sie eine Regel hinzufügen, um eine SSH-Verbindung von Ihrem Client zuzulassen.Weitere Informationen zum Ändern von Sicherheitsgruppenregeln finden Sie unter Steuerung desNetzwerkverkehrs mit Sicherheitsgruppen (p. 316) und Hinzufügen von Regeln zu einer Sicherheitsgruppeim Amazon EC2-Benutzerhandbuch für Linux-Instances.

Abrufen des öffentlichen DNS-Namens für den Master-KnotenSie können den öffentlichen DNS-Namen für den Master-Knoten mit der Amazon EMR-Konsole und derAWS CLI abrufen.

Console

So rufen Sie den öffentlichen DNS-Namen für den Master-Knoten mit der Amazon EMR-Konsole ab

1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.2. Wählen Sie auf der Seite Cluster List (Cluster-Liste) den Link für Ihren Cluster aus.3. Notieren Sie den Master public DNS (Öffentlicher Master-DNS)-Wert, der oben auf der Seite

Cluster Details (Cluster-Details) angezeigt wird.

Note

Sie können auch den SSH-Link neben dem öffentlichen DNS-Namen für Anweisungenzum Erstellen einer SSH-Verbindung mit dem Master-Knoten verwenden.

CLI

So rufen Sie den öffentlichen DNS-Namen für den Master-Knoten mit der AWS CLI ab

1. Geben Sie den folgenden Befehl ein, um die Cluster-Kennung abzurufen:

aws emr list-clusters

386

Page 394: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerbinden mit dem Master-Knoten über SSH

Die Ausgabe listet Ihre Cluster einschließlich des Clusters IDs auf. Notieren Sie die Cluster-ID fürden Cluster, mit dem Sie eine Verbindung herstellen.

"Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" }},"NormalizedInstanceHours": 4,"Id": "j-2AL4XXXXXX5T9","Name": "My cluster"

2. Geben Sie einen der folgenden Befehle ein, um die Cluster-Instances mitsamt dem öffentlichenDNS-Namen des Masters für den Cluster aufzulisten. Ersetzen j-2AL4XXXXXX5T9 mit der vomvorherigen Befehl zurückgegebenen Cluster-ID.

aws emr list-instances --cluster-id j-2AL4XXXXXX5T9

Oder:

aws emr describe-cluster --cluster-id j-2AL4XXXXXX5T9

Die Ausgabe enthält die Cluster-Instances einschließlich DNS-Namen und IP-Adressen. NotierenSie den Wert für PublicDnsName.

"Status": { "Timeline": { "ReadyDateTime": 1408040779.263, "CreationDateTime": 1408040515.535 }, "State": "RUNNING", "StateChangeReason": {}},"Ec2InstanceId": "i-e89b45e7","PublicDnsName": "ec2-###-##-##-###.us-west-2.compute.amazonaws.com"

"PrivateDnsName": "ip-###-##-##-###.us-west-2.compute.internal","PublicIpAddress": "##.###.###.##","Id": "ci-12XXXXXXXXFMH","PrivateIpAddress": "###.##.#.###"

Weitere Informationen finden Sie unter Amazon EMR-Befehle in der AWS CLI.

Verbinden mit dem Master-Knoten unter Verwendung von SSHund eines privaten Amazon EC2-Schlüssels unter Linux, Unix undMac OS XUm eine SSH-Verbindung einzurichten, die mit einem privaten Schlüssel authentifiziert ist, müssen Sieden privaten Schlüssel des Amazon EC2-Schlüsselpaars angeben, wenn Sie einen Cluster starten. WennSie einen Cluster über die Konsole starten, wird der private Schlüssel des Amazon EC2-Schlüsselpaares

387

Page 395: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerbinden mit dem Master-Knoten über SSH

im Abschnitt Security and Access (Sicherheit und Zugriff)auf der Seite Create Cluster (Cluster erstellen)angegeben. Weitere Informationen darüber, wie Sie auf Ihr Schlüsselpaar zugreifen, finden Sie unterAmazon EC2-Schlüsselpaare im Amazon EC2-Benutzerhandbuch für Linux-Instances.

Ihr Linux-Computer verfügt höchstwahrscheinlich standardmäßig über einen SSH-Client. OpenSSH wirdbeispielsweise bei den meisten Linux-, Unix- und MacOS-Betriebssystemen installiert. Sie können nacheinem SSH-Client suchen, indem Sie in der Befehlszeile ssh eingeben. Wenn Ihr Computer den Befehlnicht erkennt, installieren Sie einen SSH-Client, um eine Verbindung mit dem Master-Knoten herzustellen.Das OpenSSH-Projekt bietet eine kostenlose Implementierung der umfassenden Palette von SSH-Tools.Weitere Informationen finden Sie auf der OpenSSH-Website.

In den folgenden Anleitungen wird gezeigt, wie Sie eine SSH-Verbindung mit dem Amazon EMR-Master-Knoten unter Linux, Unix und Mac OS X öffnen.

So konfigurieren Sie Berechtigungen für die Datei mit dem privaten Schlüssel IhresSchlüsselpaares

Bevor Sie mit dem privaten Schlüssel Ihres Amazon EC2-Schlüsselpaares eine SSH-Verbindung erstellenkönnen, müssen Sie die Berechtigungen für die .pem-Datei so festlegen, dass nur der Besitzer berechtigtist, auf die Datei zuzugreifen. Dies ist für das Erstellen einer SSH-Verbindung mithilfe des Terminals oderder AWS CLI erforderlich.

1. Stellen Sie sicher, dass Sie eingehenden SSH-Datenverkehr zugelassen haben. DetaillierteAnweisungen finden Sie unter Bevor Sie eine Verbindung herstellen: Autorisieren von eingehendemDatenverkehr (p. 384).

2. Suchen Sie Ihre .pem-Datei. In dieser Anleitung wird davon ausgegangen, dass die Dateimykeypair.pem heißt und im Stammverzeichnis des aktuellen Benutzers gespeichert ist.

3. Geben Sie den folgenden Befehl ein, um die Berechtigungen festzulegen. Ersetzen ~/mykeypair.pem mit dem vollständigen Pfad und Dateinamen der Datei mit dem privaten SchlüsselIhres Schlüsselpaares. Beispiel C:\Users\<username>\.ssh\mykeypair.pem.

chmod 400 ~/mykeypair.pem

Wenn Sie keine Berechtigungen für die .pem-Datei festlegen, erhalten Sie die Fehlermeldung, dassIhre Schlüsseldatei nicht geschützt ist und der Schlüssel abgelehnt wird. Zum Verbinden müssen Siedie Berechtigungen für die Datei mit dem privaten Schlüssel Ihres Schlüsselpaares nur bei der erstenVerwendung festlegen.

So stellen Sie eine Verbindung mit dem Master-Knoten mithilfe des Terminals her

1. Öffnen Sie ein Terminal-Fenster. Wählen Sie unter Mac OS X Applications > Utilities > Terminal(Anwendungen > Dienstprogramme > Terminal) aus. In anderen Linux-Distributionen befindet sich„Terminal“ in der Regel unter Applications > Accessories > Terminal (Anwendungen > Zubehör >Terminal).

2. Geben Sie den folgenden Befehl ein, um eine Verbindung mit dem Master-Knoten herzustellen.Ersetzen ec2-###-##-##-###.compute-1.amazonaws.com durch den öffentlichen DNS-Namenfür den Master-Knoten Ihres Clusters ersetzen ~/mykeypair.pem mit dem vollständigen Pfad undDateinamen Ihrer .pem-Datei. Beispiel C:\Users\<username>\.ssh\mykeypair.pem.

ssh hadoop@ec2-###-##-##-###.compute-1.amazonaws.com -i ~/mykeypair.pem

Important

Sie müssen den Anmeldenamen hadoop verwenden, wenn Sie eine Verbindung mit demAmazon EMR-Master-Knoten herstellen. Andernfalls wird eine Fehlermeldung ähnlich wiediese angezeigt: Server refused our key.

388

Page 396: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerbinden mit dem Master-Knoten über SSH

3. Es wird die Warnung angezeigt, dass die Authentizität des Hosts, mit dem Sie eine Verbindungherstellen, nicht überprüft werden konnte. Geben Sie yes ein, um fortzufahren.

4. Wenn Sie Ihre Arbeit am Master-Knoten abgeschlossen haben, geben Sie den folgenden Befehl ein,um die SSH-Verbindung zu schließen:

exit

Verbinden mit dem Master-Knoten mithilfe von SSH unterWindowsWindows-Benutzer können eine Verbindung mit dem Master-Knoten mithilfe eines SSH-Clients wie z. B.PuTTY herstellen. Bevor Sie eine Verbindung mit dem Amazon EMR-Master-Knoten herstellen, sollten SiePuTTY und PuTTYgen herunterladen und installieren. Sie können diese Tools auf der PuTTY-Download-Seite herunterladen.

PuTTYunterstützt nicht das von Amazon EC2 generierte Dateiformat für den privaten Schlüssel desSchlüsselpaares (.pem). Konvertieren Sie mithilfe von PuTTYgen Ihre Schlüsseldatei in das erforderlichePuTTY-Format (.ppk). Sie müssen Ihren Schlüssel in dieses Format (.ppk) konvertieren, bevor Siemithilfe von PuTTY eine Verbindung mit dem Master-Knoten herstellen können.

Weitere Informationen zum Konvertieren von Schlüsseln finden Sie unter Konvertieren Ihres privatenSchlüssels mit PuTTYgen im Amazon EC2-Benutzerhandbuch für Linux-Instances.

So stellen Sie eine Verbindung mit dem Master-Knoten mithilfe von PuTTY her

1. Stellen Sie sicher, dass Sie eingehenden SSH-Datenverkehr zugelassen haben. DetaillierteAnweisungen finden Sie unter Bevor Sie eine Verbindung herstellen: Autorisieren von eingehendemDatenverkehr (p. 384).

2. Öffnen Sie putty.exe. Sie können PuTTY auch über die Windows-Programmliste starten.3. Falls erforderlich, wählen Sie in der Category (Kategorie)-Liste Session (Sitzung) aus.4. Geben Sie für Host Name (or IP address) ein.hadoop@MasterPublicDNS. Beispiel: hadoop@ec2-

###-##-##-###.compute-1.amazonaws.com.5. Wählen Sie in der Category (Kategorie)-Liste Connection > SSH (Verbindung > SSH), Auth aus.6. Klicken Sie bei Private key file for authentication (Private Schlüsseldatei für Authentifizierung) auf

Browse (Durchsuchen), und wählen Sie die .ppk-Datei aus, die Sie generiert haben.7. Wählen Sie Open (Öffnen) und Yes (Ja) aus, um die PuTTY-Sicherheitswarnung zu schließen.

Important

Wenn Sie sich beim Master-Knoten anmelden und zur Angabe eines Benutzernamensaufgefordert werden, geben Sie hadoop ein.

8. Wenn Sie Ihre Arbeit am Master-Knoten beendet haben, können Sie durch Schließen von PuTTY dieSSH-Verbindung schließen.

Note

Um zu verhindern, dass die SSH-Verbindung das Zeitlimit überschreitet, können SieConnection (Verbindung) in der Category (Kategorie)-Liste und anschließend die OptionEnable TCP_keepalives (TCP_keepalives aktivieren) auswählen. Wenn eine SSH-Sitzung inPuTTY aktiv ist, können Sie die Einstellungen ändern, indem Sie das Kontextmenü (rechteMaustaste) für die PuTTY-Titelleiste öffnen und dann Change Settings (Einstellungen ändern)auswählen.

389

Page 397: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

Verbinden mit dem Master-Knoten über die AWS CLISie können eine SSH-Verbindung mit dem Master-Knoten mithilfe der AWS CLI unter Windows, Linux, Unixund Mac OS X herstellen. Unabhängig von der Plattform benötigen Sie den öffentlichen DNS-Namen desMaster-Knotens und den privaten Schlüssel Ihres Amazon EC2-Schlüsselpaares. Wenn Sie die AWS CLIunter Linux, Unix oder Mac OS X verwenden, müssen Sie außerdem Berechtigungen für die .pem- oder.ppk-Datei für den privaten Schlüssel wie in So konfigurieren Sie Berechtigungen für die Datei mit demprivaten Schlüssel Ihres Schlüsselpaares (p. 388) gezeigt festlegen.

So stellen Sie eine Verbindung mit dem Master-Knoten über die AWS CLI her

1. Stellen Sie sicher, dass Sie eingehenden SSH-Datenverkehr zugelassen haben. DetaillierteAnweisungen finden Sie unter Bevor Sie eine Verbindung herstellen: Autorisieren von eingehendemDatenverkehr (p. 384).

2. Geben Sie Folgendes ein, um die Cluster-Kennung abzurufen:

aws emr list-clusters

Die Ausgabe listet Ihre Cluster einschließlich des Clusters IDs auf. Notieren Sie die Cluster-ID für denCluster, mit dem Sie eine Verbindung herstellen.

"Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" }},"NormalizedInstanceHours": 4,"Id": "j-2AL4XXXXXX5T9","Name": "AWS CLI cluster"

3. Geben Sie den folgenden Befehl ein, um eine SSH-Verbindung mit dem Master-Knoten zuöffnen. Ersetzen Sie im folgenden Beispiel j-2AL4XXXXXX5T9 durch die Cluster-ID ersetzen~/mykeypair.key mit dem vollständigen Pfad und Dateinamen Ihrer .pem-Datei (für Linux,Unix und Mac OS X) oder .ppk-Datei (für Windows). Beispiel C:\Users\<username>\.ssh\mykeypair.pem.

aws emr ssh --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key

4. Wenn Sie die Arbeit am Master-Knoten beendet haben, schließen Sie das AWS CLI-Fenster.

Weitere Informationen finden Sie unter Amazon EMR-Befehle in der AWS CLI.

Anzeigen von auf Amazon EMR-Clustern gehostetenWebschnittstellen

Important

Sie können eine benutzerdefinierte Sicherheitsgruppe konfigurieren, um den eingehendenZugriff auf diese Webschnittstellen zu ermöglichen. Beachten Sie, dass jeder Port, an dem Sieeingehenden Datenverkehr zulassen, eine potenzielle Sicherheitslücke darstellt. Überprüfen Sie

390

Page 398: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

sorgfältig die benutzerdefinierten Sicherheitsgruppen, um Schwachstellen zu minimieren. WeitereInformationen finden Sie im Steuerung des Netzwerkverkehrs mit Sicherheitsgruppen (p. 316).

Hadoop und andere Anwendungen, die Sie auf Ihrem Amazon EMR-Cluster installieren, veröffentlichenBenutzeroberflächen als auf dem Master-Knoten gehostete Websites. Aus Sicherheitsgründen stehendiese Websites bei der Verwendung von EMR-verwalteten Sicherheitsgruppen nur auf dem lokalenWebserver des Master-Knotens zur Verfügung. Daher müssen Sie eine Verbindung mit dem Master-Knotenherstellen, um sie anzuzeigen. Weitere Informationen finden Sie im Verbinden mit dem Master-Knotenüber SSH (p. 385). Hadoop veröffentlicht Benutzeroberflächen auch als Websites, die auf Core- undAufgabenknoten gehostet werden. Diese Websites sind ebenfalls nur auf dem lokalen Webserver auf demKnoten verfügbar.

Die folgende Tabelle enthält die Webschnittstellen, die Sie auf Cluster-Instances anzeigen lassenkönnen: Diese Hadoop-Schnittstellen sind in allen Clustern verfügbar. Ersetzen Sie für die Master-Instance-Schnittstellen master-public-dns-name mit dem auf der Registerkarte Summary (Übersicht)aufgeführten Master public DNS (Öffentlicher Master-DNS) in der EMR-Konsole. Für Core- und Aufgaben-Instance-Schnittstellen ersetzen Sie coretask-public-dns-name durch den für die Instanceaufgeführten Public DNS name (Öffentlicher DNS-Name). Um den Public DNS name (Öffentlicher DNS-Name) einer instance zu finden, wählen Sie in der EMR-Konsole Ihren Cluster aus der Liste, wählen Sie dieRegisterkarte Hardware, wählen Sie die ID der Instance-Gruppe, die die Instance enthält, zu der Sie eineVerbindung herstellen möchten, und notieren Sie sich dann den für die Instance angegebenen Public DNSname (Öffentlicher DNS-Name).

Name der Schnittstelle URI

Ganglia http://master-public-dns-name/ganglia/

Hadoop HDFS NameNode (EMR-Version vor-6.x)

https://master-public-dns-name– :50470/

Hadoop HDFS – NameNode http://master-public-dns-name:50070/

Hadoop HDFS – DataNode http://coretask-public-dns-name:50075/

Hadoop HDFS NameNode (EMRVersion 6.x)

https://master-public-dns-name:9871/

Hadoop HDFS DataNode (EMR-Versionvor-6.x)

https://coretask-public-dns-name– :50475/

Hadoop HDFS DataNode (EMR Version6.x)

https://coretask-public-dns-name:9865/

HBase http://master-public-dns-name:16010/

Hue http://master-public-dns-name:8888/

JupyterHub https://master-public-dns-name:9443/

Livy http://master-public-dns-name:8998/

Spark: HistoryServer http://master-public-dns-name:18080/

Tez http://master-public-dns-name:8080/tez-ui

YARN (YARN)NodeManager http://coretask-public-dns-name:8042/

YARN (YARN)ResourceManager http://master-public-dns-name:8088/

Zeppelin http://master-public-dns-name:8890/

391

Page 399: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

Da mehrere anwendungsspezifische Schnittstellen für den Master-Knoten, aber nicht für den Core- undAufgabenknoten verfügbar sind, gelten die Anweisungen in diesem Dokument speziell für den AmazonEMR-Master-Knoten. Auf die Webschnittstellen im Core- und Aufgabenknoten kann auf die gleiche Weisezugegriffen werden wie auf die Webschnittstellen im Master-Knoten.

Es gibt mehrere Möglichkeiten, auf die Webschnittstellen im Master-Knoten zuzugreifen. Am einfachstenund schnellsten stellen Sie eine Verbindung mit dem Master-Knoten mithilfe von SSH her und verwendenden Browser Lynx zum Betrachten der Websites in Ihrem SSH-Client. Lynx ist jedoch ein textbasierterBrowser mit einer eingeschränkten Benutzeroberfläche, die keine Grafiken anzeigen kann. Das folgendeBeispiel zeigt, wie Sie die Hadoop-ResourceManager-Schnittstelle mit Lynx öffnen (Lynx URLs wird auchbereitgestellt, wenn Sie sich mit SSH beim Master-Knoten anmelden).

lynx http://ip-###-##-##-###.us-west-2.compute.internal:8088/

Es gibt zwei verbleibende Optionen für den Zugriff auf Webschnittstellen im Master-Knoten, die vollständigeBrowserfunktionalität bieten. Wählen Sie eine der folgenden Optionen aus:

• Option 1 (empfohlen für technische Benutzer): Verwenden Sie einen SSH-Client, um eine Verbindungmit dem Master-Knoten herzustellen, konfigurieren Sie SSH-Tunneling mit lokaler Port-Weiterleitungund verwenden Sie einen Internetbrowser, um auf dem Master-Knoten gehostete Web-Schnittstellen zuöffnen. Durch diese Methode können Sie den Zugriff auf Webschnittstellen so konfigurieren, dass keinSOCKS-Proxy benötigt wird.

• Option 2 (empfohlen für neue Benutzer): Verwenden Sie einen SSH-Client, um eine Verbindung mitdem Master-Knoten herzustellen, konfigurieren Sie SSH-Tunneling mit dynamischer Port-Weiterleitungund konfigurieren Sie Ihren Internetbrowser so, dass ein Add-On wie FoxyProxy oder SwitchySharpverwendet wird, um Ihre SOCKS-Proxy-Einstellungen zu verwalten. Mit dieser Methode könnenSie URLs basierend auf Textmustern automatisch filtern und die Proxy-Einstellungen auf Domänenbeschränken, die dem Format des DNS-Namens des Master-Knotens entsprechen. Das Browser-Add-On aktiviert und deaktiviert den Proxy automatisch, wenn Sie zwischen den auf dem Master-Knotengehosteten Websites und solchen im Internet wechseln. Weitere Informationen zum Konfigurieren vonFoxyProxy für Firefox und Google Chrome finden Sie unter Option 2, Teil 2: Konfigurieren der Proxy-Einstellungen zum Anzeigen von auf dem Master-Knoten gehosteten Websites (p. 397).

Mit Amazon EMR Version 5.25.0 oder höher können Sie über die Konsole auf die Benutzeroberfläche desSpark History Servers zugreifen, ohne einen Web-Proxy über eine SSH-Verbindung einzurichten. WeitereInformationen finden Sie unter Zugriff auf den persistenten Spark History Server mit nur einem Klick.

Themen• Option 1: Einrichten eines SSH-Tunnels zum Master-Knoten mithilfe der lokalen Port-

Weiterleitung (p. 392)• Option 2, Teil 1: Einrichten eines SSH-Tunnels zum Master-Knoten mithilfe der dynamischen Port-

Weiterleitung (p. 393)• Option 2, Teil 2: Konfigurieren der Proxy-Einstellungen zum Anzeigen von auf dem Master-Knoten

gehosteten Websites (p. 397)• Zugreifen auf Webschnittstellen im Master-Knoten mithilfe der Konsole (p. 400)

Option 1: Einrichten eines SSH-Tunnels zum Master-Knotenmithilfe der lokalen Port-WeiterleitungStellen Sie eine Verbindung mit dem lokalen Webserver im Master-Knoten her, indem Sie einen SSH-Tunnel zwischen Ihrem Computer und dem Master-Knoten erstellen. Dies wird auch als Port-Weiterleitungbezeichnet. Wenn Sie keinen SOCKS-Proxy verwenden möchten, können Sie einen SSH-Tunnel zumMaster-Knoten mithilfe der lokalen Port-Weiterleitung einrichten. Bei der lokalen Port-Weiterleitung geben

392

Page 400: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

Sie ungenutzte lokale Ports an, die zum Weiterleiten von Datenverkehr zu bestimmten Remote-Ports aufdem lokalen Webserver des Master-Knotens verwendet werden.

Zum Einrichten eines SSH-Tunnels mithilfe der lokalen Port-Weiterleitung benötigen Sie den öffentlichenDNS-Namen des Master-Knotens und die Datei mit dem privaten Schlüssel Ihres Schlüsselpaares. WeitereInformationen darüber, wie Sie den öffentlichen DNS-Namen für den Master abrufen, finden Sie unter Sorufen Sie den öffentlichen DNS-Namen für den Master-Knoten mit der Amazon EMR-Konsole ab (p. 386).Weitere Informationen darüber, wie Sie auf Ihr Schlüsselpaar zugreifen, finden Sie unter Amazon EC2-Schlüsselpaare im Amazon EC2-Benutzerhandbuch für Linux-Instances. Weitere Informationen zu denWebsites, die Sie sich auf dem Master-Knoten ansehen können, finden Sie unter Anzeigen von aufAmazon EMR-Clustern gehosteten Webschnittstellen (p. 390).

Einrichten eines SSH-Tunnels zum Master-Knoten mithilfe der lokalen Port-Weiterleitung unter Linux, Unix und Mac OS X

So richten Sie einen SSH-Tunnel mithilfe der lokalen Port-Weiterleitung im Terminal ein

1. Stellen Sie sicher, dass Sie eingehenden SSH-Datenverkehr zugelassen haben. DetaillierteAnweisungen finden Sie unter Bevor Sie eine Verbindung herstellen: Autorisieren von eingehendemDatenverkehr (p. 384).

2. Öffnen Sie ein Terminal-Fenster. Wählen Sie unter Mac OS X Applications > Utilities > Terminal(Anwendungen > Dienstprogramme > Terminal) aus. In anderen Linux-Distributionen befindet sich„Terminal“ in der Regel unter Applications > Accessories > Terminal (Anwendungen > Zubehör >Terminal).

3. Geben Sie den folgenden Befehl ein, um einen SSH-Tunnel auf Ihrem lokalen Computer zu öffnen.Dieser Beispielbefehl greift auf die ResourceManager-Webschnittstelle zu, indem der Datenverkehr aufdem lokalen Port 8157 (einem zufällig ausgewählten ungenutzten lokalen Port) an Port 8088 auf demlokalen Webserver des Master-Knotens weitergeleitet wird. 

Ersetzen Sie im Befehl ~/mykeypair.pem durch den Speicherort und Dateinamen Ihrer.pemDateiund Ersetzen ec2-###-##-##-###.compute-1.amazonaws.com durch den öffentlichenDNS-Namen für den Master-Knoten Ihres Clusters. Ersetzen Sie für den Zugriff auf eine andereWebschnittstelle 8088 mit der entsprechenden Portnummer, z. B. 8088 durch 8890 für die Zeppelin-Schnittstelle.

ssh -i ~/mykeypair.pem -N -L 8157:ec2-###-##-##-###.compute-1.amazonaws.com:8088 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

-L bezeichnet die Verwendung der lokalen Port-Weiterleitung, mit der Sie einen lokalen Port angebenkönnen, mit dem Daten an den identifizierten Remote-Port auf dem lokalen Webserver des Master-Knotens weitergeleitet werden.

Nachdem Sie diesen Befehl ausgegeben haben, bleibt das Terminal geöffnet und gibt keine Antwortzurück. 

4. Zum Öffnen der ResourceManager-Webschnittstelle in Ihrem Browser geben Sie http://localhost:8157/ in die Adressleiste ein.

5. Wenn Sie die Arbeit mit den Webschnittstellen im Master-Knoten beendet haben, schließen Sie dieTerminal-Fenster.

Option 2, Teil 1: Einrichten eines SSH-Tunnels zum Master-Knoten mithilfe der dynamischen Port-WeiterleitungStellen Sie eine Verbindung mit dem lokalen Webserver im Master-Knoten her, indem Sie einen SSH-Tunnel zwischen Ihrem Computer und dem Master-Knoten erstellen. Dies wird auch als Port-Weiterleitung

393

Page 401: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

bezeichnet. Wenn Sie Ihren SSH-Tunnel mithilfe der dynamischen Port-Weiterleitung erstellen, wird dergesamte, an einen bestimmten ungenutzten lokalen Port geleitete Datenverkehr an den lokalen Web-Server des Master-Knotens weitergeleitet. Dies erstellt einen SOCKS-Proxy. Anschließend könnenSie Ihren Internetbrowser so konfigurieren, dass ein Add-On wie FoxyProxy oder SwitchyOmega zumVerwalten Ihrer SOCKS-Proxy-Einstellungen verwendet wird.

Mit einem Add-On für die Proxy-Verwaltung können Sie URLs basierend auf Textmustern automatischfiltern und die Proxy-Einstellungen auf Domänen beschränken, die dem Format des öffentlichen DNS-Namens des Master-Knotens entsprechen. Das Browser-Add-On aktiviert und deaktiviert den Proxyautomatisch, wenn Sie zwischen den auf dem Master-Knoten gehosteten Websites und solchen im Internetwechseln.

Bevor Sie beginnen, benötigen Sie den öffentlichen DNS-Namen des Master-Knotens und die Datei mitdem privaten Schlüssel Ihres Schlüsselpaares. Weitere Informationen darüber, wie Sie den öffentlichenDNS-Namen für den Master abrufen, finden Sie unter So rufen Sie den öffentlichen DNS-Namen fürden Master-Knoten mit der Amazon EMR-Konsole ab (p. 386). Weitere Informationen darüber, wieSie auf Ihr Schlüsselpaar zugreifen, finden Sie unter Amazon EC2-Schlüsselpaare im Amazon EC2-Benutzerhandbuch für Linux-Instances. Weitere Informationen zu den Websites, die Sie sich auf demMaster-Knoten ansehen können, finden Sie unter Anzeigen von auf Amazon EMR-Clustern gehostetenWebschnittstellen (p. 390).

Einrichten eines SSH-Tunnels zum Master-Knoten mithilfe der dynamischen Port-Weiterleitung unter Linux, Unix und Mac OS X

So richten Sie einen SSH-Tunnel mithilfe der dynamischen Port-Weiterleitung unter Linux, Unixund Mac OS X ein

1. Stellen Sie sicher, dass Sie eingehenden SSH-Datenverkehr zugelassen haben. DetaillierteAnweisungen finden Sie unter Bevor Sie eine Verbindung herstellen: Autorisieren von eingehendemDatenverkehr (p. 384).

2. Öffnen Sie ein Terminal-Fenster. Wählen Sie unter Mac OS X Applications > Utilities > Terminal(Anwendungen > Dienstprogramme > Terminal) aus. In anderen Linux-Distributionen befindet sich„Terminal“ in der Regel unter Applications > Accessories > Terminal (Anwendungen > Zubehör >Terminal).

3. Geben Sie den folgenden Befehl ein, um einen SSH-Tunnel auf Ihrem lokalen Computer zuöffnen. Ersetzen ~/mykeypair.pem durch den Speicherort und Dateinamen Ihrer .pem-Dateiersetzen 8157 mit einer ungenutzten, lokalen Portnummer und Ersetzen c2-###-##-##-###.compute-1.amazonaws.com durch den öffentlichen DNS-Namen für den Master-Knoten IhresClusters.

ssh -i ~/mykeypair.pem -N -D 8157 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

Nachdem Sie diesen Befehl ausgeführt haben, bleibt das Terminal geöffnet und gibt keine Antwortzurück.

Note

-D bezeichnet die Verwendung der dynamischen Port-Weiterleitung. Damit können Sie einenlokalen Port für die Weiterleitung von Datenverkehr zu allen Remote-Ports auf dem lokalenWebserver des Master-Knotens angeben. Die dynamische Port-Weiterleitung erstellt einenlokalen SOCKS-Proxy, der den im Befehl angegebenen Port überwacht.

4. Wenn der Tunnel aktiv ist, konfigurieren Sie einen SOCKS-Proxy für Ihren Browser. WeitereInformationen finden Sie im Option 2, Teil 2: Konfigurieren der Proxy-Einstellungen zum Anzeigen vonauf dem Master-Knoten gehosteten Websites (p. 397).

5. Wenn Sie die Arbeit mit den Webschnittstellen im Master-Knoten beendet haben, schließen Sie dasTerminal-Fenster.

394

Page 402: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

Einrichten eines SSH-Tunnels mithilfe der dynamischen Port-Weiterleitung mit derAWS CLISie können eine SSH-Verbindung mit dem Master-Knoten mithilfe der AWS CLI unter Windows, Linux,Unix und Mac OS X erstellen. Wenn Sie die AWS CLI unter Linux, Unix oder Mac OS X verwenden,müssen Sie Berechtigungen für die .pem-Datei wie in So konfigurieren Sie Berechtigungen für die Dateimit dem privaten Schlüssel Ihres Schlüsselpaares (p. 388) gezeigt festlegen. Wenn Sie die AWS CLIunter Windows verwenden, muss PuTTY in der Pfad-Umgebungsvariablen angezeigt werden. Andernfallserhalten Sie möglicherweise eine Fehlermeldung wie OpenSSH or PuTTY not available.

So richten Sie einen SSH-Tunnel mithilfe der dynamischen Port-Weiterleitung mit der AWS CLI ein

1. Stellen Sie sicher, dass Sie eingehenden SSH-Datenverkehr zugelassen haben. DetaillierteAnweisungen finden Sie unter Bevor Sie eine Verbindung herstellen: Autorisieren von eingehendemDatenverkehr (p. 384).

2. Erstellen Sie eine SSH-Verbindung mit dem Master-Knoten wie unter Verbinden mit dem Master-Knoten über die AWS CLI (p. 390) gezeigt.

3. Geben Sie Folgendes ein, um die Cluster-Kennung abzurufen:

aws emr list-clusters

Die Ausgabe listet Ihre Cluster einschließlich des Clusters IDs auf. Notieren Sie die Cluster-ID für denCluster, mit dem Sie eine Verbindung herstellen.

"Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" }},"NormalizedInstanceHours": 4,"Id": "j-2AL4XXXXXX5T9","Name": "AWS CLI cluster"

4. Geben Sie den folgenden Befehl ein, um einen SSH-Tunnel zum Master-Knoten mithilfe derdynamischen Port-Weiterleitung zu öffnen. Ersetzen Sie im folgenden Beispiel j-2AL4XXXXXX5T9durch die Cluster-ID ersetzen ~/mykeypair.key mit dem Speicherort und Dateinamen Ihrer .pem-Datei (für Linux, Unix und Mac OS X) oder der .ppk-Datei (für Windows).

aws emr socks --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key

Note

Mit dem Socks-Befehl wird die dynamische Port-Weiterleitung am lokalen Port 8157automatisch konfiguriert. Derzeit kann diese Einstellung nicht geändert werden.

5. Wenn der Tunnel aktiv ist, konfigurieren Sie einen SOCKS-Proxy für Ihren Browser. WeitereInformationen finden Sie im Option 2, Teil 2: Konfigurieren der Proxy-Einstellungen zum Anzeigen vonauf dem Master-Knoten gehosteten Websites (p. 397).

6. Wenn Sie die Arbeit mit den Webschnittstellen im Master-Knoten beendet haben, schließen Sie dasAWS CLI-Fenster.

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

395

Page 403: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

Einrichten eines SSH-Tunnels zum Master-Knoten mithilfe der dynamischen Port-Weiterleitung unter WindowsWindows-Benutzer können einen SSH-Tunnel zum Master-Knoten mithilfe eines SSH-Clients wie z. B.PuTTY erstellen. Bevor Sie eine Verbindung mit dem Amazon EMR-Master-Knoten herstellen, sollten SiePuTTY und PuTTYgen herunterladen und installieren. Sie können diese Tools auf der PuTTY-Download-Seite herunterladen.

PuTTYunterstützt nicht das von Amazon EC2 generierte Dateiformat für den privaten Schlüssel desSchlüsselpaares (.pem). Konvertieren Sie mithilfe von PuTTYgen Ihre Schlüsseldatei in das erforderlichePuTTY-Format (.ppk). Sie müssen Ihren Schlüssel in dieses Format (.ppk) konvertieren, bevor Siemithilfe von PuTTY eine Verbindung mit dem Master-Knoten herstellen können.

Weitere Informationen zum Konvertieren von Schlüsseln finden Sie unter Konvertieren Ihres privatenSchlüssels mit PuTTYgen im Amazon EC2-Benutzerhandbuch für Linux-Instances.

So richten Sie einen SSH-Tunnel mithilfe der dynamischen Port-Weiterleitung unter Windows ein

1. Stellen Sie sicher, dass Sie eingehenden SSH-Datenverkehr zugelassen haben. DetaillierteAnweisungen finden Sie unter Bevor Sie eine Verbindung herstellen: Autorisieren von eingehendemDatenverkehr (p. 384).

2. Doppelklicken Sie auf putty.exe, um PuTTY zu starten. Sie können PuTTY auch über die Windows-Programmliste starten.

Note

Wenn bereits eine aktive SSH-Sitzung mit dem Master-Knoten vorhanden ist, können Sieeinen Tunnel hinzufügen. Klicken Sie hierfür mit der rechten Maustaste auf die PuTTY-Titelleiste und wählen Sie Change Settings (Einstellungen ändern) aus.

3. Falls erforderlich, wählen Sie in der Category (Kategorie)-Liste Session (Sitzung) aus.4. Geben Sie im Feld Host Name ein.hadoop@MasterPublicDNS. Beispiel: hadoop@ec2-###-##-

##-###.compute-1.amazonaws.com.5. Erweitern Sie in der Liste Category (Kategorie) die Option Connection > SSH (Verbindung > SSH), und

wählen Sie anschließend Auth aus.6. Klicken Sie bei Private key file for authentication (Private Schlüsseldatei für Authentifizierung) auf

Browse (Durchsuchen), und wählen Sie die .ppk-Datei aus, die Sie generiert haben.Note

PuTTYunterstützt nicht das von Amazon EC2 generierte Dateiformat für den privatenSchlüssel des Schlüsselpaares (.pem). Konvertieren Sie mithilfe von PuTTYgen IhreSchlüsseldatei in das erforderliche PuTTY-Format (.ppk). Sie müssen Ihren Schlüssel indieses Format (.ppk) konvertieren, bevor Sie mithilfe von PuTTY eine Verbindung mit demMaster-Knoten herstellen können.

7. Erweitern Sie in der Liste Category (Kategorie) die Option Connection > SSH (Verbindung (SSH)), undwählen Sie anschließend Tunnels (Tunnel) aus.

8. Geben Sie im Feld Source port (Quellport) 8157 ein (einen ungenutzten lokalen Port) und wählen Siedann Add (Hinzufügen) aus.

9. Lassen Sie das Feld Destination (Zieladresse) leer.10. Wählen Sie die Optionen Dynamic (Dynamisch) und Auto.11. Klicken Sie auf Open.12. Wählen Sie Yes (Ja) aus, um die PuTTY-Sicherheitswarnung zu schließen.

Important

Wenn Sie sich beim Master-Knoten anmelden, geben Sie hadoop ein, wenn Sie zur Angabeeines Benutzernamens aufgefordert werden.

396

Page 404: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

13. Wenn der Tunnel aktiv ist, konfigurieren Sie einen SOCKS-Proxy für Ihren Browser. WeitereInformationen finden Sie im Option 2, Teil 2: Konfigurieren der Proxy-Einstellungen zum Anzeigen vonauf dem Master-Knoten gehosteten Websites (p. 397).

14. Wenn Sie die Arbeit mit den Webschnittstellen im Master-Knoten beendet haben, schließen Sie dasPuTTY-Fenster.

Option 2, Teil 2: Konfigurieren der Proxy-Einstellungen zumAnzeigen von auf dem Master-Knoten gehosteten WebsitesWenn Sie einen SSH-Tunnel mit dynamischer Port-Weiterleitung verwenden, müssen Sie ein Add-On fürdie SOCKS-Proxy-Verwaltung einsetzen, um die Proxy-Einstellungen in Ihrem Browser zu steuern. Miteinem SOCKS-Proxy-Verwaltungstool können Sie URLs basierend auf Textmustern automatisch filternund die Proxy-Einstellungen auf Domänen beschränken, die der Form des öffentlichen DNS-Namens desMaster-Knotens entsprechen. Das Browser-Add-On aktiviert und deaktiviert den Proxy automatisch, wennSie zwischen den auf dem Master-Knoten gehosteten Websites und solchen im Internet wechseln. Um IhreProxy-Einstellungen zu verwalten, konfigurieren Sie Ihren Browser für die Verwendung eines Add-Ons wieFoxyProxy oder SwitchyOmega.

Weitere Informationen zum Erstellen eines SSH-Tunnels finden Sie unter Option 2, Teil 1: Einrichteneines SSH-Tunnels zum Master-Knoten mithilfe der dynamischen Port-Weiterleitung (p. 393). WeitereInformationen zu den verfügbaren Webschnittstellen finden Sie unter Anzeigen von auf Amazon EMR-Clustern gehosteten Webschnittstellen (p. 390).

Nehmen Sie die folgenden Einstellungen auf, wenn Sie Ihr Proxy-Add-on einrichten:

• Verwenden Sie localhost als Host-Adresse.• Verwenden Sie dieselbe lokale Portnummer, die Sie zum Einrichten des SSH-Tunnels mit dem Master-

Knoten in Option 2, Teil 1: Einrichten eines SSH-Tunnels zum Master-Knoten mithilfe der dynamischenPort-Weiterleitung (p. 393) ausgewählt haben. Beispiel: Port 8157. Dieser Port muss auch mit derPortnummer übereinstimmen, die Sie in PuTTY oder einem anderen Terminal-Emulator verwenden, mitdem Sie eine Verbindung herstellen.

• Geben Sie das Protokoll SOCKS v5 an. Mit SOCKS v5 können Sie optional die Benutzerautorisierungeinrichten.

• URL Patterns (URL-Muster)

Die folgenden URL-Muster sollten zugelassen und mit einem Platzhaltermustertyp angegeben werden:• Die Muster *ec2*.amazonaws.com* und *10*.amazonaws.com* stimmen mit dem öffentlichen DNS-

Namen von Clustern in US-Regionen überein.• Die Muster *ec2*.compute* und *10*.compute* stimmen mit dem öffentlichen DNS-Namen von

Clustern in allen anderen Regionen überein.• Ein 10.*-Muster, um den Zugriff auf die JobTracker-Protokolldateien in Hadoop zu ermöglichen. Ändern

Sie diesen Filter bei Konflikten mit Ihrem Netzwerkzugriffsplan.• Die Muster *.ec2.internal* und *.compute.internal* stimmen mit den privaten (internen) DNS-Namen

von Clustern in der Region us-east-1 bzw. allen anderen Regionen überein.

Beispiel: Konfigurieren von FoxyProxy für Firefox

Das folgende Beispiel zeigt eine FoxyProxy-Standardkonfiguration (Version 7.5.1) für Mozilla Firefox.

FoxyProxy bietet eine Reihe von Tools für die Proxy-Verwaltung. Sie können einen Proxy-Server für URLsverwenden, die Mustern entsprechen, die den Domänen entsprechen, die von den Amazon EC2-Instancesin Ihrem Amazon EMR-Cluster verwendet werden.

397

Page 405: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

So installieren und konfigurieren Sie FoxyProxy mit Mozilla Firefox

1. Wechseln Sie in Firefox zu https://addons.mozilla.org/, suchen Sie nach FoxyProxy Standard undbefolgen Sie die Anweisungen zum Hinzufügen von FoxyProxy zu Firefox.

2. Erstellen Sie mit einem Texteditor eine JSON-Datei mit dem Namen foxyproxy-settings.jsonaus der folgenden Beispielkonfiguration.

{ "k20d21508277536715": { "active": true, "address": "localhost", "port": 8157, "username": "", "password": "", "type": 3, "proxyDNS": true, "title": "emr-socks-proxy", "color": "#0055E5", "index": 9007199254740991, "whitePatterns": [ { "title": "*ec2*.amazonaws.com*", "active": true, "pattern": "*ec2*.amazonaws.com*", "importedPattern": "*ec2*.amazonaws.com*", "type": 1, "protocols": 1 }, { "title": "*ec2*.compute*", "active": true, "pattern": "*ec2*.compute*", "importedPattern": "*ec2*.compute*", "type": 1, "protocols": 1 }, { "title": "10.*", "active": true, "pattern": "10.*", "importedPattern": "http://10.*", "type": 1, "protocols": 2 }, { "title": "*10*.amazonaws.com*", "active": true, "pattern": "*10*.amazonaws.com*", "importedPattern": "*10*.amazonaws.com*", "type": 1, "protocols": 1 }, { "title": "*10*.compute*", "active": true, "pattern": "*10*.compute*", "importedPattern": "*10*.compute*", "type": 1, "protocols": 1 }, { "title": "*.compute.internal*", "active": true, "pattern": "*.compute.internal*",

398

Page 406: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

"importedPattern": "*.compute.internal*", "type": 1, "protocols": 1 }, { "title": "*.ec2.internal* ", "active": true, "pattern": "*.ec2.internal*", "importedPattern": "*.ec2.internal*", "type": 1, "protocols": 1 } ], "blackPatterns": [] }, "logging": { "size": 100, "active": false }, "mode": "patterns", "browserVersion": "68.12.0", "foxyProxyVersion": "7.5.1", "foxyProxyEdition": "standard"}

3. Öffnen Sie die Firefox-Seite Manage Your Extensions (Verwalten Ihrer Erweiterungen) (zuabout:addons und wählen Sie dann Extensions (Erweiterungen) aus).

4. Wählen Sie StandardFoxyProxy und dann die Schaltfläche für weitere Optionen aus (die Schaltfläche,die wie eine Ellipse aussieht).

5. Wählen Sie Options (Optionen) aus dem Dropdown-Menü aus.6. Wählen Sie im linken Menü Import Settings (Einstellungen importieren) aus.7. Wählen Sie auf der Seite Import Settings die Option Import Settings unter Import Settings from

FoxyProxy 6.0+, navigieren Sie zum Speicherort der erstellten -Datei, wählen Sie die Datei aus undklicken Sie auf foxyproxy-settings.jsonOpen.

8. Wählen Sie OK, wenn Sie dazu aufgefordert werden, die vorhandenen Einstellungen zu überschreibenund die neue Konfiguration zu speichern.

Beispiel: Konfigurieren von SwitchyOmega für Chrome

Das folgende Beispiel zeigt, wie Sie die Erweiterung SwitchyOmega für Google Chrome einrichten. MitSwitchyOmega können Sie mehrere Proxys konfigurieren, verwalten und zwischen ihnen wechseln.

So installieren und konfigurieren Sie SwitchyOmega mit Google Chrome

1. Gehen Sie zu https://chrome.google.com/webstore/category/extensions, suchen Sie nach ProxySwitchyOmega und fügen Sie ihn zu Chrome hinzu.

2. Wählen Sie New profile (Neues Profil) aus und geben Sie emr-socks-proxy als Profilnamen ein.3. Wählen Sie Engine-Profil und dann Create (Erstellen) aus. Proxy Auto-Configuration-Dateien ( RI)

helfen Ihnen, eine Zulassungsliste für Browseranfragen zu definieren, die an einen Web-Proxy-Serverweitergeleitet werden sollen.

4. Ersetzen Sie im Feld Validierungsskript den Inhalt durch das folgende Skript, das definiert, welcheURLs über Ihren Web-Proxy-Server weitergeleitet werden soll. Wenn Sie beim Einrichten Ihres SSH-Tunnels eine andere Portnummer angegeben haben, ersetzen Sie 8157 durch Ihre Portnummer.

function FindProxyForURL(url, host) { if (shExpMatch(url, "*ec2*.amazonaws.com*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*ec2*.compute*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "http://10.*")) return 'SOCKS5 localhost:8157';

399

Page 407: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAnzeigen von auf Amazon EMR-

Clustern gehosteten Webschnittstellen

if (shExpMatch(url, "*10*.compute*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*10*.amazonaws.com*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*.compute.internal*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*ec2.internal*")) return 'SOCKS5 localhost:8157'; return 'DIRECT';}

5. Wählen Sie unter Actions (Aktionen) die Option Apply changes (Änderungen anwenden) aus, um IhreProxy-Einstellungen zu speichern.

6. Wählen Sie in der Chrome-Symbolleiste SwitchyOmega und dann das Profil emr-socks-proxy aus.

Zugreifen auf eine Webschnittstelle im BrowserUm eine Webschnittstelle zu öffnen, geben Sie den öffentlichen DNS-Namen Ihres Master- oder Core-Knotens gefolgt von der Portnummer für die von Ihnen gewählte Schnittstelle in die Adressleiste IhresBrowsers ein. Das folgende Beispiel zeigt die URL, die Sie eingeben würden, um eine Verbindung mit demSpark HistoryServer herzustellen.

http://master-public-dns-name:18080/

Anweisungen zum Abrufen des öffentlichen DNS-Namens eines Knotens finden Sie unter Abrufen desöffentlichen DNS-Namens für den Master-Knoten (p. 386). Eine vollständige Liste der WebschnittstelleURLs finden Sie unter Anzeigen von auf Amazon EMR-Clustern gehosteten Webschnittstellen (p. 390).

Zugreifen auf Webschnittstellen im Master-Knoten mithilfe derKonsoleWenn Sie bereits Ihren SSH-Tunnel so konfiguriert haben, dass der Amazon EMR-Master-Knotendynamische Port-Weiterleitung verwendet, können Sie die Webschnittstellen über die Konsole öffnen.

So öffnen Sie die Webschnittstellen mithilfe der Konsole

1. Vergewissern Sie sich, dass Sie einen SSH-Tunnel zum Master-Knoten hergestellt und ein Add-On zurProxy-Verwaltung für Ihren Browser konfiguriert haben.

2. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce.3. Wählen Sie auf der Seite Cluster List (Cluster-Liste) den Link für Ihren Cluster aus.4. Wählen Sie in den Cluster-Details unter Connections (Verbindungen) den Link für die Webschnittstelle

aus, die Sie in Ihrem Browser öffnen möchten.

5. Wählen Sie alternativ den Link View All (Alle anzeigen) aus, um Links zu allen verfügbarenWebschnittstellen im Master-Knoten Ihres Clusters anzuzeigen. Wenn Sie die Links auswählen,werden die Schnittstellen in Ihrem Browser geöffnet.

400

Page 408: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeenden eines Clusters

Wenn kein SSH-Tunnel mit dem Master-Knoten geöffnet ist, wählen Sie Enable Web Connection aus,um Anweisungen zum Erstellen eines Tunnels zu erhalten.

Note

Wenn Sie einen SSH-Tunnel mithilfe der lokalen Port-Weiterleitung konfiguriert haben,erkennt die Amazon EMR-Konsole die Verbindung nicht.

Beenden eines ClustersIn diesem Abschnitt werden die Methoden zum Beenden eines Clusters beschrieben. Informationenzum Aktivieren des Beendigungsschutzes und zum automatischen Beenden von Clustern finden Sieunter Control Cluster Termination (p. 116). Sie können Cluster mit dem Status STARTING, RUNNINGoderWAITING beenden. Ein Cluster mit dem Status WAITING muss beendet werden. Andernfalls wird erunbegrenzt ausgeführt, und verursacht Gebühren für Ihr Konto. Sie können einen Cluster beenden, der denStatus STARTING nicht verlässt oder der einen bestimmten Schritt nicht durchführen kann.

Wenn Sie einen Cluster beenden, bei dem der Beendigungsschutz aktiviert ist, müssen Sie denBeendigungsschutz deaktivieren, bevor Sie den Cluster beenden können. Cluster können mithilfe derKonsole, per AWS CLI oder programmgesteuert über die TerminateJobFlows-API beendet werden.

Abhängig von der Konfiguration des Clusters kann es 5-20 Minuten dauern, bis der Cluster vollständigbeenden ist und die zugeordneten Ressourcen (zum Beispiel EC2-Instances) freigegeben sind.

401

Page 409: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeenden eines Clusters mithilfe der Konsole

Beenden eines Clusters mithilfe der KonsoleSie können einen oder mehrere Cluster mithilfe der Amazon EMR-Konsole beenden. Die Schritte zumBeenden eines Clusters über die Konsole variieren je nachdem, ob der Beendigungsschutz aktiviert oderdeaktiviert ist. Um einen geschützten Cluster zu beenden, müssen Sie zuerst den Beendigungsschutzdeaktivieren.

So beenden Sie einen Cluster ohne Beendigungsschutz

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon EMR-Konsoleunter https://console.aws.amazon.com/elasticmapreduce/.

2. Wählen Sie den zu beendenden Cluster aus. Sie können mehrere Cluster auswählen und gleichzeitigbeenden.

3. Wähen Sie Terminate.4. Wählen Sie bei Aufforderung Terminate (Beenden) aus.

Amazon EMR beendet die Instances im Cluster und stoppt das Speichern von Protokolldaten.

So beenden Sie einen Cluster mit Beendigungsschutz

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon EMR-Konsoleunter https://console.aws.amazon.com/elasticmapreduce/.

2. Wählen Sie auf der Seite Cluster List (Cluster-Liste) den zu beendenden Cluster aus. Sie könnenmehrere Cluster auswählen und gleichzeitig beenden.

3. Wähen Sie Terminate.4. Wenn Sie dazu aufgefordert werden, wählen Sie Change (Ändern) aus, um den Beendigungsschutz zu

deaktivieren. Wenn Sie mehrere Cluster ausgewählt haben, wählen Sie Turn off all (Alle deaktivieren)aus, um den Beendigungsschutz für alle Cluster auf einmal zu deaktivieren.

5. Wählen Sie im Dialogfeld Terminate clusters (Cluster beenden) für Termination Protection(Beendigungsschutz) die Option Off (Aus) aus und klicken Sie zur Bestätigung auf das Häkchen.

6. Klicken Sie auf Terminate (Beenden).

Amazon EMR beendet die Instances im Cluster und stoppt das Speichern von Protokolldaten.

Beenden eines Clusters mithilfe der AWS CLISo beenden Sie einen ungeschützten Cluster mit der AWS CLI

Verwenden Sie den Unterbefehl terminate-clusters mit dem Parameter --cluster-ids, um einenungeschützten Cluster über die AWS CLI zu beenden.

• Geben Sie den folgenden Befehl ein, um einen einzelnen Cluster zu beenden. Ersetzen Sie dabeij-3KVXXXXXXX7UG mit Ihrer Cluster-ID.

aws emr terminate-clusters --cluster-ids j-3KVXXXXXXX7UG

Geben Sie den folgenden Befehl ein, um mehrere Cluster zu beenden. Ersetzen Sie dabeij-3KVXXXXXXX7UG und j-WJ2XXXXXX8EU mit Ihren Cluster-IDs.

aws emr terminate-clusters --cluster-ids j-3KVXXXXXXX7UG j-WJ2XXXXXX8EU

402

Page 410: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeenden eines Clusters mithilfe der API

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

So beenden Sie einen geschützten Cluster mit der AWS CLI

Um einen geschützten Cluster mit der AWS CLI zu beenden, deaktivieren Sie zuerst mit dem Unterbefehlmodify-cluster-attributes und dem Parameter --no-termination-protected denBeendigungsschutz. Verwenden Sie dann den Unterbefehl terminate-clusters mit dem Parameter --cluster-ids, um den Cluster zu beenden.

1. Geben Sie den folgenden Befehl ein, um den Beendigungsschutz zu deaktivieren. Ersetzen Sie dabeij-3KVTXXXXXX7UG durch Ihre Cluster-Kennung.

aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected

2. Geben Sie den folgenden Befehl ein, um den Cluster zu beenden. Ersetzen Sie dabeij-3KVXXXXXXX7UG mit Ihrer Cluster-ID.

aws emr terminate-clusters --cluster-ids j-3KVXXXXXXX7UG

Geben Sie den folgenden Befehl ein, um mehrere Cluster zu beenden. Ersetzen Sie dabeij-3KVXXXXXXX7UG und j-WJ2XXXXXX8EU mit Ihren Cluster-IDs.

aws emr terminate-clusters --cluster-ids j-3KVXXXXXXX7UG j-WJ2XXXXXX8EU

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Beenden eines Clusters mithilfe der APIDer Vorgang TerminateJobFlows beendet die Schrittverarbeitung, lädt alle Protokolldateien ausAmazon EC2 in Amazon S3 hoch (falls konfiguriert) und beendet den Hadoop-Cluster. Ein Cluster wirdaußerdem automatisch beendet, wenn Sie in einer KeepJobAliveWhenNoSteps-Anforderung False aufRunJobFlows festlegen.

Sie können diese Aktion zum Beenden eines einzelnen Clusters oder einer Liste von Clustern (über dieCluster-IDs) verwenden.

Weitere Informationen zu den speziellen Eingabeparametern von TerminateJobFlows finden Sie unterTerminateJobFlows. Weitere Informationen zu den grundlegenden Parametern in der Anfrage finden Sieunter Common Request Parameters.

Skalieren von Cluster-RessourcenAls Reaktion auf Workloads mit unterschiedlichen Anforderungen können Sie die Anzahl der für einenAmazon EMR-Cluster verfügbaren Amazon EC2-Instances automatisch oder manuell festlegen. Umdie automatische Skalierung zu verwenden, haben Sie zwei Optionen. Sie können die EMR-verwalteteSkalierung aktivieren oder eine benutzerdefinierte Richtlinie für automatische Skalierung erstellen. Diefolgende Tabelle beschreibt die Unterschiede zwischen den Optionen.

403

Page 411: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSkalieren von Cluster-Ressourcen

  EMR-verwaltete Skalierung Benutzerdefinierte automatischeSkalierung

Skalieren von Richtlinien undRegeln

Keine Richtlinie erforderlich.EMR verwaltet die automatischeSkalierungsaktivität durchkontinuierliche Auswertung vonCluster-Metriken und optimierteSkalierungsentscheidungen.

Sie müssen die Auto Scaling-Richtlinien und -Regelndefinieren und verwalten,z. B. die spezifischenBedingungen, die Skalierungen,Auswertungszeiträume,Ruhephasen usw. auslösen.

Unterstützte EMR-Release-Versionen

Amazon EMR Version 5.30.0und höher (außer Amazon EMRVersion 6.0.0)

Amazon EMR Version 4.0.0 undhöher

UnterstützteClusterzusammenstellung

Instance-Gruppen oder Instance-Flotten

Nur Instance-Gruppen

Konfiguration vonSkalierungsgrenzen

Skalierungsgrenzwerte werdenfür den gesamten Clusterkonfiguriert.

Skalierungslimits können nur fürjede Instance-Gruppe konfiguriertwerden.

Häufigkeit der Auswertung vonMetriken

Alle 5 bis 10 Sekunden

Eine häufigere Auswertungvon Metriken ermöglichtes EMR, präzisereSkalierungsentscheidungen zutreffen.

Sie können dieAuswertungszeiträume nurin Fünf-Minuten-Schrittendefinieren.

Unterstützte Anwendungen Es werden nur YARN-Anwendungen wie Spark,Hadoop, Hive, Flink unterstützt.

Andere Anwendungen, wiePresto, werden derzeit nichtunterstützt.

Sie können auswählen, welcheAnwendungen unterstütztwerden, wenn Sie die Regeln füreine automatische Skalierungdefinieren.

Überlegungen

• Ein Amazon EMR-Cluster besteht immer aus einem oder drei Master-Knoten. Sie können die Anzahl derMasterknoten nicht skalieren, nachdem Sie den Cluster zuerst konfiguriert haben. Sie können nur Kern-und Aufgabenknoten in einem Cluster skalieren.

• Die Neukonfiguration und Größenänderung einer Instance-Gruppe kann nicht gleichzeitig erfolgen. Wenneine Neukonfiguration initiiert wird, während die Größe einer Instance-Gruppe geändert wird, kann dieNeukonfiguration erst durchgeführt werden, nachdem die Größenänderung abgeschlossen wurde (undumgekehrt).

Themen• Verwenden von EMR-verwalteten Skalierung in Amazon EMR (p. 405)• Verwenden der automatischen Skalierung mit einer benutzerdefinierten Richtlinie für Instance-Gruppen

(p. 421)• Manuelle Größenanpassung eines aktiven Clusters (p. 429)• Cluster-Scale-Down (p. 435)

404

Page 412: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Verwenden von EMR-verwalteten Skalierung inAmazon EMRMit Amazon EMR Version 5.30.0 und höher (außer für Amazon EMR 6.0.0) können Sie die EMR-verwalteteSkalierung aktivieren, um die Anzahl der Instances oder Einheiten in Ihrem Cluster basierend auf derWorkload automatisch zu erhöhen oder zu verringern. EMR wertet Cluster-Metriken kontinuierlich aus, umSkalierungsentscheidungen zu treffen, die Ihre Cluster für Kosten und Geschwindigkeit optimieren. DieseFunktion ist für Cluster verfügbar, die entweder aus Instance-Gruppen oder Instance-Flotten bestehen.

Sie müssen die folgenden Parameter für die verwaltete Skalierung konfigurieren. Das Limit gilt nur für dieKern- und Aufgabenknoten. Der Master-Knoten kann nach der Erstkonfiguration nicht skaliert werden.

• Minimum (MinimumCapacityUnits) – Die Untergrenze der zulässigen EC2-Kapazität in einem Cluster.Sie wird über vCPU-Cores (Virtual Central Processing Unit) oder Instances für Instance-Gruppengemessen. Sie wird über Einheiten für Instance-Flotten gemessen.

• Maximum (MaximumCapacityUnits) – Die Obergrenze der zulässigen EC2-Kapazität in einemCluster. Sie wird über vCPU-Cores (Virtual Central Processing Unit) oder Instances für Instance-Gruppengemessen. Sie wird über Einheiten für Instance-Flotten gemessen.

• On-Demand-Limit (MaximumOnDemandCapacityUnits) (Optional) – Die Obergrenze der zulässigenEC2-Kapazität für den On-Demand-Markttyp in einem Cluster. Wenn dieser Parameter nicht angegebenist, wird standardmäßig der Wert von MaximumCapacityUnits verwendet.

Dieser Parameter wird verwendet, um die Kapazitätszuweisung zwischen On-Demand- und Spot-Instances aufzuteilen. Wenn Sie beispielsweise den minimalen Parameter als 2 Instances festlegen, denmaximalen Parameter als 100 Instances, das On-Demand-Limit als 10 Instances, dann skaliert die EMR-verwaltete Skalierung auf bis zu 10 On-Demand-Instances und weist Spot-Instances die verbleibendeKapazität zu. Weitere Informationen finden Sie im Szenarien für die Knotenzuweisung (p. 407).

• Maximale Anzahl der Core-Knoten (MaximumCoreCapacityUnits) (optional) – Die Obergrenzeder zulässigen EC2-Kapazität für den Core-Knotentyp in einem Cluster. Wenn dieser Parameter nichtangegeben ist, wird standardmäßig der Wert von MaximumCapacityUnits verwendet.

Dieser Parameter wird verwendet, um die Kapazitätszuweisung zwischen Core- und Aufgabenknotenaufzuteilen. Wenn Sie beispielsweise den minimalen Parameter auf 2 Instances, das Maximum auf 100Instances, den maximalen Core-Knoten auf 17 Instances festlegen, dann skaliert die EMR-verwalteteSkalierung auf bis zu 17 Core-Knoten und weist die verbleibenden 8.1 Instances den Aufgabenknoten zu.Weitere Informationen finden Sie im Szenarien für die Knotenzuweisung (p. 407).

Weitere Informationen zu verwalteten Skalierungsparametern finden Sie unter ComputeLimits.

Überlegungen und Einschränkungen

• Die EMR-verwaltete Skalierung ist derzeit in 22 AWS-Regionen verfügbar: USA Ost (Nord-Virginiaund Ohio), USA West (Oregon und Nordkalifornien), Südamerika (S Paulo), Europa (Frankfurt, Irland,Singapur, London, Paris und Nordamerika), Kanada (Zentral), Asien-Pazifik (Hongkong, Mumbai, Seoul,Singapur, Sydney und Tokio), Naher Osten (CDrain), Afrika (Kapstadt), China (Bexing) mit Sinnet undChina (

• Verwaltete Skalierungsoperationen auf 5.30.0- und 5.30.1-Clustern ohne Installation von Presto könnenAnwendungsfehler verursachen oder dazu führen, dass eine einheitliche Instance-Gruppe oder Instance-Flotte im ARRESTED-Status verbleibt. Dies gilt besonders dann, wenn eine Abwärtsskalierungsoperationschnell von einer Aufwärtsskalierungsoperation gefolgt wird.

Als Problemumgehung können Sie Presto als Anwendung auswählen, die beim Erstellen eines Clustersinstalliert werden soll, auch wenn Ihre Aufgabe Presto nicht erfordert.

• Die EMR-verwaltete Skalierung funktioniert nur mit YARN-Anwendungen wie Spark, Hadoop, Hive undFlink. Derzeit werden keine Anwendungen unterstützt, die nicht auf YARN basieren, wie Presto.

405

Page 413: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

• Wenn Sie den maximalen Core-Knoten und das On-Demand-Limit für die EMR-verwaltete Skalierungfestlegen, sollten Sie die Unterschiede zwischen Instance-Gruppen und Instance-Flotten berücksichtigen.Jede Instance-Gruppe besteht aus demselben Instance-Typ und derselben Kaufoption für Instances:On-Demand oder Spot. Für jede Instance-Flotte können Sie bis zu fünf Instance-Typen angeben, dieals On-Demand- und Spot-Instances bereitgestellt werden können. Weitere Informationen finden Sieunter Erstellen eines Clusters mit Instance-Flotten oder einheitlichen Instance-Gruppen, Instance-Flottenoptionen und Szenarien für die Knotenzuweisung (p. 407).

Themen• Erläuterungen zu Knotenzuweisungsstrategie und -szenarien (p. 406)• Grundlegendes zu Metriken für verwaltete Skalierung (p. 410)• Verwenden der AWS Management Console zum Konfigurieren der verwalteten Skalierung (p. 414)• Aktualisierte Konsolenoptionen für die Clusterskalierung (p. 415)• Verwenden der AWS CLI zum Konfigurieren der verwalteten Skalierung (p. 417)• Verwenden von AWS SDK for Java zum Konfigurieren der verwalteten Skalierung (p. 418)

Erläuterungen zu Knotenzuweisungsstrategie und -szenarienDieser Abschnitt bietet eine Übersicht über die Knotenzuweisungsstrategie und häufigeSkalierungsszenarien, die Sie mit der EMR-verwalteten Skalierung verwenden können.

Knotenzuordnungsstrategie

Bei der EMR-verwalteten Skalierung werden Core- und Aufgabenknoten basierend auf den folgendenStrategien für die Aufwärts- und Abwärtsskalierung zugewiesen:

Skalierungsstrategie

• Die EMR-verwaltete Skalierung fügt Core-Knoten zuerst Kapazität hinzu und dann Aufgabenknoten, bisdie maximal zulässige Kapazität erreicht ist oder die gewünschte Skalierungszielkapazität erreicht ist.

• Wenn der Parameter MaximumCoreCapacityUnits festgelegt ist, skaliert Amazon EMR Core-Knoten,bis die Core-Einheiten das maximal zulässige Limit erreichen. Die gesamte verbleibende Kapazität wirdzu den Aufgabenknoten hinzugefügt.

• Wenn der Parameter MaximumOnDemandCapacityUnits festgelegt ist, skaliert Amazon EMR denCluster mithilfe der On-Demand-Instances, bis die On-Demand-Einheiten das maximal zulässige Limiterreichen. Die gesamte verbleibende Kapazität wird mithilfe von Spot-Instances hinzugefügt.

• Wenn die Parameter MaximumCoreCapacityUnits und MaximumOnDemandCapacityUnitsfestgelegt sind, berücksichtigt Amazon EMR beide Limits während der Skalierung.

Beispiel: Wenn der MaximumCoreCapacityUnits kleiner als MaximumOnDemandCapacityUnitsist, skaliert EMR zunächst Core-Knoten, bis das Core-Kapazitätslimit erreicht ist. Für die verbleibendeKapazität verwendet EMR zuerst On-Demand-Instances, um Aufgabenknoten zu skalieren, bis das On-Demand-Limit erreicht ist, und verwendet dann Spot-Instances für Aufgabenknoten.

Scale-Down-Strategie

• Die EMR-verwaltete Skalierung entfernt zuerst Aufgabenknoten und dann Core-Knoten, bisdie gewünschte Scale-Down-Zielkapazität erreicht ist. Der Cluster wird niemals unterhalb derMindestbeschränkungen in der Richtlinie für verwaltete Skalierung skaliert.

• Innerhalb jedes Knotentyps (entweder Core-Knoten oder Aufgabenknoten) entfernt die EMR-verwalteteSkalierung zuerst Spot-Instances und dann On-Demand-Instances.

406

Page 414: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Wenn der Cluster keine Last hat, bricht Amazon EMR das Hinzufügen neuer Instances aus einervorherigen Auswertung ab und führt Scale-Down-Operationen durch. Wenn der Cluster stark ausgelastetist, bricht Amazon EMR das Entfernen von Instances ab und führt Skalierungsvorgänge durch.

Überlegungen zur Knotenzuweisung

Wir empfehlen, dass Sie die On-Demand-Kaufoption für Core-Knoten verwenden, um bei Spot-Wiederherstellungen HDFS-Datenverlust zu vermeiden. Sie können die Spot-Kaufoption fürAufgabenknoten verwenden, um Kosten zu reduzieren und eine schnellere Auftragsausführung zu erhalten,wenn mehr Spot-Instances zu Aufgabenknoten hinzugefügt werden.

Szenarien für die Knotenzuweisung

Sie können verschiedene Skalierungsszenarien basierend auf Ihren Anforderungen erstellen, indem Siedie Parameter Maximum, Minimum, On-Demand limit und Maximum für Core-Knoten in verschiedenenKombinationen einrichten.

Szenario 1: Nur Core-Knoten skalieren

Um nur Core-Knoten zu skalieren, müssen die Parameter für verwaltete Skalierung die folgendenAnforderungen erfüllen:

• Das On-Demand-Limit entspricht der maximalen Grenze.• Der maximale Core-Knoten ist gleich der maximalen Grenze.

Wenn das On-Demand-Limit und die Parameter des maximalen Core-Knotens nicht angegeben sind,werden beide Parameter standardmäßig auf die maximale Grenze gesetzt.

Die folgenden Beispiele veranschaulichen das Szenario, bei dem nur Core-Knoten skaliert werden.

Cluster-Anfangszustand Skalierungsparameter Skalierungsverhalten

Instance-Gruppen

Kern: 1 On-Demand

Aufgabe: 1 On-Demand- und 1Spot-Instance

UnitType: Instances

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 20

Instance-Flotten

Kern: 1 On-Demand

Aufgabe: 1 On-Demand- und 1Spot-Instance

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 20

Skalieren Siezwischen 1 und20 Instancesoder Instance-Flotteneinheitenauf Core-Knoten mit demOn-Demand-Typ. KeineSkalierung aufAufgabenknoten.

Szenario 2: Scale task nodes only (Nur Aufgabenknoten skalieren)

Um nur Aufgabenknoten zu skalieren, müssen die Parameter für verwaltete Skalierung die folgendenAnforderungen erfüllen:

407

Page 415: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

• Der maximale Core-Knoten muss der Mindestgrenze entsprechen.

Die folgenden Beispiele zeigen das Szenario, bei dem Aufgabenknoten nur skaliert werden.

Cluster-Anfangszustand Skalierungsparameter Skalierungsverhalten

Instance-Gruppen

Kern: 2 On-Demand

Aufgabe: 1 Spot

UnitType: Instances

MinimumCapacityUnits: 2

MaximumCapacityUnits: 20

MaximumCoreCapacityUnits: 2

Instance-Flotten

Kern: 2 On-Demand

Aufgabe: 1 Spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 2

MaximumCapacityUnits: 20

MaximumCoreCapacityUnits: 2

Belassen SieCore-Knoten auf 2und skalieren SieAufgabenknotennur zwischen 0und 18 Instancesoder Instance-Flotteneinheiten.Die Kapazitätzwischenminimalen undmaximalenGrenzenwird nur denAufgabenknotenhinzugefügt.

Szenario 3: Nur On-Demand-Instances im Cluster

Um nur On-Demand-Instances zu nutzen, müssen Ihr Cluster und die verwalteten Skalierungsparameterdie folgenden Anforderungen erfüllen:

• Das On-Demand-Limit entspricht der maximalen Grenze.

Wenn das On-Demand-Limit nicht angegeben ist, wird der Parameterwert standardmäßig auf diemaximale Grenze gesetzt. Der Standardwert gibt an, dass Amazon EMR nur On-Demand-Instancesskaliert.

Wenn der maximale Core-Knoten kleiner als die maximale Grenze ist, kann der maximale Core-Knotenparameter verwendet werden, um die Kapazitätszuweisung zwischen Core- und Aufgabenknotenaufzuteilen.

Um dieses Szenario in einem Cluster zu aktivieren, der aus Instance-Gruppen besteht, müssen alleKnotengruppen im Cluster während der Erstkonfiguration den On-Demand-Markttyp verwenden.

Die folgenden Beispiele veranschaulichen das Szenario, bei dem On-Demand-Instances im gesamtenCluster vorhanden sind.

Cluster-Anfangszustand Skalierungsparameter Skalierungsverhalten

Instance-Gruppen

Kern: 1 On-Demand

Aufgabe: 1 On-Demand

UnitType: Instances

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 12

Skalieren Siezwischen 1 und12 Instancesoder Instance-Flotteneinheitenauf Core-Knotenmit dem On-Demand-Typ.

408

Page 416: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Cluster-Anfangszustand Skalierungsparameter Skalierungsverhalten

Instance-Flotten

Kern: 1 On-Demand

Aufgabe: 1 On-Demand

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 12

Skalieren Siedie verbleibendeKapazitätmithilfe von On-Demand aufAufgabenknoten.Keine Skalierungmit Spot-Instances.

Szenario 4: Nur Spot-Instances im Cluster

Um nur Spot-Instances zu nutzen, müssen die Parameter für verwaltete Skalierung die folgendenAnforderungen erfüllen:

• Das On-Demand-Limit ist auf 0 festgelegt.

Wenn der maximale Core-Knoten kleiner als die maximale Grenze ist, kann der maximale Core-Knotenparameter verwendet werden, um die Kapazitätszuweisung zwischen Core- und Aufgabenknotenaufzuteilen.

Um dieses Szenario in einem Cluster zu aktivieren, der aus Instance-Gruppen besteht, muss die Core-Instance-Gruppe während der Erstkonfiguration die Spot-Kaufoption verwenden. Wenn es keine Spot-Instance in der Aufgaben-Instance-Gruppe gibt, erstellt die EMR-verwaltete Skalierung bei Bedarf eineAufgabengruppe mit Spot-Instances.

Die folgenden Beispiele zeigen das Szenario, bei dem Spot-Instances im gesamten Cluster vorhandensind.

Cluster-Anfangszustand Skalierungsparameter Skalierungsverhalten

Instance-Gruppen

Kern: 1 Spot

Aufgabe: 1 Spot

UnitType: Instances

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 0

Instance-Flotten

Kern: 1 Spot

Aufgabe: 1 Spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 0

Skalieren Siezwischen 1 und20 Instancesoder Instance-Flotteneinheitenauf Core-Knotenmithilfe von Spot.Keine Skalierungmit dem On-Demand-Typ.

Szenario 5: Skalieren von On-Demand-Instances auf Core-Knoten und Spot-Instances auf Aufgabenknoten

Um On-Demand-Instances auf Core-Knoten und Spot-Instances auf Aufgabenknoten zu skalieren, müssendie verwalteten Skalierungsparameter die folgenden Anforderungen erfüllen:

• Das On-Demand-Limit muss dem maximalen Core-Knoten entsprechen.• Das On-Demand-Limit und der maximale Core-Knoten müssen kleiner als die maximale Grenze sein.

409

Page 417: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Um dieses Szenario in einem Cluster zu aktivieren, der aus Instance-Gruppen besteht, muss die Core-Knotengruppe die On-Demand-Kaufoption verwenden.

Die folgenden Beispiele zeigen das Szenario der Skalierung von On-Demand-Instances auf Core-Knotenund Spot-Instances auf Aufgabenknoten.

Cluster-Anfangszustand Skalierungsparameter Skalierungsverhalten

Instance-Gruppen

Kern: 1 On-Demand

Aufgabe: 1 On-Demand- und 1Spot-Instance

UnitType: Instances

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 7

MaximumCoreCapacityUnits: 7

Instance-Flotten

Kern: 1 On-Demand

Aufgabe: 1 On-Demand- und 1Spot-Instance

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 7

MaximumCoreCapacityUnits: 7

Skalieren Siebis zu 6 On-Demand-Einheitenauf dem Core-Knoten, da bereits1 On-Demand-Einheit auf demAufgabenknotenvorhanden ist unddas maximale Limitfür On-Demand 7beträgt. SkalierenSie dann aufbis zu 13 Spot-Einheiten aufAufgabenknoten.

Grundlegendes zu Metriken für verwaltete SkalierungAmazon EMR veröffentlicht hochaufgelöste Metriken mit Daten mit einer Granularität von einer Minute,wenn die verwaltete Skalierung für einen Cluster aktiviert ist. Sie können Ereignisse für jede Initiierungund Beendigung der Größenänderung anzeigen, die durch verwaltete Skalierung über die Amazon EMR-Konsole oder Amazon CloudWatch-Konsole gesteuert wird. Weitere Informationen finden Sie unterÜberwachen von CloudWatch-Ereignissen im Management Guide für Amazon EMR.

Die folgenden Metriken geben die aktuelle oder Zielkapazitäten eines Clusters an. Diese Metriken sindnur verfügbar, wenn die verwaltete Skalierung aktiviert ist. Für Cluster, die aus Instance-Flotten bestehen,werden die Cluster-Kapazitätsmetriken in Units gemessen. Für Cluster, die aus Instance-Gruppenbestehen, werden die Cluster-Kapazitätsmetriken in Nodes oder vCPU basierend auf dem Einheitentypgemessen, der in der Richtlinie für verwaltete Skalierung verwendet wird.

Metrik Description (Beschreibung)

• TotalUnitsRequested

• TotalNodesRequested

• TotalVCPURequested

Die Gesamtzahl von Einheiten/Knoten/vCPUs in einem Cluster,die durch die verwaltete Skalierung bestimmt wird.

Einheiten: Count

• TotalUnitsRunning

• TotalNodesRunning

• TotalVCPURunning

Die aktuelle Gesamtzahl der Einheiten/Knoten/vCPUs, diein einem ausgeführten Cluster verfügbar sind. Wenn eineClustergrößenänderung angefordert wird, wird diese Metrikaktualisiert, nachdem die neuen Instances hinzugefügt oder ausdem Cluster entfernt wurden.

Einheiten: Count

410

Page 418: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Metrik Description (Beschreibung)

• CoreUnitsRequested

• CoreNodesRequested

• CoreVCPURequested

Die Zielnummer der CORE-Einheiten/Knoten/vCPUs in einemCluster, die durch die verwaltete Skalierung bestimmt wird.

Einheiten: Count

• CoreUnitsRunning

• CoreNodesRunning

• CoreVCPURunning

Die aktuelle Anzahl von CORE-Einheiten/Knoten/vCPUs, die ineinem Cluster ausgeführt werden.

Einheiten: Count

• TaskUnitsRequested

• TaskNodesRequested

• TaskVCPURequested

Die Zielnummer der AUFGABEN-Einheiten/Knoten/vCPUs ineinem Cluster, die durch die verwaltete Skalierung bestimmtwird.

Einheiten: Count

• TaskUnitsRunning

• TaskNodesRunning

• TaskVCPURunning

Die aktuelle Anzahl von AUFGABEN-Einheiten/Knoten/vCPUs,die in einem Cluster ausgeführt werden.

Einheiten: Count

Die folgenden Metriken geben den Verwendungsstatus von Clustern und Anwendungen an. Diese Metrikensind für alle Amazon EMR-Funktionen verfügbar, werden aber mit einer höheren Auflösung mit Datenmit einer Granularität von einer Minute veröffentlicht, wenn die verwaltete Skalierung für einen Clusteraktiviert ist. Sie können die folgenden Metriken mit den Clusterkapazitätsmetriken in der vorherigen Tabellekorrelieren, um die Entscheidungen bezüglich der verwalteten Skalierung zu verständlich zu machen.

Metrik Description (Beschreibung)

AppsCompleted Anzahl der an YARN übermittelten abgeschlossenenAnwendungen.

Anwendungsfall: Überwachen des Cluster-Fortschritts

Einheiten: Count

AppsPending Anzahl der an YARN übermittelten Anwendungen, die sich imausstehenden Zustand befinden.

Anwendungsfall: Überwachen des Cluster-Fortschritts

Einheiten: Count

AppsRunning Anzahl der an YARN übermittelten Anwendungen, die ausgeführtwerden.

Anwendungsfall: Überwachen des Cluster-Fortschritts

Einheiten: Count

ContainerAllocated Anzahl der vom ResourceManager zugeordneten Ressourcen-Container.

Anwendungsfall: Überwachen des Cluster-Fortschritts

Einheiten: Count

411

Page 419: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Metrik Description (Beschreibung)

ContainerPending Anzahl der Container in der Warteschlange, die noch nichtzugeordnet worden sind.

Anwendungsfall: Überwachen des Cluster-Fortschritts

Einheiten: Count

ContainerPendingRatio Das Verhältnis der ausstehenden Container zu denzugeordneten Containern (ContainerPendingRatio= ContainerPending / ContainerAllocated). WennContainerAllocated = 0, dann ContainerPendingRatio =ContainerPending. Der Wert von ContainerPendingRatio stellteine Zahl dar, keinen Prozentsatz. Dieser Wert ist zum Skalierenvon Cluster-Ressourcen anhand des Zuordnungsverhaltens desContainers hilfreich.

Einheiten: Count

HDFSUtilizatioin Prozentsatz des gegenwärtig benutzten HDFS-Speichers.

Anwendungsfall: Analysieren der Cluster-Leistung

Einheiten: Prozent

IsIdle Gibt an, dass ein Cluster keine Arbeiten mehr ausführt, aberunverändert aktiv ist und Kosten verursacht. Der Wert beträgt 1,wenn weder Tasks noch Aufträge ausgeführt werden, andernfallsbeträgt der Wert 0. Dieser Wert wird in 5-Minuten-Intervallengeprüft. Wenn der Wert 1 beträgt, bedeutet dies, dass derCluster zum Zeitpunkt der Prüfung ungenutzt war, aber nichtdie gesamten fünf Minuten. Um Fehlalarme zu vermeiden,sollten Sie einen Alarm auslösen, wenn dieser Wert mehrereaufeinander folgende fünfminütige Prüfungen lang 1 beträgt. Siekönnen zum Beispiel einen Alarm auslösen, wenn dieser Wert 30Minuten oder länger 1 beträgt.

Anwendungsfall: Überwachen der Cluster-Leistung

Einheiten: Boolesch

MemoryAvailableMB Verfügbarer zuzuordnender Speicher.

Anwendungsfall: Überwachen des Cluster-Fortschritts

Einheiten: Count

MRActiveNodes Die Anzahl der Knoten, die MapReduce-Aufgabenoder -Aufträge ausführen. Entspricht der YARN-Metrikmapred.resourcemanager.NoOfActiveNodes.

Anwendungsfall: Überwachen des Cluster-Fortschritts

Einheiten: Count

412

Page 420: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Metrik Description (Beschreibung)

YARNMemoryAvailablePercentage Der Prozentsatz des verbleibenden für YARN verfügbarenArbeitsspeichers (YARNMemoryAvailablePercentage =MemoryAvailableMB / MemoryTotalMB). Dieser Wert istzum Skalieren von Cluster-Ressourcen anhand der YARN-Speichernutzung hilfreich.

Einheiten: Prozent

Grafieren der Metriken für verwaltete Skalierung

Sie können Metriken grafieren, um die Workload-Muster Ihres Clusters und entsprechendenSkalierungsentscheidungen zu visualisieren, die durch EMR-verwaltete Skalierung getroffen werden, wiedie folgenden Schritte veranschaulichen.

So stellen Sie Metriken für verwaltete Skalierung in der CloudWatch-Konsole grafisch dar

1. Öffnen Sie die CloudWatch-Konsole.2. Wählen Sie im Navigationsbereich Amazon EMR aus. Sie können die Cluster-Kennung auch nach dem

zu überwachenden Cluster durchsuchen.3. Scrollen Sie zur Metrik, die grafisch dargestellt werden soll. Öffnen Sie eine Metrik, um das Diagramm

anzuzeigen.4. Um eine oder mehrere Metriken grafisch darzustellen, aktivieren Sie das Kontrollkästchen neben jeder

Metrik.

Das folgende Beispiel veranschaulicht die EMR-verwaltete Skalierungsaktivität eines Clusters. DasDiagramm zeigt drei automatische Scale-Down-Perioden, die Kosten sparen, wenn eine weniger aktiveWorkload vorliegt.

413

Page 421: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Alle Cluster-Kapazitäts- und Nutzungsmetriken werden in Intervallen von einer Minute veröffentlicht.Zusätzliche statistische Informationen sind auch jeweils mit allen einminütigen Daten verknüpft, sodass Sieverschiedene Funktionen wie Percentiles, Min, Max, Sum, Average, SampleCount darstellen können.

Im folgenden Diagramm wird beispielsweise dieselbe YARNMemoryAvailablePercentage-Metrik anverschiedenen Perzentilen (P10, P50, P90, P99) zusammen mit Sum, Average, Min, SampleCountdargestellt.

Verwenden der AWS Management Console zum Konfigurierender verwalteten SkalierungWenn Sie einen Cluster erstellen, können Sie die verwaltete Skalierung mithilfe der Schnelloption oder dererweiterten Clusterkonfigurationsoptionen konfigurieren. Sie können auch eine Richtlinie für verwalteteSkalierung für einen ausgeführten Cluster erstellen oder ändern, indem Sie die Einstellungen für VerwalteteSkalierung auf der Seite Zusammenfassung oder Hardware ändern.

So verwenden Sie die Schnelloption zum Konfigurieren der verwalteten Skalierung beim Erstelleneines Clusters

1. Öffnen Sie die Amazon EMR-Konsole, wählen Sie Cluster erstellen und öffnen Sie Cluster erstellen -Schnelloptionen.

2. Wählen Sie im Bereich Hardwarekonfiguration im Feld Clusterskalierung die Option EMR-verwalteteSkalierung verwenden aus.

3. Geben Sie die Minimum- und Maximum-Anzahl von Core- und Aufgaben-Instances an.

414

Page 422: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

So verwenden Sie die erweiterte Option zum Konfigurieren der verwalteten Skalierung beimErstellen eines Clusters

1. Wählen Sie in der Amazon EMR-Konsole Create cluster (Cluster erstellen), Go to advanced options(Zu erweiterten Optionen wechseln) und Optionen für Step 1: (Schritt 1:) aus. Software und Schritteaus und fahren Sie mit Schritt 2 fort: -Hardwarekonfiguration.

2. Wählen Sie im Abschnitt Clusterzusammenstellung die Optionen Instance-Flotten oder EinheitlicheInstance-Gruppen aus.

3. Wählen Sie im Abschnitt Clusterskalierung die Option Clusterskalierung aktivieren aus. WählenSie anschließend EMR-verwaltete Skalierung verwenden aus. Geben Sie dann die Minimum- undMaximum-Anzahl der Instances oder Instance-Flotteneinheiten sowie das On-Demand-Limit an.

Für Cluster, die aus Instance-Gruppen bestehen, können Sie auch Benutzerdefinierte Richtliniefür automatische Skalierung erstellen auswählen, wenn Sie benutzerdefinierte Richtlinien für dieautomatische Skalierung für jede Instance-Gruppe definieren möchten. Weitere Informationen findenSie im Verwenden der automatischen Skalierung mit einer benutzerdefinierten Richtlinie für Instance-Gruppen (p. 421).

So ändern Sie einen vorhandenen Cluster

1. Öffnen Sie die Amazon EMR-Konsole, wählen Sie Ihren Cluster aus der Clusterliste aus und erweiternSie dann den Bereich Hardware.

2. Wählen Sie im Bereich Clusterskalierung die Option Bearbeiten für EMR-verwaltete Skalierung aus.

3. Geben Sie im Abschnitt Clusterskalierung neue Werte für die Minimum- und Maximum-Anzahl derInstances und das On-Demand-Limit an.

Aktualisierte Konsolenoptionen für die ClusterskalierungDie Cluster-Skalierungsoptionen in der Konsole haben sich geändert. Die Optionen werden in einemClusterskalierung-Bereich auf der Seite Hardwarekonfiguration unter Cluster erstellen - Erweiterte Optionenzusammengefasst. Die Clusterskalierungsoptionen können auch auf der Registerkarte „Hardware“ einesaktiven Clusters bearbeitet werden.

415

Page 423: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Sie können die Option EMR-verwaltete Skalierung verwenden oder Benutzerdefinierte Richtlinie fürautomatische Skalierung erstellen auswählen, wenn Sie die Clusterskalierung aktivieren. EMR-verwalteteSkalierung verwenden ist nur mit Amazon EMR Version 5.30.0 und höher verfügbar. Weitere Informationenfinden Sie im Skalieren von Cluster-Ressourcen (p. 403).

Die folgenden Screenshots zeigen die Unterschiede zwischen der vorherigen automatischen Skalierungund den aktuellen Cluster-Skalierungsoptionen in der Konsole.

Änderungen auf der Seite Hardware Configuration (Hardwarekonfiguration)

Wenn Sie die erweiterte Option zum Erstellen eines Clusters verwenden, werden die Optionen für dieautomatische Skalierung aus der Instance-Gruppentabelle in den Bereich Clusterskalierung auf der SeiteHardwarekonfiguration verschoben.

Änderungen auf der Registerkarte „Hardware“

Auf der Registerkarte Hardware eines aktiven Clusters werden die Optionen für die automatischeSkalierung in die Tabelle Clusterskalierung auf derselben Seite verschoben.

416

Page 424: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Verwenden der AWS CLI zum Konfigurieren der verwaltetenSkalierungSie können AWS CLI-Befehle für Amazon EMR verwenden, um die verwaltete Skalierung beim Erstelleneines Clusters zu konfigurieren. Sie können eine Kurzschreibweise mit der passenden JSON-Konfigurationin den entsprechenden Befehlen oder eine Referenzdatei mit der JSON-Konfiguration verwenden. Siekönnen auch eine Richtlinie für verwaltete Skalierung auf einen vorhandenen Cluster anwenden und einezuvor angewendete Richtlinie für verwaltete Skalierung entfernen. Darüber hinaus können Sie Details einerSkalierungsrichtlinien-Konfiguration aus einem aktuell ausgeführten Cluster abrufen.

Aktivieren der verwalteten Skalierung während des Clusterstarts

Sie können die verwaltete Skalierung während des Clusterstarts aktivieren, wie im folgenden Beispielveranschaulicht wird.

aws emr create-cluster \ --service-role EMR_DefaultRole \ --release-label emr-5.31.0 \ --name EMR_Managed_Scaling_Enabled_Cluster \ --applications Name=Spark Name=Hbase \ --ec2-attributes KeyName=keyName,InstanceProfile=EMR_EC2_DefaultRole \ --instance-groups InstanceType=m4.xlarge,InstanceGroupType=MASTER,InstanceCount=1 InstanceType=m4.xlarge,InstanceGroupType=CORE,InstanceCount=2 \ --region us-east-1 \ --managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=2,MaximumCapacityUnits=4,UnitType=Instances}'

Sie können eine verwaltete Richtlinienkonfiguration auch mit der Option „-managed-scaling-policy“angeben, wenn Sie create-cluster verwenden.

Anwenden einer Richtlinie für verwaltete Skalierung auf einen vorhandenen Cluster

Sie können eine Richtlinie für verwaltete Skalierung auf einen vorhandenen Cluster anwenden, wie imfolgenden Beispiel veranschaulicht wird.

aws emr put-managed-scaling-policy --cluster-id j-123456 --managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=1,MaximumCapacityUnits=10, MaximumOnDemandCapacityUnits=10, UnitType=Instances}'

417

Page 425: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Sie können eine Richtlinie für verwaltete Skalierung auch auf einen vorhandenen Cluster anwenden, indemSie den Befehl aws emr put-managed-scaling-policy verwenden. Im folgenden Beispiel wirdein Verweis auf eine JSON-Datei verwendet, managedscaleconfig.json, die die Konfiguration derRichtlinie für verwaltete Skalierung angibt.

aws emr put-managed-scaling-policy --cluster-id j-123456 --managed-scaling-policy file://./managedscaleconfig.json

Das folgende Beispiel zeigt den Inhalt der Datei managedscaleconfig.json, in der die Richtlinie fürverwaltete Skalierung definiert wird.

{ "ComputeLimits": { "UnitType": "Instances", "MinimumCapacityUnits": 1, "MaximumCapacityUnits": 10, "MaximumOnDemandCapacityUnits": 10 }}

Abrufen einer Richtlinienkonfiguration für verwaltete Skalierung

Der Befehl GetManagedScalingPolicy ruft die Richtlinienkonfiguration ab. Mit dem folgenden Befehlwird beispielsweise die Konfiguration für den Cluster mit der Cluster-ID j-123456 abgerufen.

aws emr get-managed-scaling-policy --cluster-id j-123456

Der Befehl generiert die folgende Beispielausgabe:

{ "ManagedScalingPolicy": { "ComputeLimits": { "MinimumCapacityUnits": 1, "MaximumOnDemandCapacityUnits": 10, "MaximumCapacityUnits": 10, "UnitType": "Instances" } }}

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Entfernen der Richtlinie für verwaltete Skalierung

Mit dem Befehl RemoveManagedScalingPolicy wird die Richtlinienkonfiguration entfernt. Mit demfolgenden Befehl wird beispielsweise die Konfiguration für den Cluster mit der Cluster-ID j-123456entfernt.

aws emr remove-managed-scaling-policy --cluster-id j-123456

Verwenden von AWS SDK for Java zum Konfigurieren derverwalteten SkalierungDer folgende Programmausschnitt zeigt, wie die verwaltete Skalierung mit dem AWS SDK for Javakonfiguriert wird:

418

Page 426: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

package com.amazonaws.emr.sample;

import java.util.ArrayList;import java.util.List;

import com.amazonaws.AmazonClientException;import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.AWSStaticCredentialsProvider;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.regions.Regions;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;import com.amazonaws.services.elasticmapreduce.model.Application;import com.amazonaws.services.elasticmapreduce.model.ComputeLimits;import com.amazonaws.services.elasticmapreduce.model.ComputeLimitsUnitType;import com.amazonaws.services.elasticmapreduce.model.InstanceGroupConfig;import com.amazonaws.services.elasticmapreduce.model.JobFlowInstancesConfig;import com.amazonaws.services.elasticmapreduce.model.ManagedScalingPolicy;import com.amazonaws.services.elasticmapreduce.model.RunJobFlowRequest;import com.amazonaws.services.elasticmapreduce.model.RunJobFlowResult;

public class CreateClusterWithManagedScalingWithIG {

public static void main(String[] args) { AWSCredentials credentialsFromProfile = getCreadentials("AWS-Profile-Name-Here"); /** * Create an EMR client using the credentials and region specified in order to create the cluster */ AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentialsFromProfile)) .withRegion(Regions.US_EAST_1) .build(); /** * Create Instance Groups - Master, Core, Task */ InstanceGroupConfig instanceGroupConfigMaster = new InstanceGroupConfig() .withInstanceCount(1) .withInstanceRole("MASTER") .withInstanceType("m4.large") .withMarket("ON_DEMAND"); InstanceGroupConfig instanceGroupConfigCore = new InstanceGroupConfig() .withInstanceCount(4) .withInstanceRole("CORE") .withInstanceType("m4.large") .withMarket("ON_DEMAND"); InstanceGroupConfig instanceGroupConfigTask = new InstanceGroupConfig() .withInstanceCount(5) .withInstanceRole("TASK") .withInstanceType("m4.large") .withMarket("ON_DEMAND");

List<InstanceGroupConfig> igConfigs = new ArrayList<>(); igConfigs.add(instanceGroupConfigMaster); igConfigs.add(instanceGroupConfigCore); igConfigs.add(instanceGroupConfigTask); /** * specify applications to be installed and configured when EMR creates the cluster */

419

Page 427: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden von EMR-verwalteten

Skalierung in Amazon EMR

Application hive = new Application().withName("Hive"); Application spark = new Application().withName("Spark"); Application ganglia = new Application().withName("Ganglia"); Application zeppelin = new Application().withName("Zeppelin"); /** * Managed Scaling Configuration - * Using UnitType=Instances for clusters composed of instance groups * * Other options are: * UnitType = VCPU ( for clusters composed of instance groups) * UnitType = InstanceFleetUnits ( for clusters composed of instance fleets) **/ ComputeLimits computeLimits = new ComputeLimits() .withMinimumCapacityUnits(1) .withMaximumCapacityUnits(20) .withUnitType(ComputeLimitsUnitType.Instances); ManagedScalingPolicy managedScalingPolicy = new ManagedScalingPolicy(); managedScalingPolicy.setComputeLimits(computeLimits); // create the cluster with a managed scaling policy RunJobFlowRequest request = new RunJobFlowRequest() .withName("EMR_Managed_Scaling_TestCluster") .withReleaseLabel("emr-5.31.0") // Specifies the EMR release version label, we recommend the latest release .withApplications(hive,spark,ganglia,zeppelin) .withLogUri("s3://path/to/my/emr/logs") // A URI in S3 for log files is required when debugging is enabled. .withServiceRole("EMR_DefaultRole") // If you use a custom IAM service role, replace the default role with the custom role. .withJobFlowRole("EMR_EC2_DefaultRole") // If you use a custom EMR role for EC2 instance profile, replace the default role with the custom EMR role. .withInstances(new JobFlowInstancesConfig().withInstanceGroups(igConfigs) .withEc2SubnetId("subnet-123456789012345") .withEc2KeyName("my-ec2-key-name") .withKeepJobFlowAliveWhenNoSteps(true)) .withManagedScalingPolicy(managedScalingPolicy); RunJobFlowResult result = emr.runJobFlow(request); System.out.println("The cluster ID is " + result.toString()); } public static AWSCredentials getCreadentials(String profileName) { // specifies any named profile in .aws/credentials as the credentials provider try { return new ProfileCredentialsProvider("AWS-Profile-Name-Here") .getCredentials(); } catch (Exception e) { throw new AmazonClientException( "Cannot load credentials from .aws/credentials file. " + "Make sure that the credentials file exists and that the profile name is defined within it.", e); } } public CreateClusterWithManagedScalingWithIG() { }}

420

Page 428: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-Gruppen

Verwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-GruppenMit der automatischen Skalierung mit einer benutzerdefinierten Richtlinie in Amazon EMR ab Version4.0 können Sie Core-Knoten und Aufgabenknoten basierend auf einer in einer Skalierungsrichtliniefestgelegten CloudWatch-Metrik und anderen Parametern automatisch skalieren. Automatische Skalierungmit einer benutzerdefinierten Richtlinie ist bei der Instance-Gruppenkonfiguration verfügbar, aber nicht beider Verwendung von Instance-Flotten. Weitere Informationen zu Instance-Gruppen und Instance-Flottenfinden Sie unter Erstellen eines Clusters mit Instance-Flotten oder einheitlichen Instance-Gruppen (p. 155).

Note

Um die automatische Skalierung mit einer benutzerdefinierten Richtlinienfunktion in AmazonEMR zu verwenden, müssen Sie beim Erstellen eines Clusters true für den ParameterVisibleToAllUsers festlegen. Weitere Informationen finden Sie unter SetVisibleToAllUsers.

Die Skalierungsrichtlinie ist Teil einer Instance-Gruppen-Konfiguration. Sie können eine Richtlinie währendder anfänglichen Konfiguration einer Instance-Gruppe oder durch Ändern einer Instance-Gruppe in einervorhandenen Cluster-Gruppe festlegen (auch wenn die Instance aktiv ist). Jede Instance-Gruppe ineinem Cluster (mit Ausnahme der Master-Instance-Gruppe) kann ihre eigene Skalierungsrichtlinie haben.Diese besteht aus Scale-Out- und Scale-In-Regeln. Scale-Out- und Scale-In-Regeln können unabhängigkonfiguriert werden. Jede Regel kann andere Parameter haben.

Sie können Skalierungsregeln mithilfe der AWS Management Console, der AWS CLI oder der AmazonEMR-API konfigurieren. Bei Verwendung der AWS CLI oder der Amazon EMR-API geben Sie dieSkalierungsrichtlinien im JSON-Format an. Außerdem können Sie bei Verwendung der AWS CLI oderder Amazon EMR-API benutzerdefinierte CloudWatch-Metriken angeben. Benutzerdefinierte Metrikenkönnen nicht über die AWS Management Console ausgewählt werden. Wenn Sie eine Skalierungsrichtliniezum ersten Mal über die Konsole erstellen, wird eine für viele Anwendungen geeignete Standardrichtlinieerstellt. Diese können Sie als Basis für Ihre eigene Richtlinie nutzen. Sie können die Standardregelnlöschen oder ändern.

Zwar können Sie mit der automatischen Skalierung die EMR-Cluster-Kapazität direkt skalieren, Sie solltenjedoch trotzdem grundlegende Workload-Anforderungen definieren und Ihre Knoten- und Instance-Gruppe-Konfigurationen entsprechend planen. Weitere Informationen finden Sie unter Richtlinien zur Cluster-Konfiguration.

Note

Bei den meisten Workloads ist die Einrichtung von Scale-In- und Scale-Out-Regeln zurOptimierung der Ressourcenauslastung erstrebenswert. Wenn Sie eine Regel ohne Gegenstückerstellen, müssen Sie die Größe der Instanz nach einer Skalierung möglicherweise manuellanpassen. In diesem Fall richten Sie sozusagen ein "unidirektionales" Auto Scaling in eineRichtung (Scale-Out oder Scale-In) mit einem manuellen Reset ein.

Erstellen einer IAM-Rolle zur automatischen SkalierungAuto Scaling in Amazon EMR erfordert eine IAM-Rolle mit Berechtigungen zum Hinzufügen undBeenden von Instances für den Fall, dass die Skalierung ausgelöst wird. Eine Standardrolle,EMR_AutoScaling_DefaultRole, mit der entsprechenden Rollen- und Vertrauensrichtlinie, ist fürdiesen Zweck verfügbar. Wenn Sie zum ersten Mal einen Cluster mit einer Skalierungsrichtlinie unterVerwendung der AWS Management Console erstellen, legt Amazon EMR die Standardrolle an undordnet ihr die verwaltete Standardrichtlinie AmazonElasticMapReduceforAutoScalingRole fürBerechtigungen zu.

Wenn Sie einen Cluster mit einer automatischen Skalierung unter Verwendung der AWS CLI erstellen,müssen Sie zunächst sicherstellen, dass entweder die IAM-Standardrolle vorhanden ist, oder dass Sie

421

Page 429: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-Gruppen

eine benutzerdefinierte IAM-Rolle mit einer Richtlinie haben, die die entsprechenden Berechtigungenbereitstellt. Um die Standardrolle zu erstellen, können Sie den Befehl create-default-rolesausführen, bevor Sie einen Cluster erstellen. Sie können dann die Option --auto-scaling-roleEMR_AutoScaling_DefaultRole angeben, wenn Sie einen Cluster erstellen. Alternativ könnenSie eine benutzerdefinierte Auto Scaling-Rolle erstellen und sie dann beim Erstellen eines Clustersangeben, z. B. --auto-scaling-role MyEMRAutoScalingRole. Wenn Sie eine benutzerdefinierteAuto Scaling-Rolle für Amazon EMR erstellen, empfehlen wir, dass Sie Berechtigungsrichtlinien für Ihrebenutzerdefinierte Rolle basierend auf der verwalteten Richtlinie anlegen. Weitere Informationen finden Sieim Configure IAM Service Roles for Amazon EMR Permissions to AWS Services and Resources (p. 223).

Grundlegendes zu Auto Scaling-RegelnWenn eine Scale-Out-Regel eine Skalierung für eine Instance-Gruppe auslöst, werden entsprechend denRegeln Amazon EC2-Instances zur Instance-Gruppe hinzugefügt. Neue Knoten können von Anwendungenwie Apache Spark, Apache Hive und Presto genutzt werden, sobald die Amazon EC2-Instance in denZustand InService übergeht. Sie können außerdem eine Scale-In-Regel erstellen, die Instancesbeendet und Knoten entfernt. Weitere Informationen über den Lebenszyklus von automatisch skaliertenAmazon EC2-Instances finden Sie unter Auto Scaling-Lebenszyklus im Amazon EC2 Auto Scaling-Benutzerhandbuch.

Sie können konfigurieren, wie ein Cluster Amazon EC2-Instances beendet. Sie können die Instanceentweder zur Amazon EC2-Instance-Stundengrenze für die Fakturierung oder nach Abschluss des Tasksbeenden. Diese Einstellung gilt sowohl für die Auto Scaling- als auch für manuelle Größenanpassungen.Weitere Informationen zu dieser Konfiguration finden Sie unter Cluster-Scale-Down (p. 435).

Die folgenden Parameter für eine Regel in einer Richtlinie bestimmen das Auto Scaling-Verhalten.

Note

Die hier aufgeführten Parameter basieren auf der AWS Management Console für AmazonEMR. Bei Verwendung der AWS CLI oder der Amazon EMR-API, stehen zusätzliche erweiterteKonfigurationsoptionen zur Verfügung. Weitere Informationen zu erweiterten Optionen finden Sieunter SimpleScalingPolicyConfiguration im Amazon EMR API Reference.

• Maximale und minimale Instances-Anzahl. Die Maximale instances (Maximale Instances)-Beschränkunggibt die maximale Anzahl von Amazon EC2-Instances an, die sich in der Instance-Gruppe befindenkönnen. Sie gilt für alle Scale-Out-Regeln. Die Minimale instances (Minimale Instances)-Beschränkunggibt die minimale Anzahl von Amazon EC2-Instances an. Sie gilt für alle Scale-In-Regeln.

• Der Rule name (Regelname) muss innerhalb der Richtlinie eindeutig sein.• Scaling adjustment (Skalierungsanpassung) legt die Anzahl der EC2-Instances fest, die während der

durch die Regel ausgelösten Skalierung hinzugefügt (für Scale-Out-Regel) oder beendet (für Scale-In-Regeln) werden.

• Die -MetrikCloudWatch, die auf eine Alarmbedingung überwacht wird.• Einen Vergleichsoperator, der verwendet wird, um die Metrik CloudWatch mit dem Wert Threshold

(Schwellenwert) zu vergleichen und eine Auslöserbedingung zu bestimmen.• Ein Evaluation period (Auswertungszeitraum) in 5-Minuten-Schritten, für die sich die Metrik CloudWatch

in einer Auslöserbedingung befinden muss, bevor die Skalierungsaktivität ausgelöst wird.• Eine Ruhephase in Sekunden legt fest, wie viel Zeit zwischen einer durch eine Regel ausgelösten

Skalierung und dem Start der nächsten Skalierung vergehen muss (unabhängig von der auslösendenRegel). Wenn eine Instance-Gruppe eine Skalierung beendet hat und den Post-Scale-Status erreichthat, bietet die Ruhepause CloudWatch-Metriken die Möglichkeit für nachfolgende Skalierungen zurStabilisierung. Weitere Informationen finden Sie unter Auto Scaling-Ruhephasen im Amazon EC2 AutoScaling-Benutzerhandbuch.

422

Page 430: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-Gruppen

Konfigurieren von Auto Scaling über die AWS ManagementConsoleWenn Sie einen Cluster erstellen, konfigurieren Sie mithilfe der erweiterten Optionen für dieCluster-Konfiguration eine Skalierungsrichtlinie für Instance-Gruppen. Sie können außerdem eineSkalierungsrichtlinie für eine laufende Instance-Gruppe erstellen, indem Sie die Hardware-Einstellungeneines vorhandenen Clusters bearbeiten.

1. Wenn Sie einen Cluster erstellen, wählen Sie in der Amazon EMR-Konsole Create Cluster (Clustererstellen), Go to advanced options (Zu erweiterten Optionen wechseln) und Optionen für Step 1:(Schritt 1:) aus. Software und Schritte und fahren Sie dann mit Schritt 2 fort: -Hardwarekonfiguration.

—oder—

Wenn Sie eine Instance-Gruppe in einem ausgeführten Cluster ändern, wählen Sie den Cluster ausder Cluster-Liste aus und erweitern Sie dann den Hardware-Abschnitt.

2. Wählen Sie im Bereich Clusterskalierung die Option Clusterskalierung aktivieren aus. Wählen Sie dannBenutzerdefinierte Richtlinie für automatische Skalierung erstellen aus.

Klicken Sie in der Tabelle Benutzerdefinierte Richtlinien für automatische Skalierung auf dasStiftsymbol in der Zeile der Instance-Gruppe, die Sie konfigurieren möchten. Die Seite "Auto Scalingrules" wird geöffnet.

3. Geben Sie die Maximum instances (maximale Instances)-Anzahl ein, die die Instance-Gruppe nachdem Scale-Out enthalten soll. Geben Sie die Minimum instances (minimale Instances)-Anzahl ein, diedie Instance-Gruppe nach dem Scale-In enthalten soll.

4. Klicken Sie auf den Stift, um Regelparameter zu bearbeiten. Klicken Sie auf das X, um eine Regelaus der Richtlinie zu entfernen, und klicken Sie auf Add rule (Regel hinzufügen), um weitere Regelnhinzuzufügen.

5. Wählen Sie die weiter oben in diesem Thema beschriebenen Regelparameter aus. Beschreibungender verfügbaren CloudWatch-Metriken für Amazon EMR finden Sie unter Amazon EMR Metriken undMaße im Amazon CloudWatch-Benutzerhandbuch.

Konfigurieren von Auto Scaling über die AWS CLIBeim Erstellen eines Clusters und beim Erstellen einer Instance-Gruppe können Sie Auto Scaling mitAWS CLI Befehlen für Amazon EMR konfigurieren. Sie können eine Kurzschreibweise mit der passendenJSON-Konfiguration in den entsprechenden Befehlen oder eine Referenzdatei mit der JSON-Konfigurationverwenden. Sie können außerdem eine Auto Scaling-Richtlinie auf eine vorhandene Instance-Gruppe

423

Page 431: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-Gruppen

anwenden und eine angewendete Auto Scaling-Richtlinie entfernen. Darüber hinaus können Sie Detailseiner Skalierungsrichtlinien-Konfiguration aus einem aktuell ausgeführten Cluster abrufen.

Important

Wenn Sie einen Cluster erstellen, der über eine Auto Scaling-Richtlinie verfügt, müssen Sie denBefehl --auto-scaling-role MyAutoScalingRole verwenden, um die IAM-Rolle für AutoScaling anzugeben. Die Standard-Rolle ist EMR_AutoScaling_DefaultRole und kann mit demBefehl create-default-roles erstellt werden. Die Rolle kann nur hinzugefügt werden, wennder Cluster erstellt wird. Sie kann nicht zu einem vorhandenen Cluster hinzugefügt werden.

Eine detaillierte Beschreibung der Parameter, die beim Konfigurieren einer Auto Scaling-Richtlinieverfügbar sind, finden Sie unter PutAutoScalingPolicy in Amazon EMR API Reference.

Erstellen eines Clusters mit einer angewendeten Auto Scaling-Richtlinie in einerInstance-Gruppe

Sie können eine Auto Scaling-Konfiguration innerhalb der Option --instance-groups des Befehlsaws emr create-cluster festlegen. Das folgende Beispiel demonstriert einen create-Cluster-Befehl, in dem eine Auto Scaling-Richtlinie für die Core-Instance-Gruppe enthalten ist. Der Befehl erstellteine Skalierungskonfiguration, die der standardmäßigen Scale-Out-Richtlinie beim Erstellen einer AutoScaling-Richtlinie mithilfe der AWS Management Console für Amazon EMR entspricht. Aus Gründen derÜbersichtlichkeit verzichten wir auf die Abbildung einer Scale-In-Richtlinie. Das Erstellen einer Scale-Out-Regel ohne Verringern der Scale-In-Regel wird nicht empfohlen.

aws emr create-cluster --release-label emr-5.2.0 --service-role EMR_DefaultRole --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole --auto-scaling-role EMR_AutoScaling_DefaultRole --instance-groups Name=MyMasterIG,InstanceGroupType=MASTER,InstanceType=m5.xlarge,InstanceCount=1 'Name=MyCoreIG,InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=2,AutoScalingPolicy={Constraints={MinCapacity=2,MaxCapacity=10},Rules=[{Name=Default-scale-out,Description=Replicates the default scale-out rule in the console.,Action={SimpleScalingPolicyConfiguration={AdjustmentType=CHANGE_IN_CAPACITY,ScalingAdjustment=1,CoolDown=300}},Trigger={CloudWatchAlarmDefinition={ComparisonOperator=LESS_THAN,EvaluationPeriods=1,MetricName=YARNMemoryAvailablePercentage,Namespace=AWS/ElasticMapReduce,Period=300,Statistic=AVERAGE,Threshold=15,Unit=PERCENT,Dimensions=[{Key=JobFlowId,Value="${emr.clusterId}"}]}}}]}'

Der folgende Befehl veranschaulicht die Verwendung der Befehlszeile zur Angabe einer AutoScaling-Richtliniendefinition im Rahmen einer Instance-Gruppe-Konfigurationsdatei mit dem Nameninstancegroupconfig.json.

aws emr create-cluster --release-label emr-5.2.0 --service-role EMR_DefaultRole --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole --instance-groups file://your/path/to/instancegroupconfig.json --auto-scaling-role EMR_AutoScaling_DefaultRole

Der Inhalt der Konfigurationsdatei sieht wie folgt aus:

[{ "InstanceCount": 1, "Name": "MyMasterIG", "InstanceGroupType": "MASTER", "InstanceType": "m5.xlarge"},{ "InstanceCount": 2,

424

Page 432: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-Gruppen

"Name": "MyCoreIG", "InstanceGroupType": "CORE", "InstanceType": "m5.xlarge", "AutoScalingPolicy": { "Constraints": { "MinCapacity": 2, "MaxCapacity": 10 }, "Rules": [ { "Name": "Default-scale-out", "Description": "Replicates the default scale-out rule in the console for YARN memory.", "Action":{ "SimpleScalingPolicyConfiguration":{ "AdjustmentType": "CHANGE_IN_CAPACITY", "ScalingAdjustment": 1, "CoolDown": 300 } }, "Trigger":{ "CloudWatchAlarmDefinition":{ "ComparisonOperator": "LESS_THAN", "EvaluationPeriods": 1, "MetricName": "YARNMemoryAvailablePercentage", "Namespace": "AWS/ElasticMapReduce", "Period": 300, "Threshold": 15, "Statistic": "AVERAGE", "Unit": "PERCENT", "Dimensions":[ { "Key" : "JobFlowId", "Value" : "${emr.clusterId}" } ] } } } ] }}]

Hinzufügen einer Instance-Gruppe mit einer Auto Scaling-Richtlinie zu einemCluster

Sie können eine Konfiguration der Skalierungsrichtlinie mit der Option --instance-groups mit demBefehl add-instance-groups auf die gleiche Weise angeben wie bei Verwendung von create-cluster. Im folgenden Beispiel wird ein Verweis auf die JSON-Datei instancegroupconfig.json mitder Instance-Gruppenkonfiguration verwendet.

aws emr add-instance-groups --cluster-id j-1EKZ3TYEVF1S2 --instance-groups file://your/path/to/instancegroupconfig.json

425

Page 433: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-Gruppen

Anwenden einer Auto Scaling-Richtlinie auf eine vorhandene Instance-Gruppeoder Ändern einer angewandten RichtlinieVerwenden Sie den aws emr put-auto-scaling-policy-Befehl, um eine Auto Scaling-Richtlinieauf eine vorhandene Instance-Gruppe anzuwenden. Die Instance-Gruppe muss Teil eines Clusters sein,der die Auto Scaling-IAM-Rolle verwendet. Im folgenden Beispiel wird ein Verweis auf eine JSON-Datei(autoscaleconfig.json) verwendet, in der eine Auto Scaling-Richtlinienkonfiguration definiert ist.

aws emr put-auto-scaling-policy --cluster-id j-1EKZ3TYEVF1S2 --instance-group-id ig-3PLUZBA6WLS07 --auto-scaling-policy file://your/path/to/autoscaleconfig.json

Der Inhalt der autoscaleconfig.json-Datei, die die gleiche Scale-Out-Regel wie im vorherigen Beispieldefiniert, ist unten dargestellt.

{ "Constraints": { "MaxCapacity": 10, "MinCapacity": 2 }, "Rules": [{ "Action": { "SimpleScalingPolicyConfiguration": { "AdjustmentType": "CHANGE_IN_CAPACITY", "CoolDown": 300, "ScalingAdjustment": 1 } }, "Description": "Replicates the default scale-out rule in the console for YARN memory", "Name": "Default-scale-out", "Trigger": { "CloudWatchAlarmDefinition": { "ComparisonOperator": "LESS_THAN", "Dimensions": [{ "Key": "JobFlowID", "Value": "${emr.clusterID}" }], "EvaluationPeriods": 1, "MetricName": "YARNMemoryAvailablePercentage", "Namespace": "AWS/ElasticMapReduce", "Period": 300, "Statistic": "AVERAGE", "Threshold": 15, "Unit": "PERCENT" } } }] }

Auto Scaling-Richtlinie aus einer Instance-Gruppe entfernen

aws emr remove-auto-scaling-policy --cluster-id j-1EKZ3TYEVF1S2 --instance-group-id ig-3PLUZBA6WLS07

Auto Scaling-Richtlinienkonfiguration abrufenDer Befehl describe-cluster ruft die Richtlinienkonfiguration im Block InstanceGroup ab. Mitdem folgenden Befehl wird beispielsweise die Konfiguration für den Cluster mit der Cluster-IDj-1CWOHP4PI30VJ abgerufen.

426

Page 434: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-Gruppen

aws emr describe-cluster –-cluster-id j-1CWOHP4PI30VJ

Der Befehl generiert die folgende Beispielausgabe:

{ "Cluster": { "Configurations": [], "Id": "j-1CWOHP4PI30VJ", "NormalizedInstanceHours": 48, "Name": "Auto Scaling Cluster", "ReleaseLabel": "emr-5.2.0", "ServiceRole": "EMR_DefaultRole", "AutoTerminate": false, "TerminationProtected": true, "MasterPublicDnsName": "ec2-54-167-31-38.compute-1.amazonaws.com", "LogUri": "s3n://aws-logs-232939870606-us-east-1/elasticmapreduce/", "Ec2InstanceAttributes": { "Ec2KeyName": "performance", "AdditionalMasterSecurityGroups": [], "AdditionalSlaveSecurityGroups": [], "EmrManagedSlaveSecurityGroup": "sg-09fc9362", "Ec2AvailabilityZone": "us-east-1d", "EmrManagedMasterSecurityGroup": "sg-0bfc9360", "IamInstanceProfile": "EMR_EC2_DefaultRole" }, "Applications": [ { "Name": "Hadoop", "Version": "2.7.3" } ], "InstanceGroups": [ { "AutoScalingPolicy": { "Status": { "State": "ATTACHED", "StateChangeReason": { "Message": "" } }, "Constraints": { "MaxCapacity": 10, "MinCapacity": 2 }, "Rules": [ { "Name": "Default-scale-out", "Trigger": { "CloudWatchAlarmDefinition": { "MetricName": "YARNMemoryAvailablePercentage", "Unit": "PERCENT", "Namespace": "AWS/ElasticMapReduce", "Threshold": 15, "Dimensions": [ { "Key": "JobFlowId", "Value": "j-1CWOHP4PI30VJ" } ], "EvaluationPeriods": 1, "Period": 300,

427

Page 435: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden der automatischen Skalierung mit einerbenutzerdefinierten Richtlinie für Instance-Gruppen

"ComparisonOperator": "LESS_THAN", "Statistic": "AVERAGE" } }, "Description": "", "Action": { "SimpleScalingPolicyConfiguration": { "CoolDown": 300, "AdjustmentType": "CHANGE_IN_CAPACITY", "ScalingAdjustment": 1 } } }, { "Name": "Default-scale-in", "Trigger": { "CloudWatchAlarmDefinition": { "MetricName": "YARNMemoryAvailablePercentage", "Unit": "PERCENT", "Namespace": "AWS/ElasticMapReduce", "Threshold": 75, "Dimensions": [ { "Key": "JobFlowId", "Value": "j-1CWOHP4PI30VJ" } ], "EvaluationPeriods": 1, "Period": 300, "ComparisonOperator": "GREATER_THAN", "Statistic": "AVERAGE" } }, "Description": "", "Action": { "SimpleScalingPolicyConfiguration": { "CoolDown": 300, "AdjustmentType": "CHANGE_IN_CAPACITY", "ScalingAdjustment": -1 } } } ] }, "Configurations": [], "InstanceType": "m5.xlarge", "Market": "ON_DEMAND", "Name": "Core - 2", "ShrinkPolicy": {}, "Status": { "Timeline": { "CreationDateTime": 1479413437.342, "ReadyDateTime": 1479413864.615 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "RunningInstanceCount": 2, "Id": "ig-3M16XBE8C3PH1", "InstanceGroupType": "CORE", "RequestedInstanceCount": 2, "EbsBlockDevices": [] }, {

428

Page 436: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideManuelle Größenanpassung eines aktiven Clusters

"Configurations": [], "Id": "ig-OP62I28NSE8M", "InstanceGroupType": "MASTER", "InstanceType": "m5.xlarge", "Market": "ON_DEMAND", "Name": "Master - 1", "ShrinkPolicy": {}, "EbsBlockDevices": [], "RequestedInstanceCount": 1, "Status": { "Timeline": { "CreationDateTime": 1479413437.342, "ReadyDateTime": 1479413752.088 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "RunningInstanceCount": 1 } ], "AutoScalingRole": "EMR_AutoScaling_DefaultRole", "Tags": [], "BootstrapActions": [], "Status": { "Timeline": { "CreationDateTime": 1479413437.339, "ReadyDateTime": 1479413863.666 }, "State": "WAITING", "StateChangeReason": { "Message": "Cluster ready after last step completed." } } }}

Manuelle Größenanpassung eines aktiven ClustersÜber die AWS Management Console, die AWS CLI oder die Amazon EMR-API können Sie in einemaktiven Cluster Instances zu Core- und Task-Instance-Gruppen und Instance-Flotten hinzufügen oderdaraus entfernen. Wenn ein Cluster Instance-Gruppen verwendet, müssen Sie die Anzahl der Instancesexplizit ändern. Wenn Ihr Cluster Instance-Flotten verwendet, können Sie die Zieleinheiten für On-Demand-Instances und Spot-Instances ändern. Die Instance-Flotte fügt anschließend Instances hinzu bzw.entfernt diese, um dem neuen Ziel zu entsprechen. Weitere Informationen finden Sie im Instance-Flotten-Optionen (p. 157). Sobald die Instances verfügbar sind, können Anwendungen die neu bereitgestelltenAmazon EC2-Instances zum Hosten von Knoten nutzen. Wenn Instances entfernt werden, AmazonEMRbeendet Aufgaben auf eine Weise, die keine Aufträge unterbricht und vor Datenverlust schützt.Weitere Informationen finden Sie im Beendigung bei Task-Abschluss (p. 435).

Verändern der Größe eines Clusters mithilfe der KonsoleSie können die Größe eines Clusters über die Amazon EMR-Konsole ändern.

So ändern Sie die Anzahl der Instances für einen vorhandenen aktiven Cluster mithilfe der Konsole

1. Wählen Sie auf der Seite Cluster List (Cluster-Liste) den zu ändernden Cluster aus.

429

Page 437: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideManuelle Größenanpassung eines aktiven Clusters

2. Wählen Sie auf der Seite Cluster Details (Cluster-Details) die Option Hardware aus.3. Wenn Ihr Cluster Instance-Gruppen verwendet, wählen Sie für die Instance-Gruppe, die Sie ändern

möchten, die Option Resize (Größe ändern) in der Spalte Instance count (Instance-Anzahl) aus.Geben Sie eine neue Instance-Anzahl ein und aktivieren Sie anschließend das grüne Häkchen.

–ODER–

Wenn Ihr Cluster Instance-Flotten verwendet, wählen Sie Resize (Größe ändern) in der SpalteProvisioned capacity (Bereitgestellte Kapazität) aus, geben neue Werte für On-Demand units (On-Demand-Einheiten) und Spot units (Spot-Einheiten) ein und wählen dann Resize (Größe ändern) aus.

Wenn Sie die Anzahl der Knoten ändern, wird der Status der Instance-Gruppe aktualisiert. Wenn diegewünschte Änderung abgeschlossen ist, ändert sich der Status zu Running (Wird ausgeführt).

430

Page 438: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideManuelle Größenanpassung eines aktiven Clusters

Verändern der Größe eines Clusters mithilfe der AWS CLISie können die Größe eines Clusters über die AWS CLI ändern. Sie können die Anzahl derAufgabenknoten erhöhen oder verringern. Sie können außerdem die Anzahl der Core-Knoten in einemausgeführten Cluster erhöhen oder verringern. Es ist auch möglich, eine Instance in der Core-Instance-Gruppe mithilfe der oder der API zu erminierenAWS CLI. Dies sollte mit Vorsicht erfolgen. Das Beendeneiner Instance in der Core-Instance-Gruppe birgt Datenverluste und die Instance wird nicht automatischersetzt.

Zusätzlich zur Größenanpassung der Kern- und Task-Gruppen können Sie mithilfe der AWS CLI auch eineoder mehrere Task-Instance-Gruppen zu einem ausgeführten Cluster hinzufügen.

So ändern Sie die Größe eines Clusters über die Änderung der Instance-Anzahl mithilfe der AWSCLI

Sie können Instances zur Core- oder Task-Gruppe hinzufügen. Mit dem AWS CLI-Unterbefehl modify-instance-groups und dem Parameter InstanceCount können Sie außerdem Instances aus der Task-Gruppe entfernen. Um Instances zu Core- oder Task-Gruppen hinzuzufügen, erhöhen Sie den Wert fürInstanceCount. Um die Anzahl der Instances in der Aufgabengruppe zu reduzieren, reduzieren Sie denWert für InstanceCount. Wenn Sie die Anzahl der Instances der Aufgabengruppe auf 0 ändern, werdenalle Instances entfernt, nicht jedoch die Instance-Gruppe.

• Um die Anzahl der Instances in der Task-Instance-Gruppe von 3 auf 4 zu erhöhen, geben Sie denfolgenden Befehl ein und ersetzen ig-31JXXXXXXBTO durch die Instance-Gruppen-ID.

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-31JXXXXXXBTO,InstanceCount=4

Verwenden Sie den Unterbefehl InstanceGroupId, um die describe-cluster abzurufen. DieAusgabe ist ein JSON-Objekt mit dem Namen Cluster, das die ID jeder Instance-Gruppe enthält. Umdiesen Befehl verwenden zu können, benötigen Sie die Cluster-ID (diese können Sie über den awsemr list-clusters-Befehl oder die Konsole abrufen). Um die Instance-Gruppen-ID abzurufen,geben Sie den folgenden Befehl ein und ersetzen j-2AXXXXXXGAPLF durch die Cluster-ID.

aws emr describe-cluster --cluster-id j-2AXXXXXXGAPLF

Mit dem Unterbefehl --modify-instance-groups können Sie eine Instance in der Core-Instance-Gruppe auch über die AWS CLI beenden.

Warning

Die Angabe von EC2InstanceIdsToTerminate muss mit Vorsicht erfolgen. Instanceswerden sofort beendet, unabhängig vom Status der Anwendungen, die auf ihnen ausgeführtwerden, und die Instance wird nicht automatisch ersetzt. Dies gilt unabhängig von derKonfiguration vom Scale down behavior (Abwärtsskalierungsverhalten) für den Cluster. Wenneine Instance auf diese Weise beendet wird, besteht das Risiko von Datenverlusten undunvorhersehbarem Clusterverhalten.

Um eine bestimmte Instance zu beenden, benötigen Sie die Instance-Gruppen-ID (von demUnterbefehl aws emr describe-cluster --cluster-id zurückgegeben) und die Instance-ID(von dem Unterbefehl aws emr list-instances --cluster-id zurückgegeben), geben Sie denfolgenden Befehl ein und ersetzen Sie . ig-6RXXXXXX07SA durch die Instance-Gruppen-ID ersetzeni-f9XXXXf2 durch die Instance-ID.

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-6RXXXXXX07SA,EC2InstanceIdsToTerminate=i-f9XXXXf2

431

Page 439: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideManuelle Größenanpassung eines aktiven Clusters

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

So ändern Sie die Größe eines Clusters über das Hinzufügen von Task-Instance-Gruppen mithilfeder AWS CLI

Mit der AWS CLI können Sie über den --add-instance-groups Unterbefehl zwischen 1– 48 Task-Instance-Gruppen zu einem Cluster hinzufügen. Task-Instances-Gruppen können nur zu einem Cluster miteiner Master-Instance-Gruppe und einer Core-Instance-Gruppe hinzugefügt werden. Bei der Verwendungder AWS CLI können Sie bis zu fünf Task-Instance-Gruppen per --add-instance-groups-Unterbefehlhinzufügen.

1. Um eine einzelne Task-Instance-Gruppe zu einem Cluster hinzuzufügen, geben Sie den folgendenBefehl ein und ersetzen Sie j-JXBXXXXXX37R durch die Cluster-ID.

aws emr add-instance-groups --cluster-id j-JXBXXXXXX37R --instance-groups InstanceCount=6,InstanceGroupType=task,InstanceType=m5.xlarge

2. Um mehrere Task-Instance-Gruppen zu einem Cluster hinzuzufügen, geben Sie den folgenden Befehlein und ersetzen Sie j-JXBXXXXXX37R durch die Cluster-ID. Sie können bis zu fünf Task-Instance-Gruppen pro Befehl hinzufügen.

aws emr add-instance-groups --cluster-id j-JXBXXXXXX37R --instance-groups InstanceCount=6,InstanceGroupType=task,InstanceType=m5.xlarge InstanceCount=10,InstanceGroupType=task,InstanceType=m5.xlarge

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Unterbrechen einer GrößenänderungWenn Sie Amazon EMR-Version 4.1.0 oder höher verwenden, können Sie eine Größenänderung auchwährend einer laufenden Größenänderung durchführen. Sie können außerdem eine zuvor gesendeteAnfrage zur Größenanpassung stoppen oder eine neue Anfrage senden, um eine frühere Anfrage zuüberschreiben, ohne auf deren Abschluss zu warten. Sie können eine vorhandene Größenänderung überdie Konsole oder über einen ModifyInstanceGroups-API-Aufruf mit der aktuellen Anzahl als Zielanzahlfür den Cluster beenden.

Die folgende Abbildung zeigt eine Task-Instance-Gruppe, deren Größe gerade geändert wird und bei derdie Größenänderung über Stop (Stopp) beendet werden kann.

So unterbrechen Sie eine Größenänderung mithilfe der AWS CLI

Mit dem modify-instance-groups-Unterbefehl können Sie eine Größenänderung über die AWS CLIbeenden. Nehmen wir an, Sie haben sechs Instances in der Instance-Gruppe und Sie möchten diese auf10 erhöhen. Später entscheiden Sie, dass Sie diese Anforderung stornieren möchten:

• Die ursprüngliche Anforderung:

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-myInstanceGroupId,InstanceCount=10

Die zweite Anforderung zum Beenden der ersten Anforderung:

432

Page 440: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideManuelle Größenanpassung eines aktiven Clusters

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-myInstanceGroupId,InstanceCount=6

Note

Da es sich um einen asynchronen Prozess handelt, ändert sich die Instance-Anzahlmöglicherweise entsprechend der vorherigen API-Anforderung, bevor nachfolgendeAnforderungen berücksichtigt werden. Bei einer Verkleinerung kann es sein, dass auf den Knotennoch Aufgaben ausgeführt werden. In diesem Fall wird die Instance-Gruppe nicht verkleinert, bisdie Knoten ihre Arbeit abgeschlossen haben.

Status "Ausgesetzt"Eine Instance-Gruppe wird in einen ausgesetzten Zustand versetzt, wenn zu viele Fehler beim Startender neuen Cluster-Knoten auftreten. Wenn beispielsweise neue Knoten während der Durchführung vonBootstrap-Aktionen fehlschlagen, wechselt die Instance-Gruppe in den Status SUSPENDED, anstattkontinuierlich neue Knoten bereitzustellen. Nachdem Sie das entsprechende Problem behoben haben,setzen Sie die Anzahl der gewünschten Knoten in der Instance-Gruppe des Clusters zurück. Anschließendfährt die Instance-Gruppe mit der Reservierung von Knoten fort. Das Ändern einer Instance-Gruppe weistAmazon EMR an, die Knotenbereitstellung erneut zu versuchen. Nicht ausgeführte Knoten werden neugestartet oder beendet.

Mit dem list-instancesdescribe-cluster-Unterbefehl in der AWS CLI werden wie beim -Unterbefehl alle Instances und deren Status zurückgegeben. Wenn Amazon EMR einen Fehler bei einerInstance-Gruppe erkennt, wird der Status der Gruppe zu SUSPENDED geändert.

So setzen Sie einen Cluster im Status SUSPENDED mithilfe der AWS CLI zurück

Geben Sie den describe-cluster-Unterbefehl mit dem Parameter --cluster-id ein, um den Statusder Instances in Ihrem Cluster anzuzeigen.

• Um Informationen zu allen Instances und Instance-Gruppen in einem Cluster anzuzeigen, geben Sieden folgenden Befehl ein und ersetzen j-3KVXXXXXXY7UG durch die Cluster-ID.

aws emr describe-cluster --cluster-id j-3KVXXXXXXY7UG

Die Ausgabe zeigt Informationen über Ihre Instance-Gruppen und den Status der Instances an:

{ "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1413187781.245, "CreationDateTime": 1413187405.356 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "Ec2InstanceAttributes": { "Ec2AvailabilityZone": "us-west-2b" }, "Name": "Development Cluster", "Tags": [], "TerminationProtected": false, "RunningAmiVersion": "3.2.1",

433

Page 441: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideManuelle Größenanpassung eines aktiven Clusters

"NormalizedInstanceHours": 16, "InstanceGroups": [ { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187775.749, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "InstanceType": "m5.xlarge", "Id": "ig-3ETXXXXXXFYV8", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }, { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187781.301, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "CORE", "InstanceGroupType": "CORE", "InstanceType": "m5.xlarge", "Id": "ig-3SUXXXXXXQ9ZM", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }...}

Um Informationen zu einer bestimmten Instance-Gruppe anzuzeigen, geben Sie den Unterbefehllist-instances mit den Parametern --cluster-id und --instance-group-types ein. Siekönnen Informationen für MASTER-, CORE- oder TASK-Gruppen anzeigen.

aws emr list-instances --cluster-id j-3KVXXXXXXY7UG --instance-group-types "CORE"

Verwenden Sie den Unterbefehl modify-instance-groups mit dem Parameter --instance-groups, um einen Cluster mit dem SUSPENDED-Status zurückzusetzen. Die Instance-Gruppen-ID wirdvom Unterbefehl describe-cluster zurückgegeben.

aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-3SUXXXXXXQ9ZM,InstanceCount=3

434

Page 442: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCluster-Scale-Down

Cluster-Scale-DownSeit Amazon EMR Version 5.1.0 und später gibt es zwei Optionen für das Scale-Down-Verhalten: Beendenzur Instance-Stundengrenze für die Amazon EC2-Fakturierung oder Beenden bei Abschluss der Aufgabe.Beginnend mit Amazon EMR-Version 5.10.0 ist aufgrund der sekundenweisen Abrechnung die Einstellungfür ein Beenden an einer Instance-Stundengrenze veraltet, da die Amazon EC2-Abrechnung pro Sekundeeingeführt wurde. Wir raten davon ab, die Beendigung zur Instance-Stundengrenze zu verwenden, wenndiese Option angeboten wird.

Warning

Wenn Sie eine modify-instance-groups mit der AWS CLI überEC2InstanceIdsToTerminate übergeben, werden diese Instances sofort und ohneBerücksichtigung dieser Einstellungen sowie unabhängig vom Status der darauf ausgeführtenAnwendungen beendet. Wenn eine Instance auf diese Weise beendet wird, besteht das Risiko vonDatenverlusten und unvorhersehbarem Clusterverhalten.

Wenn das Beenden beim Task-Abschluss festgelegt ist, sperrt Amazon EMR die Knoten für Tasks undlässt aktive Tasks auslaufen, bevor die Amazon EC2-Instances beendet werden. Bei beiden Variantenwerden durch Amazon EMR keine Amazon EC2-Instances in den Core-Instance-Gruppen beendet, soferndies zu HDFS-Beschädigungen führen könnte.

Beendigung bei Task-AbschlussAmazon EMR ermöglicht die Abwärtsskalierung Ihres Clusters ohne Auswirkungen auf Ihren Workload.Amazon EMR deaktiviert YARN, HDFS und andere Daemons auf Ihren Core- und Task-Knoten währendeiner Größenänderung nach unten, ohne dass Daten verloren gehen oder Aufgaben unterbrochenwerden. Amazon EMR verkleinert Instance-Gruppen nur, wenn die den gruppen zugewiesenen Arbeitenabgeschlossen sind und die Gruppen sich im Ruhezustand befinden. Bei der Außerbetriebnahme vonYARN NodeManager können Sie die Zeit, die ein Knoten auf die Außerbetriebnahme wartet, manuellanpassen.

Die Dauer wird mit einer Eigenschaft in der yarn-site-Konfigurationsklassifizierungeingerichtet. Legen Sie unter Amazon EMR-Version 5.12.0 und höher die Eigenschaftyarn.resourcemanager.nodemanager-graceful-decommission-timeout-secsfest. Bei Verwendung von früheren Amazon EMR-Versionen geben Sie die Eigenschaftyarn.resourcemanager.decommissioning.timeout an.

Wenn nach diesem Stilllegungszeitraum noch Container oder YARN-Anwendungen ausgeführt werden,wird die Stilllegung des Knotens erzwungen. YARN plant betroffene Container in anderen Knoten neu. DieStandardwert ist 3600 Sekunden (eine Stunde). Sie können den Timeout auf einen extrem hohen Wertfestlegen, um die ordnungsgemäße Verkleinerung zu verzögern. Weitere Informationen finden Sie unterOrdnungsgemäßes Stilllegen von YARN Knoten in der Apache Hadoop-Dokumentation.

Aufgabenknoten-GruppenAmazon EMR wählt in intelligenter Weise Instances aus, die keine Aufgaben im Zusammenhang mit einemSchritt oder einer Anwendung ausführen, und entfernt diese zuerst aus einem Cluster. Wenn alle Instancesim Cluster genutzt werden, wartet Amazon EMR auf den Abschluss von Tasks in einer Instanz, bevor dieseaus dem Cluster entfernt wird. Die standardmäßige Wartezeit beträgt 1 Stunde. Sie können diese überden Wert yarn.resourcemanager.decommissioning.timeout ändern. Amazon EMRverwendetdie neue Einstellung dynamisch. Sie können sie auf einen beliebig großen Wert festlegen. So können Siesicherstellen, dass bei der Verkleinerung des Clusters keine Aufgaben beendet werden.

Core-Knoten-GruppenAuf Core-Knoten müssen YARN-NodeManager- und HDFS-DataNode-Daemons stillgelegt werden, damitdie Instance-Gruppe verkleinert wird. Bei YARN stellt das ordnungsgemäße Verkleinern sicher, dass ein für

435

Page 443: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCloning a Cluster Using the Console

die Außerbetriebnahme vorgesehener Knoten nur dann in den Status DECOMMISSIONED wechselt, wennes keine ausstehenden oder unvollständigen Container oder Anwendungen gibt. Die Außerbetriebnahmewird direkt beendet, falls es zu Beginn der Außerbetriebnahme keine laufenden Container auf dem Knotengibt.

Bei HDFS stellt die ordnungsgemäße Verkleinerung sicher, dass die Zielkapazität von HDFS für allevorhandenen Blöcke ausreichend ist. Wenn die Zielkapazität nicht groß genug ist, wird nur ein Teilder Core-Instances außer Betrieb gestellt. So können die verbleibenden Knoten die aktuell in HDFSvorhandenen Daten verarbeiten. Stellen Sie für eine weitere Außerbetriebnahme zusätzliche HDFS-Kapazität sicher. Sie sollten außerdem versuchen, die E/A-Vorgänge vor dem Versuch einer Verkleinerungeiner Instance-Gruppe zu minimieren. Diese könnten den Abschluss der Verkleinerung verzögern.

Ein weiterer Grenzwert ist der Standardreplikationsfaktor, dfs.replication innerhalb von /etc/hadoop/conf/hdfs-site. Amazon EMR konfiguriert den Wert basierend auf der Anzahl der Instancesim Cluster: 1 mit 1-3 Instances, 2 für Cluster mit 4-9 Instances und 3 für Cluster mit 10+ Instances. Dieordnungsgemäße Verkleinerung lässt das Verkleinern von Core-Knoten unter den HDFS-Replikationsfaktornicht zu. Dies verhindert, dass HDFS aufgrund von unzureichenden Replikaten Dateien nicht mehrschließen kann. Um dieses Limit zu umgehen, müssen Sie den Replikationsfaktor senken und denNameNode-Daemon neu starten.

Konfigurieren des Amazon EMR-Scale-Down-VerhaltensNote

Diese Konfiguration ist nur bei Amazon EMR Version 5.1.0 oder höher verfügbar.

Sie können die AWS Management Console, die AWS CLI oder die Amazon EMR-API zum Konfigurierendes Scale-Down-Verhaltens beim Erstellen eines Clusters nutzen. Das Konfigurieren der Abwärtsskalierungmithilfe der AWS Management Console erfolgt in Schritt 3:. Der Bildschirm General Cluster Settings(Allgemeine Cluster-Einstellungen) wird angezeigt, wenn Sie einen Cluster mit Advanced options(Erweiterte Optionen) erstellen.

Beim Erstellen eines Clusters mithilfe der AWS CLI verwenden Sie die --scale-down-behavior-Option,um TERMINATE_AT_INSTANCE_HOUR oder TERMINATE_AT_TASK_COMPLETION anzugeben.

Cloning a Cluster Using the ConsoleSie können die Amazon EMR-Konsole zum Klonen eines Clusters verwenden, wodurch eine Kopie derKonfiguration des ursprünglichen Cluster als Basis für einen neuen Cluster erstellt wird.

So klonen Sie einen Cluster mithilfe der Konsole

1. Klicken Sie auf der Seite Cluster List (Cluserliste) auf den zu klonenden Cluster.

436

Page 444: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideÜbermitteln von Aufträgen an einen Cluster

2. Klicken Sie oben auf der Seite Cluster Details (Clusterdetails) auf Clone (Klonen).

Wählen Sie in dem Dialogfeld Yes (Ja), um die Schritte aus dem ursprünglichen Cluster in dengeklonten Cluster zu integrieren. Wählen Sie No (Nein) aus, um die Konfiguration des ursprünglichenClusters zu klonen, ohne die Schritte zu integrieren.

Note

Für Cluster, die mit AMI 3.1.1 und höher (Hadoop 2.x) oder AMI 2.4.8 und höher (Hadoop1.x) erstellt wurden, gilt, dass wenn Sie einen Cluster klonen und Schritte integrieren, alleSystemschritte (z. B. Konfigurieren von Hive) zusammen mit den vom Benutzer übermitteltenSchritten, bis zu insgesamt 1 000, geklont werden. Alle älteren Schritte, die nicht mehr imSchrittverlauf der Konsole erscheinen, können nicht geklont werden. Für frühere AMIs könnennur 256 Schritte geklont werden (einschließlich Systemschritten). Weitere Informationenfinden Sie im Übermitteln von Aufträgen an einen Cluster (p. 437).

3. Es wird die Seite Create Cluster (Cluster erstellen) wird mit einer Kopie der ursprünglichen Cluster-Konfiguration angezeigt. Überprüfen Sie die Konfiguration, nehmen Sie notwendige Änderungen vorund klicken Sie dann auf Create Cluster (Cluster erstellen).

Übermitteln von Aufträgen an einen ClusterIn diesem Abschnitt werden die Methoden zur Übermittlung von Arbeit an einen Amazon EMR-Clusterbeschrieben. Sie können Arbeit an einen Cluster übermitteln, indem Sie Schritte hinzufügen oder interaktivHadoop-Aufträge an den Master-Knoten übertragen. Die maximale Anzahl der PENDING- und ACTIVE-Schritte in einem Cluster ist 256. Sie können Aufträge interaktiv an den Master-Knoten übermitteln, auchdann, wenn auf dem Cluster 256 aktive Schritte ausgeführt werden. Sie können unbegrenzt viele Schrittewährend der Nutzungsdauer eines langlebigen Clusters übermitteln, es können aber nur 256 Schritte zueinem bestimmten Zeitpunkt den Status ACTIVE oder PENDING haben.

Themen• Arbeiten mit Schritten unter Verwendung von AWS CLI und Konsole (p. 437)• Interaktives Übermitteln von Hadoop-Aufträgen (p. 442)• Hinzufügen von mehr als 256 Schritten zu einem Cluster (p. 443)

Arbeiten mit Schritten unter Verwendung von AWS CLIund KonsoleSie können Schritte zu einem Cluster über die AWS Management Console, die AWS CLI oder die AmazonEMR-API hinzufügen. Die maximale Anzahl der PENDING- und ACTIVE-Schritte, die in einem Clusterzulässig sind, beträgt 256. Darin inbegriffen sind auch Systemschritte wie Apache Pig installieren, Hiveinstallieren, HBase installieren und Debugging konfigurieren. Sie können unbegrenzt viele Schritte währendder Nutzungsdauer eines langlebigen Clusters übermitteln, es können aber nur 256 Schritte zu einembestimmten Zeitpunkt den Status ACTIVE oder PENDING haben.

Mit Amazon EMR Version 4.8.0 und höher, außer Version 5.0.0, können Sie ausstehende Schritte über dieAWS Management Console, die AWS CLI oder die Amazon EMR-API abbrechen.

Mit Amazon EMR Version 5.28.0 und höher können Sie sowohl ausstehende als auch ausgeführte Schritteabbrechen. Sie können auch mehrere Schritte parallel ausführen, um die Clusterauslastung zu verbessernund Kosten zu sparen.

Themen• Hinzufügen von Schritten zu einem Cluster mithilfe der Konsole (p. 438)

437

Page 445: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Schritten unter

Verwendung von AWS CLI und Konsole

• Hinzufügen von Schritten zu einem Cluster mit der AWS CLI (p. 439)• Überlegungen zum parallelen Ausführen mehrerer Schritte (p. 440)• Anzeigen von Schritten (p. 441)• Abbrechen von Schritten (p. 441)

Hinzufügen von Schritten zu einem Cluster mithilfe der KonsoleSie können Schritte zu einem Cluster über die AWS CLI, das Amazon EMR-SDK oder die AWSManagement Console hinzufügen.

So fügen Sie Schritte während der Clustererstellung hinzu

Wenn Sie die AWS Management Console verwenden, können Sie Schritte bei der Erstellung des Clustershinzufügen.

1. Wählen Sie in der Amazon EMR-Konsole Create Cluster - Advanced Options (Cluster erstellen –Erweiterte Optionen) aus.

2. Auf der Step 1: (Schritt 1:) Wählen Sie auf der Seite Software and Steps für Steps (optional) die OptionRun multiple steps in parallel to improve cluster utilization and save cost aus. Der Standardwert für dieNebenläufigkeitsstufe ist 10. Sie können zwischen 2 und 256 Schritten wählen, die parallel ausgeführtwerden können.

Note

Das parallele Ausführen mehrerer Schritte wird nur mit Amazon EMR Version 5.28.0 undhöher unterstützt.

3. Wählen Sie für After last step completes (Nach Abschluss des letzten Schritts) die Option Clusterenters waiting state (Cluster in den Wartezustand) oder Auto-terminate the cluster (Cluster automatischbeenden) aus.

4. Wählen Sie Step type (Schritttyp) und dann Add step (Schritt hinzufügen) aus.5. Geben Sie die entsprechenden Werte in die Felder im Dialogfeld Add Step (Schritt hinzufügen) ein.

Die Optionen unterscheiden sich je nach Schritttyp. Wenn Sie Run multiple steps in parallel to improvecluster utilization and save cost (Mehrere Schritte parallel ausführen, um die Clusterauslastung zuverbessern und Kosten zu sparen) aktiviert haben, ist die einzige verfügbare Option für Action onfailure (Aktion bei Fehler) Continue (Weiter). Wählen Sie als Nächstes Add (Hinzufügen) aus.

So fügen Sie einem ausgeführten Cluster Schritte hinzu

Mit der AWS Management Console können Sie Schritte zu einem langlebigen Cluster hinzufügen. Dies istein Cluster, für den die Option der automatischen Beendigung deaktiviert ist.

1. Wählen Sie in der Amazon EMR-Konsole auf der Seite Cluster List (Cluster-Liste) den Link für IhrenCluster aus.

2. Wählen Sie auf der Seite Cluster Details (Clusterdetails) die Registerkarte Steps (Schritte) aus.3. Wählen Sie auf der Registerkarte Steps (Schritte) die Option Add step (Schritt hinzufügen) aus.4. Geben Sie die entsprechenden Werte in die Felder im Dialogfeld Add Step (Schritt hinzufügen) ein und

wählen Sie dann Add (Hinzufügen) aus. Die Optionen unterscheiden sich je nach Schritttyp.

So ändern Sie die Nebenläufigkeitsstufe für Schritte in einem ausgeführten Cluster

Mit der AWS Management Console können Sie die Nebenläufigkeitsstufe für Schritte in einemausgeführten Cluster ändern.

438

Page 446: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Schritten unter

Verwendung von AWS CLI und Konsole

Note

Das parallele Ausführen mehrerer Schritte wird nur mit Amazon EMR Version 5.28.0 und höherunterstützt.

1. Wählen Sie in der Amazon EMR-Konsole auf der Seite Cluster List (Cluster-Liste) den Link für IhrenCluster aus.

2. Wählen Sie auf der Seite Cluster Details (Clusterdetails) die Registerkarte Steps (Schritte) aus.3. Wählen Sie für Concurrency (Nebenläufigkeit) die Option Change (Ändern) aus. Wählen Sie einen

neuen Wert für die Nebenläufigkeitsstufe von Schritten aus und speichern Sie ihn.

Hinzufügen von Schritten zu einem Cluster mit der AWS CLIDie folgenden Verfahren zeigen, wie Sie Schritte zu einem neu erstellten Cluster und zu einem aktivenCluster mit der AWS CLI hinzufügen. In beiden Beispielen wird der Unterbefehl --steps verwendet, umSchritte zum Cluster hinzuzufügen.

So fügen Sie Schritte während der Clustererstellung hinzu

• Geben Sie den folgenden Befehl ein, um einen Cluster zu erstellen und einen Apache Pig-Schritthinzuzufügen. Ersetzen myKey durch den Namen Ihres Amazon EC2-Schlüsselpaares und Ersetzenmybucket durch den Namen Ihres Amazon S3-Buckets.

• Linux, UNIX und macOS

aws emr create-cluster --name "Test cluster" --ami-version 2.4 --applications Name=Hive Name=Pig \--use-default-roles --ec2-attributes KeyName=myKey \--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=2,InstanceType=m5.xlarge \--steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://mybucket/scripts/pigscript.pig,-p,INPUT=s3://mybucket/inputdata/,-p,OUTPUT=s3://mybucket/outputdata/,$INPUT=s3://mybucket/inputdata/,$OUTPUT=s3://mybucket/outputdata/]

• Windows

aws emr create-cluster --name "Test cluster" --ami-version 2.4 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=2,InstanceType=m5.xlarge --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://mybucket/scripts/pigscript.pig,-p,INPUT=s3://mybucket/inputdata/,-p,OUTPUT=s3://mybucket/outputdata/,$INPUT=s3://mybucket/inputdata/,$OUTPUT=s3://mybucket/outputdata/]

Note

Die Liste der Argumente ändert sich je nach Art des Schritts.

Standardmäßig ist die Nebenläufigkeitsstufe für Schritte 1. Sie können die Nebenläufigkeitsstufe fürSchritte festlegen, indem Sie beim Erstellen eines Clusters den Parameter StepConcurrencyLevelverwenden.

Die Ausgabe ist eine Cluster-Kennung ähnlich der folgenden.

{ "ClusterId": "j-2AXXXXXXGAPLF"

439

Page 447: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Schritten unter

Verwendung von AWS CLI und Konsole

}

So fügen Sie einen Schritt einem aktiven Cluster hinzu

• Geben Sie den folgenden Befehl ein, um einen Schritt zu einem aktiven Cluster hinzuzufügen.Ersetzen j-2AXXXXXXGAPLF durch Ihre Cluster-ID ersetzen und mybucket durch Ihren Amazon S3-Bucket-Namen ersetzen.

aws emr add-steps --cluster-id j-2AXXXXXXGAPLF --steps Type=PIG,Name="Pig Program",Args=[-f,s3://mybucket/scripts/pigscript.pig,-p,INPUT=s3://mybucket/inputdata/,-p,OUTPUT=s3://mybucket/outputdata/,$INPUT=s3://mybucket/inputdata/,$OUTPUT=s3://mybucket/outputdata/]

Die Ausgabe ist eine Schrittkennung ähnlich der folgenden.

{ "StepIds": [ "s-Y9XXXXXXAPMD" ]}

So ändern Sie die StepConcurrencyLevel in einem ausgeführten Cluster

1. In einem aktiven Cluster können Sie die StepConcurrencyLevel mithilfe der ModifyCluster-APIändern. Geben Sie beispielsweise den folgenden Befehl ein, um StepConcurrenyLevel auf 10 zuerhöhen. Ersetzen j-2AXXXXXXGAPLF mit Ihrer Cluster-ID.

aws emr modify-cluster --cluster-id j-2AXXXXXXGAPLF --step-concurrency-level 10

2. Die Ausgabe sieht folgendermaßen oder ähnlich aus.

{"StepConcurrencyLevel": 10}

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Überlegungen zum parallelen Ausführen mehrerer Schritte• Wenn Sie eine Nebenläufigkeitsstufe für Schritte für den Cluster auswählen, müssen Sie überlegen,

ob der Master-Knoten-Instance-Typ die Speicheranforderungen von Benutzer-Workloads erfüllt. DerHauptschrittausführungsprozess wird für jeden Schritt auf dem Master-Knoten ausgeführt. Das paralleleAusführen mehrerer Schritte erfordert mehr Arbeitsspeicher und eine höhere CPU-Auslastung auf demMaster-Knoten als die Ausführung eines einzelnen Schrittes.

• Um eine komplexe Planung und Ressourcenverwaltung von gleichzeitigen Schritten zu erreichen,können Sie YARN-Planungsfunktionen wie FairScheduler oder CapacityScheduler verwenden.Sie können beispielsweise FairScheduler mit einem queueMaxAppsDefault-Satz verwenden, umzu verhindern, dass mehr als eine bestimmte Anzahl von Aufträgen gleichzeitig ausgeführt werden.

• Die Nebenläufigkeitsstufe für Schritte unterliegt den Konfigurationen von Ressourcenmanagern.Wenn beispielsweise YARN nur mit einer Parallelität von 5 konfiguriert ist, können Sie nur fünf YARN-Anwendungen parallel ausführen, auch wenn StepConcurrencyLevel auf 10 festgelegt ist. Weitere

440

Page 448: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideArbeiten mit Schritten unter

Verwendung von AWS CLI und Konsole

Informationen zum Konfigurieren von Ressourcenmanagern finden Sie unter Konfigurieren vonAnwendungen im Amazon EMR-Versionshinweise.

• Sie können EMR Auto Scaling verwenden, um basierend auf den YARN-Ressourcen vertikal zu skalierenund Ressourcenkonflikte zu vermeiden. Weitere Informationen finden Sie unter Verwenden von AutoScaling in EMR im Management Guide für Amazon EMR.

• Wenn Sie die Nebenläufigkeitsstufe für Schritte verringern, erlaubt EMR das Abschließen aller laufendenSchritte, bevor die Anzahl der Schritte reduziert wird. Wenn die Ressourcen ausgeschöpft sind, weilder Cluster zu viele gleichzeitige Schritte ausführt, empfehlen wir, alle laufenden Schritte manuellabzubrechen, um Ressourcen freizumachen.

Anzeigen von SchrittenDie Gesamtanzahl der Schrittdatensätze, die Sie anzeigen können (unabhängig vom Status) ist 1 000.Diese Gesamtzahl umfasst sowohl vom Benutzer übermittelte Schritte als auch Systemschritte. Dader Status der vom Benutzer übermittelten Schritte sich in COMPLETED oder FAILED ändert, könnenzusätzliche vom Benutzer übermittelte Schritte zum Cluster hinzugefügt werden, bis das Limit der 1 000Schritte erreicht ist. Nachdem einem Cluster 1 000 Schritte hinzugefügt wurden, führt die Übermittlungweiterer Schritte dazu, dass ältere, vom Benutzer übermittelte Schrittdatensätze gelöscht werden. DieseDatensätze werden nicht aus den Protokolldateien entfernt. Sie werden aber aus der Konsolenanzeigeentfernt. Sie werden nicht angezeigt, wenn Sie die AWS CLI oder API zum Abrufen von Cluster-Informationen verwenden. Systemschrittdatensätze werden niemals entfernt.

Welche Schrittinformationen Sie anzeigen können, hängt vom Mechanismus ab, der zum Abrufen derCluster-Informationen verwendet wurde. Die folgende Tabelle enthält die Schrittinformationen, die von denverfügbaren Optionen jeweils zurückgegeben werden.

Option DescribeJobFlow oder --describe --jobflow

ListSteps oder Listenschritte

SDK 256 Schritte 1 000 Schritte

Amazon EMR CLI 256 Schritte N/A

AWS CLI N/A 1.000 Schritte

API 256 Schritte 1 000 Schritte

Abbrechen von SchrittenSie können ausstehende und ausgeführte Schritte mithilfe der AWS Management Console, der AWS CLIoder der Amazon EMR-API abbrechen.

So brechen Sie Schritte über die AWS Management Console ab

1. Klicken Sie in der Amazon EMR-Konsole auf der Seite Cluster List (Cluster-Liste) auf den Link für denCluster.

2. Erweitern Sie auf der Seite Cluster Details (Cluster-Details) den Abschnitt Steps (Schritte).3. Wählen Sie für jeden Schritt, den Sie abbrechen möchten, den Schritt aus der Liste Steps

(Schritte)aus. Wählen Sie dann Cancel step (Schritt abbrechen) aus.4. Behalten Sie im Dialogfeld Cancel step (Schritt abbrechen) die Standardoption Cancel the step and

wait for it to exit (Schritt abbrechen und warten, bis er beendet wird). Wenn Sie den Schritt sofortbeenden möchten, ohne darauf zu warten, dass Prozesse abgeschlossen sind, wählen Sie Cancel thestep and force it to exit (Schritt abbrechen und Beenden erzwingen) aus.

441

Page 449: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideInteraktives Übermitteln von Hadoop-Aufträgen

5. Wählen Sie Cancel step (Schritt abbrechen) aus.

So brechen Sie Schritte über die AWS CLI ab

• Verwenden Sie den Befehl aws emr cancel-steps unter Angabe des Clusters und derabzubrechenden Schritte. Das folgende Beispiel zeigt einen AWS CLI-Befehl für den Abbruch von zweiSchritten.

aws emr cancel-steps --cluster-id j-2QUAXXXXXXXXX --step-ids s-3M8DXXXXXXXXX s-3M8DXXXXXXXXX --step-cancellation-option SEND_INTERRUPT

Mit Amazon EMR Version 5.28.0 können Sie beim Abbrechen von Schritten eine der beiden folgendenAbbruchoptionen für StepCancellationOption-Parameter auswählen.

• SEND_INTERRUPT– Dies ist die Standardoption. Wenn eine Schrittabbruchanforderung eingeht, sendetEMR ein SIGTERM-Signal an den untergeordneten Prozess des Schritts, bis er endet.

• TERMINATE_PROCESS – Wenn diese Option ausgewählt ist, sendet EMR ein SIGKILL-Signal an denuntergeordneten Prozess den Schritts.

Interaktives Übermitteln von Hadoop-AufträgenZusätzlich zum Hinzufügen von Schritten zu einem Cluster können Sie über einen SSH-Client oder dieAWS CLI eine Verbindung mit dem Master-Knoten herstellen und interaktiv Hadoop-Aufträge übermitteln.Sie können z. B. mit PuTTY eine SSH-Verbindung mit dem Master-Knoten herstellen und interaktive Hive-Abfragen übermitteln. Die Abfragen werden in einer oder mehreren Hadoop-Aufgaben kompiliert.

Sie können Hadoop-Aufgaben interaktiv übermitteln, indem Sie eine SSH-Verbindung zum Master-Knotenherstellen. Stellen Sie die SSH-Verbindung über einen SSH-Client her, z. B. PuTTY oder OpenSSH, oderverwenden Sie den SSH-Unterbefehl in der AWS CLI. Sie können Aufträge interaktiv an den Master-Knoten übermitteln, auch dann, wenn auf dem Cluster 256 aktive Schritte ausgeführt werden. BeachtenSie jedoch, dass mit den interaktiv übermittelten Aufgaben verknüpfte Protokolldatensätze in den AbschnittStep created jobs des Controllerprotokolls des aktuell ausgeführten Schritts aufgenommen werden. WeitereInformationen zu Schrittprotokollen finden Sie unter View Log Files (p. 349).

Die folgenden Beispiele zeigen die interaktive Übermittlung von Hadoop- und Hive-Aufträgen an denMaster-Knoten. Das Verfahren für die Übermittlung von Aufgaben bei anderen Programmierumgebungen(z. B. Pig) ist diesen Beispielen sehr ähnlich.

So übermitteln Sie Hadoop-Aufträge interaktiv mithilfe der AWS CLI

• Sie können Hadoop-Aufgaben interaktiv mit der AWS CLI übermitteln, indem Sie im AWS CLI-Befehl(unter Verwendung des Unterbefehls ssh) eine SSH-Verbindung herstellen. Um eine JAR-Datei vonIhrem lokalen Windows-Computer zum Dateisystem des Master-Knotens zu kopieren, geben Sie denfolgenden Befehl ein. Ersetzen j-2A6HXXXXXXL7J durch Ihre Cluster-ID ersetzen mykey.ppk durchden Namen Ihrer Schlüsselpaardatei, und ersetzen myjar.jar durch den Namen Ihrer JAR-Datei.

aws emr put --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --src "C:\Users\username\myjar.jar"

Um eine SSH-Verbindung herzustellen und den Hadoop-Auftrag myjar.jar zu übermitteln, gebenSie den folgenden Befehl ein.

aws emr ssh --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --command "hadoop jar myjar.jar"

442

Page 450: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideHinzufügen von mehr als 256 Schritten zu einem Cluster

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

So übermitteln Sie Hive-Aufträge interaktiv mithilfe der AWS CLI

Zusätzlich zur Übermittlung von Aufgaben an den Master-Knoten über JAR-Dateien können Sie Aufträgeauch durch die Interaktion mit einer der Hadoop-Programmierumgebungen senden, die auf dem Master-Knoten ausgeführt werden. Sie können beispielsweise Hive-Abfragen oder Pig-Transformationen interaktivan der Befehlszeile übermitteln oder Skripts zur Verarbeitung an den Cluster senden. Ihre Befehle oderSkripts werden dann in eine oder mehrere Hadoop-Aufgaben kompiliert.

Das folgende Verfahren veranschaulicht die Ausführung eines Hive-Skripts mit der AWS CLI.

1. Wenn Hive nicht auf dem Cluster installiert ist, geben Sie den folgenden Befehl ein, um Hive zuinstallieren. Ersetzen j-2A6HXXXXXXL7J mit Ihrer Cluster-ID.

aws emr install-applications --cluster-id j-2A6HXXXXXXL7J --apps Name=Hive

2. Erstellen Sie eine Hive-Skriptdatei mit den Abfragen oder Befehlen, die ausgeführt werden sollen. Imfolgenden Beispielskript namens my-hive.q werden die zwei Tabellen aTable und anotherTableerstellt. Der Inhalt von aTable wird nach anotherTable kopiert und ersetzt alle Daten.

---- sample Hive script file: my-hive.q ----create table aTable (aColumn string) ;create table anotherTable like aTable;insert overwrite table anotherTable select * from aTable

3. Geben Sie die folgenden Befehle ein, um das Skript von der Befehlszeile mit dem Unterbefehl sshauszuführen.

Um my-hive.q von einem Windows-Computer zu Ihrem Cluster zu kopieren, geben Sie denfolgenden Befehl ein. Ersetzen j-2A6HXXXXXXL7J durch Ihre Cluster-ID ersetzen und mykey.ppkdurch den Namen Ihrer Schlüsselpaardatei.

aws emr put --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --src "C:\Users\username\my-hive.q"

Um eine SSH-Verbindung herzustellen und das Hive-Skript my-hive.q zu übermitteln, geben Sie denfolgenden Befehl ein.

aws emr ssh --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --command "hive -f my-hive.q"

Weitere Informationen zur Verwendung von Amazon EMR-Befehlen in der AWS CLI finden Sie unterhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Hinzufügen von mehr als 256 Schritten zu einemClusterMit AMI 3.1.1 (Hadoop 2.x) oder höher und AMI 2.4.8 (Hadoop 1.x) oder höher können Sie eineunbegrenzte Anzahl von Schritten über die Lebensdauer eines langlebigen Clusters übermitteln. Allerdingskönnen nur 256 Schritte zu einem bestimmten Zeitpunkt den Status PENDING oder ACTIVE haben.Bei früheren AMI-Versionen war die Gesamtzahl der Schritte, die von einem Cluster verarbeitet werdenkönnen, auf 256 begrenzt (einschließlich Systemschritte wie Hive installieren und Pig installieren). WeitereInformationen finden Sie im Übermitteln von Aufträgen an einen Cluster (p. 437).

443

Page 451: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAutomate Recurring Clusters with AWS Data Pipeline

Sie können verschiedene Methoden anwenden, um das Limit von 256 Schritten in AMI-Versionen vor 3.1.1und 2.4.8 zu überwinden:

1. Lassen Sie jeden Schritt mehrere Aufträge an Hadoop übermitteln. Dies erlaubt Ihnen zwar keineunbegrenzten Schritte in den AMI-Versionen vor 3.1.1 und 2.4.8, es ist aber die einfachste Lösung, wennSie eine feste Anzahl von Schritten über 256 benötigen.

2. Schreiben Sie ein Workflow-Programm, das in einem Schritt auf einem langlebigen Cluster ausgeführtwird und Aufträge an Hadoop sendet. Das Workflow-Programm kann eine der folgenden Aktionenausführen:• Abhören einer Amazon SQS-Warteschlange, um Informationen über neue auszuführende Schritte zu

erhalten• Regelmäßiges Überprüfen eines Amazon S3-Buckets auf Dateien, die Informationen zu den neuen

auszuführenden Schritten enthalten3. Schreiben Sie ein Workflow-Programm, das auf einer Amazon EC2-Instance außerhalb von Amazon

EMR ausgeführt wird und Aufgaben über SSH an Ihre langlebigen Cluster übermittelt.4. Stellen Sie eine Verbindung mit Ihrem langlebigen Cluster via SSH her und übermitteln Sie Hadoop-

Aufträge mit der Hadoop-API. Weitere Informationen finden Sie unter http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/JobClient.html.

5. Stellen Sie eine Verbindung mit dem Master-Knoten her und senden Sie Aufgaben an den Cluster. Siekönnen eine Verbindung über einen SSH-Client herstellen, z. B. PuTTY oder OpenSSH, und manuellAufträge an den Cluster senden, oder Sie können den Unterbefehl ssh in der AWS CLI verwenden,um sowohl eine Verbindung herzustellen als auch Aufträge zu übermitteln. Weitere Informationen zumHerstellen einer SSH-Verbindung mit dem Master-Knoten finden Sie unter Verbinden mit dem Master-Knoten über SSH (p. 385). Weitere Informationen zum interaktiven Übermitteln von Hadoop-Aufträgenfinden Sie unter Interaktives Übermitteln von Hadoop-Aufträgen (p. 442).

Automate Recurring Clusters with AWS DataPipeline

AWS Data Pipeline ist ein Service zur Automatisierung der Verlagerung und Transformation vonDaten. Sie können ihn verwenden, um Eingabedaten in Amazon S3 zu verlagern und das Starten vonClustern zu planen, die diese Daten verarbeiten. Betrachten wir zum Beispiel den Fall, bei dem einWebserver Datenverkehrsprotokolle aufzeichnet. Wenn Sie einen Cluster wöchentlich zum Analysieren derVerkehrsdaten ausführen möchten, können Sie diese Cluster mit AWS Data Pipeline planen. AWS DataPipeline ist ein datengesteuerter Workflow, d. h., Aufgaben können von einer anderen Aufgabe abhängigsein (Beispiel: Der Start eines Clusters ist von einem Verschieben der Eingabedaten nach Amazon S3abhängig). Der Workflow verfügt außerdem über eine robuste Wiederholungsfunktionalität.

Weitere Informationen zu AWS Data Pipeline finden Sie im AWS Data Pipeline-Entwicklerhandbuch,insbesondere in den Tutorials zu Amazon EMR:

• Tutorial: Launch an Amazon EMR Job Flow• Getting Started: Process Web Logs with AWS Data Pipeline, Amazon EMR, and Hive• Tutorial: Amazon DynamoDB Import and Export Using AWS Data Pipeline

444

Page 452: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideWhat Tools are Available for Troubleshooting?

Troubleshoot a ClusterEin von Amazon EMR gehosteter Cluster wird in einem komplexen Ökosystem aus mehreren Open-Source-Softwaretypen, benutzerdefiniertem Anwendungscode und Amazon Web Services ausgeführt. EinProblem in einer dieser Komponenten kann dazu führen, dass der Cluster fehlerhaft ist oder die Ausführunglänger dauert als erwartet. Die folgenden Themen sollen Ihnen helfen, herauszufinden, welche Problememit Ihrem Cluster aufgetreten sind, und Vorschläge zur Behebung der Problem liefern.

Themen• What Tools are Available for Troubleshooting? (p. 445)• Viewing and Restarting Amazon EMR and Application Processes (Daemons) (p. 447)• Troubleshoot a Failed Cluster (p. 448)• Fehlerbehebung für einen langsamen Cluster (p. 452)• Common Errors in Amazon EMR (p. 459)• Beheben von Problemen mit einem Lake Formation Sternhaufen (p. 476)

Wenn Sie eine neue Hadoop-Anwendung entwickeln, empfehlen wir Ihnen, die Fehlersuche zu aktivierenund eine kleine, aber repräsentative Teilmenge Ihrer Daten zu bearbeiten, um die Anwendung zu testen. Eskann auch sinnvoll sein, die Anwendung Schritt-für-Schritt auszuführen, um jeden Schritt einzeln zu testen.Weitere Informationen finden Sie unter Configure Cluster Logging and Debugging (p. 174) und Step 5: Testthe Cluster Step by Step (p. 451).

What Tools are Available for Troubleshooting?Es gibt mehrere Tools, die Sie verwenden können, um die Informationen zu Ihrem Cluster zu sammeln, umzu einen Fehler zu ermitteln. Einige Tools müssen initialisiert werden wenn Sie den Cluster starten, anderestehen für jeden Cluster zur Verfügung.

Themen• Tools to Display Cluster Details (p. 445)• Tools to View Log Files (p. 446)• Tools to Monitor Cluster Performance (p. 446)

Tools to Display Cluster DetailsSie können die AWS Management Console, die AWS CLI oder die EMR-API verwenden, um detaillierteInformationen zu einem EMR-Cluster und zur Auftragsausführung abzurufen. Weitere Informationen zurVerwendung der AWS Management Console und der AWS CLI finden Sie unter View Cluster Status andDetails (p. 335).

Amazon EMR Console Details PaneIn der Liste Clusters (Cluster) in der Amazon EMR-Konsole werden allgemeine Informationen über denStatus der einzelnen Cluster in Ihrem Konto und Ihrer Region angezeigt. Die Liste zeigt alle Cluster an, dieSie in den vergangenen zwei Monaten gestartet haben, unabhängig davon, ob sie aktiv oder beendet sind.

445

Page 453: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideTools to View Log Files

Sie können in der Liste Clusters (Cluster) den Name (Namen) eines Clusters auswählen, um Details zudiesem anzuzeigen. Diese Informationen sind in verschiedene Kategorien unterteilt, um das Navigieren zuvereinfachen.

Die Option Application user interfaces (Anwendungsbenutzeroberflächen) auf der Cluster-Detailseiteist besonders bei der Problembehandlung hilfreich. Sie zeigt den Status von YARN-Anwendungen. Beieinigen Anwendungen wie z. B. Spark-Anwendungen können Sie verschiedene Metriken und Facetswie Aufträge, Phasen und Ausführende anzeigen. Weitere Informationen finden Sie im Anzeigen desAnwendungsverlaufs (p. 343). Diese Funktion ist nur in Amazon EMR ab Version 5.8.0 verfügbar.

Amazon EMR Command Line InterfaceSie können die Details eines Cluster in der CLI mit dem Argument --describe abrufen.

Amazon EMR APISie können die Details eines Cluster in der API mit der Aktion DescribeJobFlows abrufen.

Tools to View Log FilesAmazon EMR und Hadoop generieren beide Protokolldateien, während der Cluster ausgeführt wird. Siekönnen auf diese Protokolldateien mit mehreren Tools zugreifen, abhängig von der Konfiguration, dieSie beim Starten des Clusters angegeben haben. Weitere Informationen finden Sie im Configure ClusterLogging and Debugging (p. 174).

Log Files on the Master NodeJeder Cluster veröffentlicht Protokolldateien im Verzeichnis /mnt/var/log/ auf dem Master-Knoten. DieseProtokolldateien sind nur verfügbar, während der Cluster ausgeführt wird.

Log Files Archived to Amazon S3Wenn Sie den Cluster starten und einen Amazon S3-Pfad angeben, kopiert der Cluster die in /mnt/var/log/gespeicherten Protokolldateien auf dem Master-Knoten in 5-Minuten-Intervallen in Amazon S3. So wirdsichergestellt, dass Sie Zugriff auf die Protokolldateien auch nach Beendigung des Clusters haben. Da dieDateien in 5-Minuten-Intervallen archiviert werden, stehen die letzten Minuten eines unvermittelt beendetenClusters ggf. nicht zur Verfügung.

Tools to Monitor Cluster PerformanceAmazon EMR bietet mehrere Tools zur Überwachung der Leistung Ihres Clusters.

Hadoop Web InterfacesJeder Cluster veröffentlicht eine Reihe von Webschnittstellen auf dem Master-Knoten, die Informationenüber den Cluster enthalten. Sie können auf diese Webseiten über einen SSH-Tunnel zugreifen, um sie aufdem Master-Knoten zu verbinden. Weitere Informationen finden Sie im Anzeigen von auf Amazon EMR-Clustern gehosteten Webschnittstellen (p. 390).

CloudWatch MetricsJeder Cluster meldet Metriken an CloudWatch. CloudWatch ist ein Webservice zum Nachverfolgen vonMetriken und Festlegen von Alarmen für diese Metriken. Weitere Informationen finden Sie im Überwachender Metriken mit CloudWatch (p. 364).

446

Page 454: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideViewing and Restarting Amazon EMRand Application Processes (Daemons)

Viewing and Restarting Amazon EMR andApplication Processes (Daemons)

Wenn Sie in einem Cluster Fehler beheben, möchten Sie möglicherweise laufende Prozesse auflisten.In einigen Fällen möchten Sie möglicherweise auch Prozesse stoppen oder neu starten, wenn Sie zumBeispiel eine Konfiguration ändern oder ein Problem mit einem bestimmten Prozess feststellen, nachdemSie Protokolldateien und Fehlermeldungen analysiert haben.

Es gibt zwei Arten von Prozessen, die auf einem Cluster ausgeführt werden können: Amazon EMR-Prozesse (z. B. Instance-Controller und Log Pusher) und Prozesse im Zusammenhang mit den auf demCluster installierten Anwendungen (z. B. hadoop-hdfs-namenode und hadoop-yarn-resourcemanager).

Um mit Prozessen direkt auf einem Cluster zu arbeiten, stellen Sie eine Verbindung mit dem Master-Knotenher. Weitere Informationen finden Sie im Verbinden mit dem Cluster (p. 383).

Viewing Running ProcessesWenn Sie Amazon EMR Version 4.x oder höher verwenden, sind Anwendungsversionen mit einem Systembasierend auf Apache Bigtop verpackt, sodass diese Anwendungsprozesse über.conf-Skripts unter demupstart init-System konfiguriert sind. Andererseits werden Amazon EMR-Prozesse mit SysV (init.d-Skripts)konfiguriert, das rückwärts kompatibel mit upstart ist.

To view a list of running Amazon EMR processes

• Geben Sie den folgenden Befehl ein (ohne $, das die Linux Eingabeaufforderung darstellt):

$ ls /etc/init.d/

Dieser Befehl gibt eine Liste der ausgeführten Amazon EMR-Prozesse zurück, die in etwa demfolgenden Beispiel entspricht:

acpid cloud-init-local instance-controller ntpd

To view a list of processes associated with application releases

• Geben Sie den folgenden Befehl ein:

$ ls /etc/init/

Dieser Befehl gibt eine Liste der ausgeführten Anwendungsprozesse aus, die in etwa dem folgendenBeispiel entspricht:

control-alt-delete.conf hadoop-yarn-resourcemanager.conf hive-metastore.conf

Restarting ProcessesNachdem Sie bestimmen, welche Prozesse ausgeführt werden, können Sie diese beenden und dann neustarten. Wie Sie beginnen und einen Dienst anhalten, hängt davon ab, ob es sich um eine Amazon EMRService oder einen Dienst, der mit einer Anwendung verbunden ist.

447

Page 455: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideTroubleshoot a Failed Cluster

To restart a process in Verbindung mit einer Anwendungsfreigabe

1. Geben Sie den folgenden Befehl zum Stoppen des Prozesses ein, ersetzen Sie dabei processnamemit dem Prozessnamen, der vom Befehl ls im nachstehenden Verfahren zurückgegeben wird:

$ sudo /etc/init.d/processname stop

Beispiel: sudo /etc/init.d/hadoop-hdfs-namenode stop2. Geben Sie den folgenden Befehl ein, um den Prozess neu zu starten:

$ sudo /etc/init.d/processname start

Beispiel, sudo /etc/init.d/hadoop-hdfs-namenode start.

To restart an Amazon EMR process

1. Geben Sie den folgenden Befehl zum Stoppen des Prozesses ein, ersetzen Sie dabei processnamemit dem Prozessnamen, der vom Befehl ls im nachstehenden Verfahren zurückgegeben wird:

$ sudo /sbin/stop processname

Beispiel, sudo /sbin/stop instance-controller.2. Geben Sie den folgenden Befehl ein, um den Prozess neu zu starten:

$ sudo sbin/start processname

Beispiel, sudo sbin/start instance-controller.

Note

Die sbin/start, stop und restart Befehle sind Symlinks zu /sbin/intictl. WeitereInformationen über initctl, siehe die Initctl-Seite durch Eingabe man initctl an derEingabeaufforderung.

Troubleshoot a Failed ClusterIn diesem Abschnitt werden Sie durch den Vorgang zur Fehlerbehebung eines Cluster geführt, derausgefallen ist. Das bedeutet, dass der Cluster mit einem Fehlercode beendet wurde. Wenn derCluster noch ausgeführt wird, jedoch lange braucht, um Ergebnisse zurückzugeben, finden Sie weitereInformationen unter Fehlerbehebung für einen langsamen Cluster (p. 452).

Themen• Step 1: Gather Data About the Issue (p. 449)• Step 2: Check the Environment (p. 449)• Step 3: Look at the Last State Change (p. 450)• Step 4: Examine the Log Files (p. 450)• Step 5: Test the Cluster Step by Step (p. 451)

448

Page 456: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStep 1: Gather Data About the Issue

Step 1: Gather Data About the IssueDer erste Schritt bei der Fehlerbehebung in einem Cluster ist das Sammeln von Informationen über denaufgetretenen Fehler, den aktuellen Status und die Konfiguration des Clusters. Diese Informationen werdenin den folgenden Schritten genutzt, um Fehlerursachen zu bestätigen oder auszuschließen.

Define the ProblemEine klare Bestimmung des Problems ist der erste Schritt. Einige Fragen, die Sie sich stellen sollten:

• Welches Ergebnis hatte ich erwartet? Was ist stattdessen passiert?• Wann trat dieses Problem zum ersten Mal auf? Wie häufig ist das Problem seitdem aufgetreten?• Hat sich etwas an der Konfiguration oder der Ausführung meines Clusters geändert?

Cluster DetailsDie folgenden Angaben zum Cluster sind hilfreich, um die Fehlerursache zu bestimmen. WeitereInformationen zum Sammeln dieser Information finden Sie unter View Cluster Status and Details (p. 335).

• Cluster-Kennung (Wird auch als Auftragsverlaufskennung bezeichnet.)• Region und Availability Zone, in denen der Cluster gestartet wurde.• Status des Clusters sowie Details zur letzten Statusänderung.• Typ und Anzahl der EC2-Instances, die für Master-, Kern- und Aufgabenknoten festgelegt sind.

Step 2: Check the EnvironmentAmazon EMR wird als Teil eines Ökosystems von Web-Services und Open-Source-Software betrieben.Faktoren, die sich auf diese Abhängigkeiten auswirken, können die Leistung von Amazon EMRbeeinträchtigen.

Themen• Check for Service Outages (p. 449)• Check Usage Limits (p. 449)• Check the Release Version (p. 450)• Check the Amazon VPC Subnet Configuration (p. 450)

Check for Service OutagesAmazon EMR verwendet intern mehrere Amazon Web Services. Es führt virtuelle Server auf Amazon EC2aus, speichert Daten und Skripte auf Amazon S3, indexiert Log-Dateien in Amazon SimpleDB und meldetMetriken an CloudWatch. Es geschieht nur selten, dass diese Dienste gestört werden. Doch wenn es zuFehlern kommt, können Probleme in Amazon EMR auftreten.

Überprüfen Sie die Übersicht zum Servicestatus, bevor Sie fortfahren. Überprüfen Sie die Region, von deraus Sie Ihren Cluster gestartet haben, um sicherzustellen, dass keine Störungsmeldungen für einen derDienste vorliegen.

Check Usage LimitsWenn Sie einen großen Cluster oder mehrere Cluster gleichzeitig starten möchten oder wenn Sie einIAM-Benutzer sind, der sich ein AWS-Konto mit anderen Benutzern teilt, könnte der Fehler im Clusteraufgetreten sein, weil die AWS-Servicegrenze überschritten wurde.

449

Page 457: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStep 3: Look at the Last State Change

Amazon EC2 beschränkt die Anzahl der Virtual Server Instances, die in einer AWS-Region ausgeführtwerden können, auf 20 verfügbare oder reservierte Instances. Wenn Sie versuchen, einen Cluster zustarten, der über mehr als 20 Knoten verfügt oder mit dem die Gesamtanzahl der auf Ihrem AWS-Kontoaktiven EC2-Instances 20 übersteigt, können nicht alle benötigen EC2-Instances gestartet werden und derVersuch schlägt fehl. In diesem Fall gibt Amazon EMR den Fehler EC2 QUOTA EXCEEDED zurück. Siekönnen beantragen, dass AWS die Anzahl der auf Ihrem Konto verfügbaren EC2-Instances erhöht, indemSie einen Antrag zum Erhöhen des Amazon EC2-Instance-Limits übermitteln.

Ein weiterer Grund für die Überschreitung der Nutzungsgrenze ist die Verzögerung zwischen demBeenden eines Clusters und der Freigabe aller entsprechenden Ressourcen. Je nach Konfiguration kannes zwischen 5 und 20 Minuten dauern, bis ein Cluster vollständig beendet ist und die entsprechendenRessourcen wieder freigegeben sind. Wenn Sie beim Versuch, einen Cluster zu starten, die FehlermeldungEC2 QUOTA EXCEEDED erhalten, könnte es daran liegen, dass Ressourcen von einem kürzlich beendetenCluster noch nicht zur Verfügung stehen. In diesem Fall können Sie entweder eine Erhöhung des AmazonEC2-Kontingents beantragen oder zwanzig Minuten warten und den Cluster anschließend erneut starten.

Amazon S3 begrenzt die Anzahl der Buckets, die auf einem Konto erstellt werden können, auf 100. WennIhr Cluster einen neuen Bucket erstellt und durch diesen die Grenze überschritten wird, wird die Erstellungdes Bucket fehlschlagen, was dazu führen kann, dass im Cluster ein Fehler auftritt.

Check the Release VersionVergleichen Sie die Versionsbezeichnung, die Sie zum Start des Clusters verwendet haben, mit deraktuellen Amazon EMR-Version. Jede Version von Amazon EMR beinhaltet Verbesserungen, wie z. B.neue Anwendungen, Funktionen, Patches und Fehlerbehebungen. Das Problem, das Ihren Cluster betrifft,wurde in der aktuellen Version möglicherweise bereits behoben. Führen Sie Ihren Cluster wenn möglich mitder aktuellen Version erneut aus.

Check the Amazon VPC Subnet ConfigurationWenn Ihr Cluster in einem Amazon VPC-Subnetz gestartet wurde, muss es wie unter Konfigurieren desNetzwerks (p. 144) beschrieben konfiguriert werden. Überprüfen Sie außerdem, dass das Subnetz, in demSie den Cluster starten, über genügend freie Elastic IP-Adressen für jeden Knoten im Cluster verfügt.

Step 3: Look at the Last State ChangeDie letzte Statusänderung gibt Aufschluss darüber, welches Ereignis bei der letzten Statusänderung desClusters aufgetreten ist. Dies hat oft Informationen, die Ihnen sagen können, was schiefgelaufen ist, daein Cluster den Status FAILED. Wenn Sie beispielsweise einen Streaming-Cluster starten und einenAusgabestandort angeben, der bereits in vorhanden ist Amazon S3, der Cluster wird mit einer letztenStatusänderung des „Streaming-Ausgabeverzeichnisses“ fehlgeschlagen.

Sie können den Wert der letzten Statusänderung über die Konsole ermitteln, indem Sie den Detailbereichfür den Cluster über die Befehlszeilenschnittstelle (CLI) mit dem Argument list-steps oder describe-cluster bzw. über die API mit den Aktionen DescribeCluster und ListSteps anzeigen. WeitereInformationen finden Sie im View Cluster Status and Details (p. 335).

Step 4: Examine the Log FilesDer nächste Schritt ist eine Überprüfung der Log-Dateien, um einen Fehlercode oder andere Hinweise aufdas in Ihrem Cluster aufgetretene Problem zu finden. Informationen zu den verfügbaren Log-Dateien undwie Sie diese abrufen können, finden Sie unter View Log Files (p. 349).

Möglicherweise sind investigative Schritte nötig, um herauszufinden, was passiert ist. Hadoop führt dieAufgaben auf verschiedenen Knoten im Cluster aus. Amazon EMR kann spekulative Aufgabenversuchestarten, durch die andere, nicht abgeschlossene Aufgaben beendet werden. Dies führt zu erheblicherAktivität, die im Controller aufgezeichnet wird. Es handelt sich hierbei um die Log-Dateien stderr und

450

Page 458: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStep 5: Test the Cluster Step by Step

syslog. Außerdem können mehrere Aufgabenversuche gleichzeitig ausgeführt werden, wohingegen dieLog-Datei die Ergebnisse nur linear darstellen kann.

Überprüfen Sie zunächst die Log-Dateien der Bootstrap-Aktionen auf Fehler oder unerwarteteKonfigurationen während des Starts des Clusters. Rufen Sie als Nächstes die Schrittprotokolleauf und identifizieren Sie die Hadoop-Aufträge, die als Teil eines fehlerhaften Schrittes gestartetwurden. Überprüfen Sie die Log-Dateien der Hadoop-Aufträge auf Fehlversuche. Die Log-Datei derAufgabenversuche beinhaltet Details zu den Ursachen der fehlgeschlagenen Versuche.

In den folgenden Abschnitten wird erläutert, wie Sie die verschiedenen Log-Dateien nutzen können, umFehler in Ihrem Cluster zu identifizieren.

Check the Bootstrap Action LogsBootstrap-Aktionen führen während dem Start Skripte auf dem Cluster aus. Sie werden für gewöhnlichgenutzt, um zusätzliche Software auf dem Cluster zu installieren oder um die Standardwerte derKonfigurationseinstellungen anzupassen. Eine Überprüfung dieser Log-Dateien kann Hinweise aufFehler liefern, die während des Setup des Clusters aufgetreten sind, sowie auf Änderungen in denKonfigurationseinstellungen, die die Leistung beeinträchtigen können.

Check the Step LogsEs gibt vier Arten von Schrittprotokollen.

• controller: enthält Dateien, die von Amazon EMR (Amazon EMR) aufgrund von Fehlern bei derAusführung von Schritten generiert wurden. Wenn Ihr Schritt beim Laden fehlschlägt, finden Sie denStacktrace in dieser Log-Datei. Fehler, die beim Laden oder beim Zugriff auf Ihre Anwendung auftreten,sowie Fehler aufgrund von fehlenden Mapper-Dateien werden oft hier aufgeführt.

• stderr: enthält Fehlermeldungen, die bei der Verarbeitung des Schrittes aufgetreten sind. Ladefehlerin Bezug auf Anwendungen werden oft hier aufgeführt. Diese Log-Datei beinhaltet manchmal einenStacktrace.

• stdout: enthält die Status, der von ausführbaren Mapper- und Reducer-Dateien generiert werden.Ladefehler in Bezug auf Anwendungen werden oft hier aufgeführt. Diese Log-Datei beinhaltet manchmalFehlermeldungen in Bezug auf Anwendungen.

• syslog: enthält Protokolle aus nicht von Amazon stammender Software, z. B. Apache und Hadoop.Streaming-Fehler werden oft hier aufgeführt.

Überprüfen Sie stderr auf offensichtliche Fehler. Wenn in stderr eine kurze Fehlerliste angezeigt wird,wurde der Schritt nach dem Auftreten eines Fehlers schnell abgebrochen. Dies geschieht meist aufgrundeines Fehlers in den Mapper- und Reducer-Anwendungen, die im Cluster ausgeführt werden.

Überprüfen Sie die letzten Zeilen im Controller und in syslog auf Fehler- und Störungsmeldungen.Beachten Sie alle Meldungen zu fehlgeschlagenen Aufgaben, insbesondere wenn sie mit „Job Failed”gekennzeichnet sind.

Check the Task Attempt LogsWenn die vorhergehende Analyse der Schrittprotokolle eine oder mehrere fehlgeschlageneAufgaben ergeben hat, überprüfen Sie die Log-Dateien der entsprechenden Aufgaben, um nähereFehlerinformationen zu erhalten.

Step 5: Test the Cluster Step by StepEine nützliche Strategie zum Nachverfolgen der Ursache für einen Fehler besteht darin, den Clusterneu zu starten und die Schritte einzeln auszuführen. So können Sie die Ergebnisse für jeden Schritt

451

Page 459: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideFehlerbehebung für einen langsamen Cluster

überprüfen, bevor Sie die Verarbeitung des nächsten Schritts starten, und erhalten die Möglichkeit, einenfehlgeschlagenen Schritt zu korrigieren und erneut auszuführen. Dies hat den Vorteil, dass Sie IhreEingabedaten nur einmal laden müssen.

So testen Sie den Cluster Schritt für Schritt

1. Starten Sie einen neuen Cluster mit aktiviertem Keepalive und Beendigungsschutz. Keepalive sorgtdafür, dass der Cluster weiterhin ausgeführt wird, nachdem er alle ausstehenden Schritte verarbeitethat. Der Beendigungsschutz verhindert, dass ein Cluster im Falle eines Fehlers heruntergefahren wird.Weitere Informationen finden Sie unter Configuring a Cluster to Auto-Terminate or Continue (p. 117)und Using Termination Protection (p. 118).

2. Senden Sie einen Schritt an den Cluster. Weitere Informationen finden Sie im Übermitteln vonAufträgen an einen Cluster (p. 437).

3. Wenn die Verarbeitung des Schritts abgeschlossen ist, prüfen Sie die Schrittprotokolldateien aufFehler. Weitere Informationen finden Sie im Step 4: Examine the Log Files (p. 450). Die schnellsteMöglichkeit zum Auffinden dieser Protokolldateien besteht darin, eine Verbindung mit dem Master-Knoten herzustellen und die Protokolldateien hier anzuzeigen. Die Schrittprotokolldateien werden erstangezeigt, wenn der Schritt einige Zeit ausgeführt wird, beendet wird oder ein Fehler auftritt.

4. Wenn der Schritt erfolgreich ohne Fehler abgeschlossen wurde, führen Sie den nächsten Schritt aus.Wenn Fehler vorliegen, ermitteln Sie den Fehler in den Protokolldateien. Wenn in Ihrem Code einFehler aufgetreten ist, korrigieren Sie ihn und führen Sie den Schritt erneut aus. Fahren Sie fort, bisalle Schritte ohne Fehler ausgeführt werden.

5. Wenn Sie das Debuggen des Clusters abgeschlossen haben, müssen Sie den Cluster ggf. manuellbeenden. Dies ist erforderlich, da der Cluster mit aktiviertem Beendigungsschutz gestartet wurde.Weitere Informationen finden Sie im Using Termination Protection (p. 118).

Fehlerbehebung für einen langsamen ClusterIn diesem Abschnitt wird die Fehlerbehebung eines Clusters beschrieben, der noch ausgeführt wird, aberviel Zeit benötigt, um Ergebnisse zurückzugeben. Weitere Informationen zu Verfahren, die Sie anwendenkönnen, wenn der Cluster mit einem Fehlercode beendet wurde, finden Sie unter Troubleshoot a FailedCluster (p. 448)

Amazon EMRMit können Sie die Anzahl und Art der Instances im Cluster festlegen. Diese Spezifikationensind die beste Möglichkeit, die Geschwindigkeit, mit der Ihre Daten verarbeitet werden, zu beeinflussen.Sie können eine erneute Ausführung des Clusters in Betracht ziehen. Hierbei legen Sie EC2-Instances mitmehr Ressourcen oder eine größere Anzahl der Instances im Cluster fest. Weitere Informationen finden Sieim Konfigurieren von Cluster-Hardware und Netzwerken (p. 136).

In den folgenden Themen wird erklärt, wie Sie alternative Ursachen für einen langsamen Clusteridentifizieren.

Themen• Schritt 1 Daten über das Problem sammeln (p. 453)• Schritt 2 Umgebung prüfen (p. 453)• Schritt 3 Protokolldateien überprüfen (p. 454)• Schritt 4. Cluster- und Instanz-Gesundheit prüfen (p. 455)• Schritt 5. Auf suspendierte Gruppen prüfen (p. 456)• Schritt 6. Konfigurationseinstellungen überprüfen (p. 457)• Schritt 7. Eingangsdaten untersuchen (p. 458)

452

Page 460: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 1 Daten über das Problem sammeln

Schritt 1 Daten über das Problem sammelnDer erste Schritt bei der Fehlerbehebung in einem Cluster ist das Sammeln von Informationen über denaufgetretenen Fehler, den aktuellen Status und die Konfiguration des Clusters. Diese Informationen werdenin den folgenden Schritten genutzt, um Fehlerursachen zu bestätigen oder auszuschließen.

Definieren des ProblemsEine klare Bestimmung des Problems ist der erste Schritt. Einige Fragen, die Sie sich stellen sollten:

• Welches Ergebnis hatte ich erwartet? Was ist stattdessen passiert?• Wann trat dieses Problem zum ersten Mal auf? Wie häufig ist das Problem seitdem aufgetreten?• Hat sich etwas an der Konfiguration oder der Ausführung meines Clusters geändert?

Cluster-DetailsDie folgenden Angaben zum Cluster sind hilfreich, um die Fehlerursache zu bestimmen. WeitereInformationen zum Sammeln dieser Information finden Sie unter View Cluster Status and Details (p. 335).

• Cluster-Kennung (Wird auch als Auftragsverlaufskennung bezeichnet.)• Region und Availability Zone, in denen der Cluster gestartet wurde.• Status des Clusters sowie Details zur letzten Statusänderung.• Typ und Anzahl der EC2-Instances, die für Master-, Kern- und Aufgabenknoten festgelegt sind.

Schritt 2 Umgebung prüfenThemen

• Prüfen auf Service-Ausfälle (p. 453)• Prüfen auf Nutzungsgrenzen (p. 453)• Prüfen der Amazon VPC-Subnetzkonfiguration (p. 454)• Neustarten des Clusters (p. 454)

Prüfen auf Service-AusfälleAmazon EMR verwendet intern mehrere Amazon Web Services. Es führt virtuelle Server auf Amazon EC2aus, speichert Daten und Skripte auf Amazon S3, indexiert Log-Dateien in Amazon SimpleDB und meldetMetriken an CloudWatch. Es geschieht nur selten, dass diese Dienste gestört werden. Doch wenn es zuFehlern kommt, können Probleme in Amazon EMR auftreten.

Überprüfen Sie die Übersicht zum Servicestatus, bevor Sie fortfahren. Überprüfen Sie die Region, von deraus Sie Ihren Cluster gestartet haben, um sicherzustellen, dass keine Störungsmeldungen für einen derDienste vorliegen.

Prüfen auf NutzungsgrenzenWenn Sie einen großen Cluster oder mehrere Cluster gleichzeitig starten möchten oder wenn Sie einIAM-Benutzer sind, der sich ein AWS-Konto mit anderen Benutzern teilt, könnte der Fehler im Clusteraufgetreten sein, weil die AWS-Servicegrenze überschritten wurde.

Amazon EC2 beschränkt die Anzahl der Virtual Server Instances, die in einer AWS-Region ausgeführtwerden können, auf 20 verfügbare oder reservierte Instances. Wenn Sie versuchen, einen Cluster zustarten, der über mehr als 20 Knoten verfügt oder mit dem die Gesamtanzahl der auf Ihrem AWS-Konto

453

Page 461: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 3 Protokolldateien überprüfen

aktiven EC2-Instances 20 übersteigt, können nicht alle benötigen EC2-Instances gestartet werden und derVersuch schlägt fehl. In diesem Fall gibt Amazon EMR den Fehler EC2 QUOTA EXCEEDED zurück. Siekönnen beantragen, dass AWS die Anzahl der auf Ihrem Konto verfügbaren EC2-Instances erhöht, indemSie einen Antrag zum Erhöhen des Amazon EC2-Instance-Limits übermitteln.

Ein weiterer Grund für die Überschreitung der Nutzungsgrenze ist die Verzögerung zwischen demBeenden eines Clusters und der Freigabe aller entsprechenden Ressourcen. Je nach Konfiguration kannes zwischen 5 und 20 Minuten dauern, bis ein Cluster vollständig beendet ist und die entsprechendenRessourcen wieder freigegeben sind. Wenn Sie beim Versuch, einen Cluster zu starten, die FehlermeldungEC2 QUOTA EXCEEDED erhalten, könnte es daran liegen, dass Ressourcen von einem kürzlich beendetenCluster noch nicht zur Verfügung stehen. In diesem Fall können Sie entweder eine Erhöhung des AmazonEC2-Kontingents beantragen oder zwanzig Minuten warten und den Cluster anschließend erneut starten.

Amazon S3 begrenzt die Anzahl der Buckets, die auf einem Konto erstellt werden können, auf 100. WennIhr Cluster einen neuen Bucket erstellt und durch diesen die Grenze überschritten wird, wird die Erstellungdes Bucket fehlschlagen, was dazu führen kann, dass im Cluster ein Fehler auftritt.

Prüfen der Amazon VPC-SubnetzkonfigurationWenn Ihr Cluster in einem Amazon VPC-Subnetz gestartet wurde, muss es wie unter Konfigurieren desNetzwerks (p. 144) beschrieben konfiguriert werden. Überprüfen Sie außerdem, dass das Subnetz, in demSie den Cluster starten, über genügend freie Elastic IP-Adressen für jeden Knoten im Cluster verfügt.

Neustarten des ClustersDie Verlangsamung der Verarbeitung kann von einer vorübergehenden Bedingung herrühren. ÜberlegenSie sich, ob Sie den Cluster beenden und neu starten möchten, um zu prüfen, ob sich die Leistungverbessert.

Schritt 3 Protokolldateien überprüfenDer nächste Schritt ist eine Überprüfung der Log-Dateien, um einen Fehlercode oder andere Hinweise aufdas in Ihrem Cluster aufgetretene Problem zu finden. Informationen zu den verfügbaren Log-Dateien undwie Sie diese abrufen können, finden Sie unter View Log Files (p. 349).

Möglicherweise sind investigative Schritte nötig, um herauszufinden, was passiert ist. Hadoop führt dieAufgaben auf verschiedenen Knoten im Cluster aus. Amazon EMR kann spekulative Aufgabenversuchestarten, durch die andere, nicht abgeschlossene Aufgaben beendet werden. Dies führt zu erheblicherAktivität, die im Controller aufgezeichnet wird. Es handelt sich hierbei um die Log-Dateien stderr undsyslog. Außerdem können mehrere Aufgabenversuche gleichzeitig ausgeführt werden, wohingegen dieLog-Datei die Ergebnisse nur linear darstellen kann.

Überprüfen Sie zunächst die Log-Dateien der Bootstrap-Aktionen auf Fehler oder unerwarteteKonfigurationen während des Starts des Clusters. Rufen Sie als Nächstes die Schrittprotokolleauf und identifizieren Sie die Hadoop-Aufträge, die als Teil eines fehlerhaften Schrittes gestartetwurden. Überprüfen Sie die Log-Dateien der Hadoop-Aufträge auf Fehlversuche. Die Log-Datei derAufgabenversuche beinhaltet Details zu den Ursachen der fehlgeschlagenen Versuche.

In den folgenden Abschnitten wird erläutert, wie Sie die verschiedenen Log-Dateien nutzen können, umFehler in Ihrem Cluster zu identifizieren.

Überprüfen der Bootstrap-AktionsprotokolleBootstrap-Aktionen führen während dem Start Skripte auf dem Cluster aus. Sie werden für gewöhnlichgenutzt, um zusätzliche Software auf dem Cluster zu installieren oder um die Standardwerte derKonfigurationseinstellungen anzupassen. Eine Überprüfung dieser Log-Dateien kann Hinweise aufFehler liefern, die während des Setup des Clusters aufgetreten sind, sowie auf Änderungen in denKonfigurationseinstellungen, die die Leistung beeinträchtigen können.

454

Page 462: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 4. Cluster- und Instanz-Gesundheit prüfen

Überprüfen der SchrittprotokolleEs gibt vier Arten von Schrittprotokollen.

• controller: enthält Dateien, die von Amazon EMR (Amazon EMR) aufgrund von Fehlern bei derAusführung von Schritten generiert wurden. Wenn Ihr Schritt beim Laden fehlschlägt, finden Sie denStacktrace in dieser Log-Datei. Fehler, die beim Laden oder beim Zugriff auf Ihre Anwendung auftreten,sowie Fehler aufgrund von fehlenden Mapper-Dateien werden oft hier aufgeführt.

• stderr: enthält Fehlermeldungen, die bei der Verarbeitung des Schrittes aufgetreten sind. Ladefehlerin Bezug auf Anwendungen werden oft hier aufgeführt. Diese Log-Datei beinhaltet manchmal einenStacktrace.

• stdout: enthält die Status, der von ausführbaren Mapper- und Reducer-Dateien generiert werden.Ladefehler in Bezug auf Anwendungen werden oft hier aufgeführt. Diese Log-Datei beinhaltet manchmalFehlermeldungen in Bezug auf Anwendungen.

• syslog: enthält Protokolle aus nicht von Amazon stammender Software, z. B. Apache und Hadoop.Streaming-Fehler werden oft hier aufgeführt.

Überprüfen Sie stderr auf offensichtliche Fehler. Wenn in stderr eine kurze Fehlerliste angezeigt wird,wurde der Schritt nach dem Auftreten eines Fehlers schnell abgebrochen. Dies geschieht meist aufgrundeines Fehlers in den Mapper- und Reducer-Anwendungen, die im Cluster ausgeführt werden.

Überprüfen Sie die letzten Zeilen im Controller und in syslog auf Fehler- und Störungsmeldungen.Beachten Sie alle Meldungen zu fehlgeschlagenen Aufgaben, insbesondere wenn sie mit „Job Failed”gekennzeichnet sind.

Überprüfen der AufgabenversuchsprotokolleWenn die vorhergehende Analyse der Schrittprotokolle eine oder mehrere fehlgeschlageneAufgaben ergeben hat, überprüfen Sie die Log-Dateien der entsprechenden Aufgaben, um nähereFehlerinformationen zu erhalten.

Überprüfen der Hadoop-Daemon-ProtokolleIn seltenen Fällen können in Hadoop Fehler auftreten. Überprüfen Sie die Hadoop-Logs, um festzustellen,ob dies der Fall ist. Sie befinden sich auf jedem Knoten unter /var/log/hadoop/.

Sie können die JobTracker-Logs verwenden, um Fehlversuche dem Knoten, auf dem die Aufgabeausgeführt wurde, zuzuordnen. Sobald Sie den entsprechenden Knoten kennen, können Sie eineZustandsprüfung der EC2-Instance, die diesen Knoten enthält, durchführen, um etwaige Probleme, wie z.B. nicht genügend CPU oder Speicherplatz, zu bestimmen.

Schritt 4. Cluster- und Instanz-Gesundheit prüfenEin Amazon EMR Cluster besteht aus Knoten, die ausgeführt werden Amazon EC2 Instanzen. Wenn dieseInstances viele Ressourcen binden (z. B. CPU oder Speicherplatz), Probleme mit der Netzwerkkonnektivitäthaben oder beendet werden, leidet die Geschwindigkeit der Cluster-Verarbeitung.

Es gibt bis zu drei Arten von Knoten in einem Cluster:

• Masterknoten — verwaltet den Cluster. Wenn ein Leistungsproblem auftritt, ist der gesamte Clusterbetroffen.

• Kernknoten — Prozess-Kartenreduzierung und Verwaltung des Hadoop Distributed Dateisystem (HDFS).Wenn einer dieser Knoten ein Leistungsproblem hat, kann dies sowohl HDFS-Operationen als auchMap- und Reduce-Verarbeitungen verlangsamen. Sie können einem Cluster zusätzliche Core-Knotenhinzufügen, um die Leistung zu verbessern, aber keine Core-Knoten entfernen. Weitere Informationenfinden Sie im Manuelle Größenanpassung eines aktiven Clusters (p. 429).

455

Page 463: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 5. Auf suspendierte Gruppen prüfen

• Aufgabenknoten — Prozess-Kartenreduzierung. Dies sind reine Rechenressourcen und speichernkeine Daten. Sie können einem Cluster Aufgabenknoten hinzufügen, um die Leistung zu beschleunigen,oder nicht benötigte Aufgabenknoten entfernen. Weitere Informationen finden Sie im ManuelleGrößenanpassung eines aktiven Clusters (p. 429).

Wenn Sie den Zustand eines Clusters prüfen, sollten Sie sich sowohl die Leistung des Clusters insgesamtals auch die Leistung der einzelnen Instances anschauen. Es gibt mehrere Tools, die Sie verwendenkönnen:

Überprüfen des Cluster-Zustands mit CloudWatchJeder Amazon EMR-Cluster meldet Metriken an CloudWatch. Diese Metriken stellen zusammenfassendeLeistungsinformationen über den Cluster bereit, wie z. B. Gesamtlast, HDFS-Auslastung, ausgeführteAufgaben, verbleibende Aufgaben und beschädigte Blöcke. Ein Blick auf die CloudWatch-Metriken bietetIhnen einen Überblick über den Betriebszustand Ihres Clusters und ermöglicht Ihnen einen detailliertenEinblick in die Ursachen für die Verlangsamung der Verarbeitung. Zusätzlich zum Einsatz CloudWatchum ein bestehendes Leistungsproblem zu analysieren, können Sie Alarme festlegen, die CloudWatch umzu benachrichtigen, wenn ein zukünftiges Leistungsproblem auftritt. Weitere Informationen finden Sie imÜberwachen der Metriken mit CloudWatch (p. 364).

Überprüfen von Auftragsstatus und HDFS-ZustandVerwenden Sie die Anwendungsbenutzerschnittstellen auf der Seite Clusterdetails, um Details zur YARN-Anwendung anzuzeigen. Bei bestimmten Anwendungen können Sie weitere Details und Zugriffsprotokolledirekt anzeigen. Dies ist besonders nützlich für Spark-Anwendungen. Weitere Informationen finden Sie imAnzeigen des Anwendungsverlaufs (p. 343).

Hadoop bietet eine Reihe von Webschnittstellen, mit denen Sie Informationen anzeigen lassen können.Weitere Informationen darüber, wie Sie auf diese Webschnittstellen zugreifen können, finden Sie unterAnzeigen von auf Amazon EMR-Clustern gehosteten Webschnittstellen (p. 390).

• Jobtracker — liefert Informationen über den Fortschritt der Arbeit, die vom Cluster verarbeitet wird. Mitdieser Schnittstelle können Sie ermitteln, wann ein Auftrag blockiert ist.

• HDFS-Namenode — liefert Informationen über den Prozentsatz der HDFS-Nutzung und verfügbarenSpeicherplatz auf jedem Knoten. Sie können mit dieser Schnittstelle bestimmen, wann HDFSRessourcen bindet und zusätzliche Kapazität benötigt.

• Tasktracker — liefert Informationen über die Aufgaben der Aufgabe, die vom Cluster verarbeitet werden.Mit dieser Schnittstelle können Sie ermitteln, wann eine Aufgabe blockiert ist.

Instance-Zustandsprüfung mit Amazon EC2Die Amazon EC2-Konsole bietet eine weitere Möglichkeit, um Informationen über den Status der Instancesin Ihrem Cluster zu ermitteln. Da jeder Knoten im Cluster auf einer EC2-Instance ausgeführt wird, könnenSie mithilfe der von Amazon EC2 bereitgestellten Tools ihren Status überprüfen. Weitere Informationenfinden Sie im View Cluster Instances in Amazon EC2 (p. 353).

Schritt 5. Auf suspendierte Gruppen prüfenEine Instanz-Gruppe wird ausgesetzt, wenn sie zu viele Fehler beim Versuch der Knotenung von Knotenmeldet. Wenn beispielsweise neue Knoten wiederholt nicht beim Ausführen von Bootstrap-Aktionenfehlschlagen, wird die Instanz-Gruppe — nach einiger Zeit — gehen Sie in die SUSPENDED anstattkontinuierlich versuchen, neue Knoten zu implementieren.

In folgenden Fällen kann ein Knoten fehlschlagen:

456

Page 464: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 6. Konfigurationseinstellungen überprüfen

• Hadoop oder der Cluster ist irgendwie beschädigt und akzeptiert keinen neuen Knoten im Cluster.• Eine Bootstrap-Aktion schlägt auf dem neuen Knoten fehl.• Der Knoten arbeitet nicht ordnungsgemäß und kann nicht mit Hadoop einchecken

Wenn eine Instanz-Gruppe sich im SUSPENDED und der Cluster befindet sich in einem WAITING ,können Sie einen Cluster-Schritt hinzufügen, um die gewünschte Anzahl von Kern- und Aufgabenknotenzurückzusetzen. Durch Hinzufügen des Schritts wird die Verarbeitung des Clusters fortgesetzt und dieInstance-Gruppe wieder in den Status RUNNING versetzt.

Weitere Informationen zum Zurücksetzen eines Clusters in einem schwebenden Zustand finden Sie unterStatus "Ausgesetzt" (p. 433).

Schritt 6. Konfigurationseinstellungen überprüfenKonfigurationseinstellungen legen die Ausführung eines Clusters im Detail fest, z. B. wie häufig eineAufgabe wiederholt wird und wie viel Arbeitsspeicher zum Sortieren verfügbar ist. Wenn Sie einen Clustermit Amazon EMR, es gibt Amazon EMR-spezifische Einstellungen zusätzlich zu den standardmäßigenHadoop-Konfigurationseinstellungen. Die Konfigurationseinstellungen werden im Master-Knoten desClusters gespeichert. Sie können die Konfigurationseinstellungen überprüfen, um sicherzustellen, dass IhrCluster über die benötigten Ressourcen für einen effizienten Betrieb verfügt.

Amazon EMR legt standardmäßige Hadoop-Konfigurationseinstellungen fest, die zum Starten einesClusters verwendet werden. Die Werte basieren auf dem AMI und dem Instance-Typ, den Sie für denCluster angeben. Ändern können Sie die Standardwerte der Konfigurationseinstellungen mithilfe einerBootstrap-Aktion oder indem Sie neue Wert in den Parametern für die Auftragsausführung festlegen.Weitere Informationen finden Sie im Create Bootstrap Actions to Install Additional Software (p. 132). Umzu bestimmen, ob eine Bootstrap-Aktion die Konfigurationseinstellungen geändert hat, prüfen Sie dieBootstrap-Aktionsprotokolle.

Amazon EMR protokolliert die Hadoop-Einstellungen für die Ausführung aller Aufträge. Die Protokolldatenwerden in einer Datei gespeichert job_job-id_conf.xml unter dem /mnt/var/log/hadoop/history/ Verzeichnis des Masterknotens, wo job-id wird durch die Kennung der Stelle ersetzt.Wenn Sie die Protokollarchivierung aktiviert haben, werden diese Daten kopiert in Amazon S3 imlogs/date/jobflow-id/jobs Ordner, wo date das Datum, an dem der Job ausgeführt wurde, undjobflow-id ist die Kennung des Clusters.

Die folgenden Konfigurationseinstellungen des Hadoop-Auftrags eignen sich besonders für dieUntersuchung von Leistungsproblemen. Weitere Informationen zu den Hadoop-Konfigurationseinstellungenund wie sie das Verhalten von Hadoop beeinflussen, finden Sie unter http://hadoop.apache.org/docs/.

Konfigurationseinstellung Description (Beschreibung)

dfs.replication Die Anzahl der HDFS-Knoten, in die ein einziger Block (z. B.der Festplattenblock) kopiert wird, um eine RAID-ähnlicheUmgebung zu erstellen. Bestimmt die Anzahl der HDFS-Knoten, die eine Kopie des Blocks enthalten.

io.sort.mb Für die Sortierung verfügbarer Gesamtspeicher. DieserWert sollte das Zehnfache von "io.sort.factor" sein.Diese Einstellung kann auch für die Berechnung desvom Aufgabenknoten genutzten Gesamtspeichersdurch Berechnen von "io.sort.mb" multipliziert mit"mapred.tasktracker.ap.tasks.maximum" verwendet werden.

io.sort.spill.percent Wird während der Sortierung verwendet. An diesem Punktbeginnt die Verwendung des Datenträgers, da der für dieSortierung zugewiesene Speicherplatz knapp wird.

457

Page 465: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideSchritt 7. Eingangsdaten untersuchen

Konfigurationseinstellung Description (Beschreibung)

mapred.child.java.opts (Veraltet) Verwenden Sie stattdessen"mapred.map.child.java.opts" und"mapred.reduce.child.java.opts". Die Java-Optionen, dieTaskTracker beim Starten einer JVM für die Ausführungeiner Aufgabe innerhalb verwendet. "-Xmx" ist einüblicher Parameter zum Festlegen der maximalenArbeitsspeichergröße.

mapred.map.child.java.opts Die Java-Optionen, die TaskTracker beim Starten einer JVMfür die Ausführung einer Map-Aufgabe innerhalb verwendet. "-Xmx" ist ein üblicher Parameter zum Festlegen der maximalenHeap-Arbeitsspeichergröße.

mapred.map.tasks.speculative.execution Legt fest, ob Map-Aufgabenversuche derselben Aufgabeparallel gestartet werden können.

mapred.reduce.tasks.speculative.executionLegt fest, ob Reduce-Aufgabenversuche derselben Aufgabeparallel gestartet werden können.

mapred.map.max.attempts Die maximale Anzahl an Map-Aufgabenversuchen. Wennalle fehlschlagen, wird die Map-Aufgabe als fehlgeschlagenmarkiert.

mapred.reduce.child.java.opts Die Java-Optionen, die TaskTracker beim Starten einerJVM für die Ausführung einer Reduce-Aufgabe innerhalbverwendet. "-Xmx" ist ein üblicher Parameter zum Festlegender maximalen Heap-Arbeitsspeichergröße.

mapred.reduce.max.attempts Die maximale Anzahl an Reduce-Aufgabenversuchen. Wennalle fehlschlagen, wird die Map-Aufgabe als fehlgeschlagenmarkiert.

mapred.reduce.slowstart.completed.maps Die Anzahl an Map-Aufgaben, die abgeschlossen werden,bevor Reduce-Aufgabenversuche durchgeführt werden. Beizu geringer Wartezeit kann der Fehler "Too many fetch-failure" in Versuchen ausgelöst werden.

mapred.reuse.jvm.num.tasks Eine Aufgabe wird innerhalb einer einzelnen JVM ausgeführt.Gibt an, wie viele Aufgaben dieselbe JVM wiederverwendendürfen.

mapred.tasktracker.map.tasks.maximum Die maximale Anzahl von Aufgaben, die während des Map-Vorgangs pro Aufgabenknoten parallel ausgeführt werdenkönnen.

mapred.tasktracker.reduce.tasks.maximumDie maximale Anzahl von Aufgaben, die während desReduce-Vorgangs pro Aufgabenknoten parallel ausgeführtwerden können.

Wenn Ihre Cluster-Aufgaben arbeitsspeicherintensiv sind, können Sie die Leistung verbessern, indem Sieweniger Aufgaben pro Core-Knoten verwenden und die Heap-Größe des JobTrackers reduzieren.

Schritt 7. Eingangsdaten untersuchenSchauen Sie sich Ihre Eingabedaten an. Sind diese gleichmäßig auf Ihre Schlüsselwerte verteilt? Beieiner starken Datenschiefe in Richtung eines oder weniger Schlüsselwerte wird die Verarbeitungslast

458

Page 466: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCommon Errors in Amazon EMR

möglicherweise einer kleinen Anzahl von Knoten zugeordnet, während sich andere Knoten im Leerlaufbefinden. Diese ungleichmäßige Verteilung der Arbeit kann zu einer langsameren Verarbeitung führen.

Um einen ungleichmäßigen Datensatz handelt es sich z. B., wenn ein Cluster ausgeführt wird, um Wörteralphabetisch anzuordnen, aber ein Datensatz zur Verfügung steht, dessen Wörter alle nur mit "a" beginnen.Beim Map-Vorgang wird dann der Knoten überfordert, der Werte verarbeitet, die mit "a" anfangen, währenddiejenigen Knoten nicht beschäftigt sind, die Wörter mit anderen Anfangsbuchstaben verarbeiten.

Common Errors in Amazon EMREs gibt viele Gründe, warum ein Cluster fehlschlägt oder bei der Verarbeitung von Daten langsam ist.In den folgenden Abschnitten sind die häufigsten Probleme und Vorschläge zur Problembehandlungbeschrieben.

Themen• Input and Output Errors (p. 459)• Berechtigungsfehler (p. 461)• Ressourcenfehler (p. 462)• Streaming Cluster Errors (p. 470)• Custom JAR Cluster Errors (p. 471)• Hive Cluster Errors (p. 471)• VPC Errors (p. 472)• AWS GovCloud (US-West) Errors (p. 475)• Other Issues (p. 475)

Input and Output ErrorsDie folgenden Fehler treten in Cluster-Ein- und Ausgabeoperationen häufig auf.

Themen• Does your path to Amazon Simple Storage Service (Amazon S3) have at least three

slashes? (p. 459)• Are you trying to recursively traverse input directories? (p. 460)• Does your output directory already exist? (p. 460)• Are you trying to specify a resource using an HTTP URL? (p. 460)• Are you referencing an Amazon S3 bucket using an invalid name format? (p. 460)• Are you experiencing trouble loading data to or from Amazon S3? (p. 460)

Does your path to Amazon Simple Storage Service (Amazon S3)have at least three slashes?Wenn Sie einen Amazon S3-Bucket angeben, müssen Sie einen Abschlussschrägstrich am Ende der URLanfügen. Statt auf einen Bucket mit „s3n://DOC-EXAMPLE-BUCKET1“ zu verweisen, sollten Sie „s3n://DOC-EXAMPLE-BUCKET1/“ verwenden. Andernfalls tritt in Ihrem Hadoop-Cluster in den meisten Fällen einFehler auf.

459

Page 467: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideInput and Output Errors

Are you trying to recursively traverse input directories?Hadoop durchsucht Eingabeverzeichnisse nicht rekursiv nach Dateien. Wenn Sie über eineVerzeichnisstruktur wie beispielsweise /corpus/01/01.txt, /corpus/01/02.txt, /corpus/02/01.txt usw. verfügenund /corpus/ als Eingabeparameter für Ihren Cluster angeben, findet Hadoop keine Eingabedateien, da dasVerzeichnis /corpus/ leer ist und Hadoop den Inhalt der Unterverzeichnisse nicht überprüft. Entsprechendüberprüft Hadoop die Unterverzeichnisse von Amazon S3-Buckets nicht rekursiv.

Die Eingabedateien müssen sich direkt in dem Eingabeverzeichnis oder dem Amazon S3-Bucket, das bzw.den Sie angeben, befinden und nicht in Unterverzeichnissen.

Does your output directory already exist?Wenn Sie einen Ausgabepfad angeben, der bereits vorhanden ist, schlägt der Hadoop-Cluster in denmeisten Fällen fehl. Das bedeutet, dass Sie, wenn Sie einen Cluster ausführen und dann diesen Vorgangmit denselben Parametern wiederholen, der erste Lauf und kein weiterer funktioniert. Nach dem ersten Laufist der Ausgabepfad vorhanden, was dazu führt, dass alle nachfolgenden Läufe fehlschlagen.

Are you trying to specify a resource using an HTTP URL?Hadoop akzeptiert keine Ressourcenspeicherorte, die mit dem Präfix http:// angegeben werden. Sie könnenauf eine Ressource nicht mit einer HTTP-URL verweisen. Beispiel: Das Übergeben von http://mysite/myjar.jar als JAR-Parameter bewirkt, dass der Cluster fehlschlägt.

Are you referencing an Amazon S3 bucket using an invalid nameformat?Wenn Sie versuchen, einen Bucket-Namen wie „DOC-EXAMPLE-BUCKET1.1“ in Amazon EMR zuverwenden, schlägt Ihr Cluster fehl, da Bucket-Namen in Amazon EMR gültige RFC 2396-Hostnamensein müssen. Der Name darf nicht mit einer Zahl enden. Um die Anforderungen von Hadoop zuerfüllen, dürfen Namen von mit Amazon EMR verwendeten Amazon S3-Buckets darüber hinaus nurKleinbuchstaben, Zahlen, Punkte (.) und Bindestriche (-) enthalten. Weitere Informationen zur Formatierungvon Amazon S3-Bucket-Namen finden Sie unter Beschränkungen und Einschränkungen von Buckets imEntwicklerhandbuch für Amazon Simple Storage Service.

Are you experiencing trouble loading data to or from Amazon S3?Amazon S3 ist die beliebteste Ein- und Ausgabequelle für Amazon EMR. Ein häufiger Fehler besteht darin,Amazon S3 so zu behandeln wie ein typisches Dateisystem. Es gibt Unterschiede zwischen Amazon S3und einem Dateisystem, die Sie berücksichtigen müssen, wenn Sie Ihren Cluster ausführen.

• If an internal error occurs in Amazon S3, your application needs to handle this gracefully and re-try theoperation.

• If calls to Amazon S3 take too long to return, your application may need to reduce the frequency at whichit calls Amazon S3.

• Listing all the objects in an Amazon S3 bucket is an expensive call. Your application should minimize thenumber of times it does this.

Es gibt mehrere Möglichkeiten, wie Sie die Interaktion Ihres Cluster mit Amazon S3 verbessern können.

• Launch your cluster using the most recent release version of Amazon EMR.• Use S3DistCp to move objects in and out of Amazon S3. S3DistCp implements error handling, retries

and back-offs to match the requirements of Amazon S3. For more information, see Distributed CopyUsing S3DistCp.

460

Page 468: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBerechtigungsfehler

• Design your application with eventual consistency in mind. Use HDFS for intermediate data storage whilethe cluster is running and Amazon S3 only to input the initial data and output the final results.

• If your clusters will commit 200 or more transactions per second to Amazon S3, contact support toprepare your bucket for greater transactions per second and consider using the key partition strategiesdescribed in Amazon S3 Performance Tips & Tricks.

• Set the Hadoop configuration setting io.file.buffer.size to 65536. This causes Hadoop to spend less timeseeking through Amazon S3 objects.

• Consider disabling Hadoop's speculative execution feature if your cluster is experiencing Amazon S3concurrency issues. This is also useful when you are troubleshooting a slow cluster. You do this bysetting the mapreduce.map.speculative and mapreduce.reduce.speculative propertiesto false. When you launch a cluster, you can set these values using the mapred-env configurationclassification. Weitere Informationen finden Sie unter Konfigurieren von Anwendungen im Amazon EMR-Versionshinweise.

• If you are running a Hive cluster, see Are you having trouble loading data to or from Amazon S3 intoHive? (p. 472).

Weitere Informationen finden Sie unter Bewährte Methoden für den Umgang mit Amazon S3-Fehlern imEntwicklerhandbuch für Amazon Simple Storage Service.

BerechtigungsfehlerDie folgenden Fehler treten häufig im Zusammenhang mit Berechtigungen oder Anmeldeinformationen auf.

Themen• Haben Sie für SSH die korrekten Anmeldeinformationen angegeben? (p. 461)• Haben Sie bei der Verwendung von IAM die korrekten Amazon EC2-Richtlinien festgelegt? (p. 462)

Haben Sie für SSH die korrekten Anmeldeinformationenangegeben?Wenn Sie keine SSH-Verbindung zum Master-Knoten herstellen können, gibt es höchstwahrscheinlich einProblem mit Ihren Anmeldeinformationen.

Prüfen Sie zunächst, ob die PEM-Datei mit dem SSH-Schlüssel über die entsprechenden Berechtigungenverfügt. Verwenden Sie chmod, um die Berechtigungen für Ihre .PEM-Datei zu ändern. Im folgendenBeispiel würden Sie mykey.pem durch den Namen Ihre eigenen PEM-Datei ersetzen.

chmod og-rwx mykey.pem

Die zweite Fehlerquelle besteht darin, dass Sie nicht das Schlüsselpaar verwenden, das Sie beim Erstellendes Clusters angegeben haben. Dies passiert schnell, falls Sie mehrere Schlüsselpaare erstellt haben.Prüfen Sie die Cluster-Details in der Amazon EMR-Konsole (oder verwenden Sie die Option --describein der CLI). Stellen Sie fest, ob der Name des Schlüsselpaares mit dem bei der Erstellung des Clustersangegebenen übereinstimmt.

Nachdem Sie überprüft haben, ob Sie das richtige Schlüsselpaar und die korrekten Berechtigungen fürdie PEM-Datei verwendet haben, können Sie den folgenden Befehl nutzen, um eine SSH-Verbindungmit dem Master-Knoten herzustellen. Ersetzen Sie mykey.pem durch den Namen Ihrer PEM-Datei [email protected] durch den öffentlichen DNS-Namen desMaster-Knotens (über die Option --describe in der CLI und über die Amazon EMR-Konsole abrufbar).

461

Page 469: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRessourcenfehler

Important

Sie müssen den Anmeldenamen hadoop verwenden, wenn Sie eine Verbindung mit dem AmazonEMR-Cluster-Knoten herstellen. Andernfalls kann eine Fehlermeldung wie Server refusedour key angezeigt werden.

ssh -i mykey.pem [email protected]

Weitere Informationen finden Sie unter Verbinden mit dem Master-Knoten über SSH (p. 385).

Haben Sie bei der Verwendung von IAM die korrekten AmazonEC2-Richtlinien festgelegt?Da Amazon EMR EC2-Instances als Knoten nutzt, müssen IAM-Benutzer bei Amazon EMR überbestimmte Amazon EC2-Richtlinien verfügen, damit Amazon EMR diese Instances für den IAM-Benutzerverwalten kann. Wenn Sie nicht über die erforderlichen Berechtigungen verfügen, gibt Amazon EMR denfolgenden Fehler zurück: „User account is not authorized to call EC2.“ (Das Benutzerkonto ist nicht zumAufrufen von EC2 berechtigt.)

Weitere Informationen über die zur Ausführung von Amazon EMR erforderlichen Amazon EC2-Richtlinienin Ihrem IAM-Konto finden Sie unter Funktionsweise von Amazon EMR mit IAM (p. 220).

RessourcenfehlerDie folgenden Fehler werden häufig durch eingeschränkte Ressourcen im Cluster verursacht.

Themen• Cluster wird mit NO_SLAVE_LEFT und Core-Knoten mit FAILED_BY_MASTER beendet (p. 462)• Replizieren von Block nicht möglich, nur Replizieren auf null Knoten möglich. (p. 464)• EC2-KONTINGENT ÜBERSCHRITTEN (p. 465)• Zu viele Abruffehler (p. 465)• Datei konnte nur auf 0 Knoten anstatt auf 1 repliziert werden (p. 466)• Gesperrte Knoten (p. 467)• Drosselungsfehler (p. 468)• Instance-Typ nicht unterstützt (p. 468)• EC2 hat keine Kapazität mehr (p. 469)

Cluster wird mit NO_SLAVE_LEFT und Core-Knoten mitFAILED_BY_MASTER beendetDies passiert in der Regel, da der Beendigungsschutz deaktiviert ist, und alle Core-Knoten überschreitendie Datenträger-Speicherkapazität, die durch einen Schwellenwert für die maximale Auslastung in deryarn-site-Konfigurationsklassifizierung angegeben ist, die der yarn-site.xml-Datei entspricht.Dieser Wert liegt standardmäßig bei 90 %. Wenn die Datenträgernutzung für einen Core-Knoten denAuslastungsschwellenwert überschreitet, meldet der YARN NodeManager-Zustandsservice den Knoten alsUNHEALTHY. Während er sich in diesem Zustand befindet, sperrt Amazon EMR den Knoten und weist ihmkeine YARN-Container zu. Wenn der Knoten 45 Minuten lang fehlerhaft bleibt, markiert Amazon EMR diezugehörige Amazon EC2-Instance für die Beendigung als FAILED_BY_MASTER. Wenn alle Amazon EC2-Instances, die Core-Knoten zugeordnet sind, zur Beendigung markiert sind, wird der Cluster mit dem StatusNO_SLAVE_LEFT beendet, da keine Ressourcen zum Ausführen von Aufträgen vorhanden sind.

462

Page 470: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRessourcenfehler

Das Überschreiten der Datenträgernutzung auf einem Core-Knoten könnte eine Kettenreaktion auslösen.Wenn ein einzelner Knoten den Schwellenwert für die Datenträgernutzung aufgrund von HDFSüberschreitet, liegen andere Knoten wahrscheinlich auch in der Nähe des Schwellenwerts. Der ersteKnoten überschreitet den Schwellenwert für die Datenträgernutzung, daher wird er von Amazon EMRzu einer Sperrliste hinzugefügt. Dies erhöht den Aufwand der Datenträgernutzung für die verbleibendenKnoten, da sie jetzt untereinander HDFS-Daten replizieren, die auf dem gesperrten Knoten verloren gingen.Jeder Knoten wird anschließend auf die gleiche Weise in den Zustand UNHEALTHY versetzt und der Clusterwird schließlich beendet.

Bewährte Methoden und Empfehlungen

Konfigurieren von Cluster-Hardware mit ausreichend Speicher

Wenn Sie einen Cluster erstellen, stellen Sie sicher, dass genügend Core-Knoten vorhanden sind undalle über ausreichend Instance-Speicher und EBS-Speicher-Volumes für HDFS verfügen. WeitereInformationen finden Sie im Berechnen der erforderlichen HDFS-Kapazität eines Clusters (p. 173).Sie können auch Core-Instances manuell oder mithilfe der automatischen Skalierung zu vorhandenenInstance-Gruppen hinzuzufügen. Die neuen Instances haben dieselbe Speicherkonfiguration wieandere Instances in der Instance-Gruppe. Weitere Informationen finden Sie im Skalieren von Cluster-Ressourcen (p. 403).

Beendigungsschutz aktivieren

Beendigungsschutz aktivieren. Wenn ein Core-Knoten gesperrt wird, können Sie auf diese Weise mithilfevon SSH eine Verbindung mit der zugehörigen Amazon EC2-Instance herstellen, um den Fehler zubeheben und Daten wiederherzustellen. Wenn Sie den Beendigungsschutz aktivieren, sollten Sie darandenken, dass Amazon EMR die Amazon EC2-Instance nicht durch eine neue Instance ersetzt. WeitereInformationen finden Sie im Using Termination Protection (p. 118).

Erstellen eines Alarms für die MRUnhealthyNodes CloudWatch-Metrik

Diese Metrik meldet die Anzahl der Knoten mit dem Status UNHEALTHY. Sie entspricht der YARN-Metrikmapred.resourcemanager.NoOfUnhealthyNodes. Sie können eine Benachrichtigung für diesenAlarm einrichten, um über fehlerhafte Knoten informiert zu werden, bevor das 45-Minuten-Timeout erreichtist. Weitere Informationen finden Sie im Überwachen der Metriken mit CloudWatch (p. 364).

Anpassen von Einstellungen mit yarn-site

Die folgenden Einstellungen können an Ihre Anwendungsanforderungen angepasst werden. Beispiel: Siemöchten den Schwellenwert für die Datenträgernutzung erhöhen, bei dem ein Knoten UNHEALTHY melden,indem Sie den Wert von yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage erhöhen.

Sie können diese Werte festlegen, wenn Sie einen Cluster mithilfe der yarn-site-Konfigurationsklassifizierung erstellen. Weitere Informationen finden Sie unter Konfigurieren vonAnwendungen im Amazon EMR-Versionshinweise. Sie können mit SSH auch eine Verbindung zu den mitCore-Knoten verknüpften Amazon EC2-Instances herstellen und die Werte dann mithilfe eines Texteditorsin /etc/hadoop/conf.empty/yarn-site.xml hinzufügen. Nachdem Sie die Änderung vorgenommenhaben, müssen Sie hadoop-yarn-nodemanager wie unten dargestellt neu starten.

Important

Wenn Sie den NodeManager-Service neu starten, werden aktive YARN-Container beendet, essei denn, yarn.nodemanager.recovery.enabled wird beim Erstellen des Clusters mit derKonfigurationsklassifizierung true auf yarn-site gesetzt. Darüber hinaus müssen Sie überdie Eigenschaft yarn.nodemanager.recovery.dir das Verzeichnis angeben, in dem derContainerstatus gespeichert werden soll.

sudo /sbin/stop hadoop-yarn-nodemanager

463

Page 471: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRessourcenfehler

sudo /sbin/start hadoop-yarn-nodemanager

Weitere Informationen zu den aktuellen yarn-site-Eigenschaften und Standardwerten finden Sie unterYARN-Standardeinstellungen in der Apache Hadoop-Dokumentation.

Eigenschaft Standardwert Description (Beschreibung)

yarn.nodemanager.disk-health-checker.interval-ms

120000 Die Häufigkeit (in Sekunden),mit der die Datenträger-Zustandsprüfung ausgeführt wird.

yarn.nodemanager.disk-health-checker.min-healthy-disks

0,25 Der Mindestbruchteil derAnzahl der Datenträger, diefehlerfrei sein müssen, damitNodeManager neue Containerstartet. Dies entspricht sowohlyarn.nodemanager.local-dirs (standardmäßig /mnt/yarn in Amazon EMR) undyarn.nodemanager.log-dirs(standardmäßig /var/log/hadoop-yarn/containers,was symbolisch mit mnt/var/log/hadoop-yarn/containers in Amazon EMRverknüpft ist).

yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage

90.0 Der maximale Prozentsatzder zulässigenSpeicherplatzauslastung,ab der ein Datenträger alsfehlerhaft markiert wird. DieWerte können zwischen 0,0und 100,0 liegen. Wenn derWert größer oder gleich 100ist, prüft die NodeManager,ob der Datenträger vollständigist. Dies gilt für yarn-nodemanager.local-dirsund yarn.nodemanager.log-dirs.

yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb

0 Der mindestens erforderlicheverfügbare Speicherplatz, damitein Datenträger verwendetwerden kann. Dies gilt für yarn-nodemanager.local-dirsund yarn.nodemanager.log-dirs.

Replizieren von Block nicht möglich, nur Replizieren auf nullKnoten möglich.Der Fehler „Cannot replicate block, only managed to replicate to zero nodes.“ (Block kann nicht repliziertwerden, nur zur Replikation auf null Knoten verwaltet werden.) tritt in der Regel auf, wenn ein Cluster nicht

464

Page 472: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRessourcenfehler

über genügend HDFS-Speicher verfügt. Dieser Fehler tritt auf, wenn Sie mehr Daten in Ihrem Clustergenerieren als in HDFS gespeichert werden können. Sie sehen diesen Fehler nur, während der Clusterausgeführt wird, da der HDFS-Speicherplatz nach dem Beenden des Auftrags freigegeben wird.

Die Menge des für einen Cluster verfügbaren HDFS-Speicherplatzes hängt von der Anzahl und Art derAmazon EC2 Instances ab, die als Core-Knoten verwendet werden. Für HDFS-Speicher werden keineAufgabenknoten verwendet. Der gesamte Speicherplatz auf jeder Amazon EC2-Instance, einschließlichangefügter EBS-Speichervolumen, ist für HDFS verfügbar. Weitere Informationen über die Größe deslokalen Speichers für jeden einzelnen EC2-Instance-Typ finden Sie unter Instance-Typen und -Familien imAmazon EC2-Benutzerhandbuch für Linux-Instances.

Der zweite Faktor, der sich auf die Menge des verfügbaren HDFS Speicherplatzes auswirkt, ist derReplikationsfaktor. Dieser beschreibt die Anzahl von Kopien jedes Datenblocks, die in HDFS zuRedundanzzwecken gespeichert werden können. Der Replikationsfaktor steigt mit der Anzahl der Knotenim Cluster: Es gibt 3 Kopien jedes Datenblocks für einen Cluster mit 10 oder mehr Knoten, 2 Kopien jedesBlocks für einen Cluster mit 4 bis 9 Knoten und 1 Kopie (keine Redundanz) für Cluster mit 3 oder wenigerKnoten. Der gesamte verfügbare HDFS-Speicherplatz wird durch den Replikationsfaktor dividiert. In einigenFällen, z. B. bei Erhöhung der Anzahl von Knoten von 9 auf 10, kann der Anstieg des Replikationsfaktorsdazu führen, dass der verfügbare HDFS-Speicherplatz verringert wird.

Beispielsweise kann ein Cluster mit 10 Core-Knoten vom Typ m1.large 2.833 GB Speicherplatz für HDFSzur Verfügung stellen ((10 Knoten X 850 GB pro Knoten)/Replikationsfaktor 3).

Wenn Ihr Cluster den HDFS zur Verfügung stehenden Speicherplatz überschreitet, können Sie IhremCluster weitere Core-Knoten hinzufügen oder die Datenkomprimierung verwenden, um mehr HDFS-Speicherplatz zu erstellen. Wenn Ihr Cluster beendet und neu gestartet werden kann, können Sieggf. Core-Knoten eines größeren Amazon EC2 Instance-Typs verwenden. Sie können auch denReplikationsfaktor anpassen. Beachten Sie, dass durch Verringern des Replikationsfaktors die Redundanzder HDFS-Daten sowie die Cluster-Funktion zur Wiederherstellung von verlorenen oder beschädigtenHDFS-Blöcken beeinträchtigt wird.

EC2-KONTINGENT ÜBERSCHRITTENWenn Sie die Meldung EC2 QUOTA EXCEEDED erhalten, gibt es möglicherweise mehrere Ursachen.Je nach Konfigurationsunterschieden kann es zwischen 5 und 20 Minuten dauern, bis vorherige Clusterbeendet und die entsprechenden Ressourcen wieder freigegeben werden. Wenn Sie beim Versuch,einen Custer zu starten, die Fehlermeldung EC2 QUOTA EXCEEDED erhalten, kann es daran liegen, dassRessourcen eines kürzlich beendeten Clusters noch nicht zur Verfügung stehen. Diese Meldung kann auchdurch die Größenanpassung einer Instance-Gruppe oder Instance-Flotte an eine Zielgröße, die das aktuelleInstance-Kontingent für das Konto überschreitet, verursacht werden. Dies kann manuell oder automatischdurch Auto Scaling geschehen.

Sie können das Problem u. U. mit den folgenden Optionen beheben:

• Befolgen Sie die Anweisungen unter AWS-Servicekontingente im Allgemeine Amazon Web Services-Referenz, um eine Erhöhung des Service Limits anzufordern. Bei einigen APIs ist die Einrichtungeines CloudWatch-Ereignisses möglicherweise eine bessere Option als eine Erhöhung der Limits.Weitere Informationen finden Sie unter Wann EMR-Ereignisse in CloudWatch eingerichtet werdensollen (p. 485).

• Wenn einer oder mehrere der aktiven Cluster nicht ausgelastet sind, skalieren Sie Instance-Gruppenoder reduzieren Sie Zielkapazitäten von Instance-Flotten für aktive Cluster.

• Erstellen Sie Cluster mit weniger EC2-Instances oder reduzierter Zielkapazität.

Zu viele AbruffehlerDie Fehlermeldung „Too many fetch-failures (Zu viele Abruffehler)“ oder „Error reading task output (Fehlerbeim Lesen der Aufgabenausgabe)“ in Schritt- oder Aufgabenversuchsprotokollen gibt an, dass die

465

Page 473: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRessourcenfehler

auszuführende Aufgabe von der Ausgabe einer anderen Aufgabe abhängt. Dies geschieht häufig, wenneine Reduce-Aufgabe zur Ausführung in die Warteschlange gestellt wird und die Ausgabe einer odermehrerer Map-Aufgaben erfordert, die jedoch noch nicht verfügbar ist.

Es gibt mehrere Gründe, warum die Ausgabe noch nicht verfügbar ist:

• Die erforderliche Aufgabe befindet sich noch in Bearbeitung. Dies ist oft eine Map-Aufgabe.• Die Daten sind möglicherweise aufgrund einer schlechten Netzwerkverbindung nicht verfügbar, wenn sie

sich auf einer anderen Instance befinden.• Wenn HDFS verwendet wird, um die Ausgabe abzurufen, kann ein Problem mit HDFS vorliegen.

Der häufigste Grund ist, dass sich die vorherige Aufgabe noch in Bearbeitung befindet. Dies ist besonderswahrscheinlich, wenn die Fehler beim ersten Ausführen der Reduce-Aufgaben auftreten. Sie könnenprüfen, ob dies der Fall ist, indem Sie sich das Syslog-Protokoll für den Cluster-Schritt ansehen, der denFehler zurückgibt. Wenn das Syslog den Fortschritt beider Map- und Reduce-Aufgaben belegt, weist diesdarauf hin, dass die Reduce-Phase gestartet wurde und einige Map-Aufgaben noch nicht abgeschlossensind.

Sehen Sie sich in den Protokollen den Prozentsatz für den Map-Fortschritt an, der auf 100 % ansteigtund dann wieder auf einen niedrigeren Wert zurückfällt. Wenn der Map-Prozentsatz 100 % beträgt,bedeutet das nicht, dass alle Map-Aufgaben abgeschlossen sind. Es bedeutet lediglich, dass Hadoopalle Map-Aufgaben ausführt. Wenn dieser Wert unter 100 % fällt, bedeutet dies, dass eine Map-Aufgabefehlgeschlagen ist und Hadoop je nach Konfiguration versucht, die Aufgabe neu zu planen. Wenn der Map-Prozentanteil in den Protokollen bei 100 % Prozentsatz bleibt, sehen Sie sich die CloudWatch-Metriken,insbesondere RunningMapTasks, an, um zu prüfen, ob sich die Map-Aufgabe noch in Bearbeitungbefindet. Sie finden diese Informationen auch mithilfe der Hadoop-Weboberfläche auf dem Master-Knoten.

Wenn dieses Problem auftritt, können Sie verschiedene Schritte versuchen:

• Weisen Sie die Reduce-Phase an, länger zu warten, bis sie startet. Ändern Sie dazu dieKonfigurationseinstellung mapred.reduce.slowstart.completed.maps in Hadoop und legen Sie sie aufeinen längeren Zeitraum fest. Weitere Informationen finden Sie im Create Bootstrap Actions to InstallAdditional Software (p. 132).

• Passen Sie die Reducer-Anzahl der gesamten Reducer-Kapazität des Clusters an. Ändern Sie dazu dieKonfigurationseinstellung mapred.reduce.tasks für den Auftrag in Hadoop.

• Verwenden Sie einen Kombinationsklassencode zum Minimieren der Menge der Ausgaben, dieabgerufen werden müssen.

• Stellen Sie sicher, dass keine Probleme mit dem Amazon EC2-Service bestehen, die dieNetzwerkleistung des Clusters beeinträchtigen. Verwenden Sie dazu das Dashboard zum Servicestatus.

• Überprüfen Sie die CPU- und Arbeitsspeicherressourcen für die Instances in Ihrem Cluster, umsicherzustellen, dass Ihre Datenverarbeitung die Ressourcen Ihrer Knoten nicht überlastet. WeitereInformationen finden Sie im Konfigurieren von Cluster-Hardware und Netzwerken (p. 136).

• Prüfen Sie die Version des Amazon Machine Image (AMI), das in Ihrem Amazon EMR-Cluster verwendetwird. Wenn die Version 2.3.0 bis einschließlich 2.4.4 ist, aktualisieren Sie auf eine neuere Version. AMI-Versionen im angegebenen Bereich verwenden eine Jetty-Version, die ggf. keine Ausgabe aus der Map-Phase liefert. Der Abruf-Fehler tritt auf, wenn die Reducer keine Ausgabe aus der Map-Phase abrufenkönnen.

Jetty ist ein Open-Source-HTTP-Server, der für die Maschine-zu-Maschine-Kommunikation innerhalbeines Hadoop-Clusters verwendet wird.

Datei konnte nur auf 0 Knoten anstatt auf 1 repliziert werdenWenn eine Datei in HDFS geschrieben wird, wird sie in mehreren Core-Knoten repliziert. Wenn dieserFehler angezeigt wird, bedeutet dies, dass der NameNode-Daemon keine verfügbaren DataNode-

466

Page 474: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRessourcenfehler

Instances zum Schreiben von Daten in HDFS hat. Mit anderen Worten, es findet keine Block-Replikationstatt. Dieser Fehler kann durch eine Reihe von Problemen verursacht werden:

• Das HDFS-Dateisystem hat keinen verfügbaren Speicherplatz. Dies ist die wahrscheinlichste Ursache.• -Instances waren möglicherweise nicht verfügbar, als der Auftrag ausgeführt wurde.DataNode• Möglicherweise wurden DataNode-Instances für die Kommunikation mit dem Master-Knoten blockiert.• Instances in der Core-Instance-Gruppe sind möglicherweise nicht verfügbar.• Berechtigungen können fehlen. Beispielsweise verfügt der JobTracker-Daemon möglicherweise nicht

über Berechtigungen zum Erstellen von JobTracker-Informationen.• Die Einstellung für den reservierten Speicherplatz für eine DataNode-Instance ist möglicherweise

nicht ausreichend. Stellen Sie fest, ob dies der Fall ist, indem Sie die Konfigurationseinstellungdfs.datanode.du.reserved prüfen.

Um zu prüfen, ob dieses Problem durch unzureichenden Speicherplatz in HDFS verursacht wird, sehenSie sich die HDFSUtilization-Metrik in CloudWatch an. Wenn dieser Wert zu hoch ist, können Siezusätzliche Core-Knoten zum Cluster hinzufügen. Wenn Sie über einen Cluster verfügen, dessen HDFS-Speicherplatz möglicherweise nicht ausreicht, können Sie einen Alarm in CloudWatch festlegen, damit Siebenachrichtigt werden, wenn der Wert HDFSUtilization einen bestimmten Punkt überschreitet. WeitereInformationen erhalten Sie unter Manuelle Größenanpassung eines aktiven Clusters (p. 429) und unterÜberwachen der Metriken mit CloudWatch (p. 364).

Wenn das Problem nicht auf unzureichenden Speicherplatz in HDFS zurückzuführen war, überprüfen Siedie DataNode-Protokolle, die NameNode-Protokolle und die Netzwerkverbindung auf andere Probleme, diemöglicherweise verhindert haben, dass HDFS Daten repliziert. Weitere Informationen finden Sie im ViewLog Files (p. 349).

Gesperrte KnotenDer NodeManager-Daemon ist für das Starten und Verwalten von Containern auf Core- undAufgabenknoten verantwortlich. Die Container werden dem NodeManager-Daemon vomResourceManager-Daemon zugewiesen, der auf dem Master-Knoten ausgeführt wird. DerResourceManager überwacht den NodeManager-Knoten über einen Heartbeat.

Es gibt einige Situationen, in denen der ResourceManager-Daemon einen NodeManager sperrt und ihnaus dem Pool der Knoten entfernt, die für die Verarbeitung von Aufgaben verfügbar sind:

• Wenn der NodeManager in den letzten 10 Minuten (60.000 Millisekunden) keinen Heartbeat an denResourceManager-Daemon gesendet hat. Dieser Zeitraum kann über die Konfigurationseinstellungyarn.nm.liveness-monitor.expiry-interval-ms festgelegt werden. Weitere Informationen zurÄnderung von Yarn-Konfigurationseinstellungen finden Sie unter Konfigurieren von Anwendungen imAmazon EMR-Versionshinweise.

• NodeManager überprüft den Zustand der Datenträger, die von yarn.nodemanager.local-dirs undyarn.nodemanager.log-dirs bestimmt wurden. Die Prüfungen umfassen Berechtigungen und freienSpeicherplatz (< 90 %). Wenn die Überprüfung eines Datenträgers fehlschlägt, stoppt die NodeManagerdie Verwendung des betreffenden Datenträgers, meldet den Knotenstatus aber weiterhin als fehlerfrei.Wenn eine Anzahl von Datenträgern fehlschlägt, wird der Knoten dem ResourceManager als fehlerhaftgemeldet und dem Knoten werden keine neuen Container zugewiesen.

Der Anwendungsmaster kann einen NodeManager-Knoten auch sperren, wenn er mehr alsdrei fehlgeschlagene Aufgaben hat. Sie können hierfür mithilfe des Konfigurationsparametersmapreduce.job.maxtaskfailures.per.tracker einen höheren Wert einstellen. AndereKonfigurationseinstellungen, die Sie ändern können, steuern, wie oft eine Aufgabe versucht wird,bevor sie als fehlgeschlagen markiert wird: mapreduce.map.max.attempts für Map-Aufgaben undmapreduce.reduce.maxattempts für Reduce-Aufgaben. Weitere Informationen zur Änderung

467

Page 475: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRessourcenfehler

von Konfigurationseinstellungen finden Sie unter Konfigurieren von Anwendungen im Amazon EMR-Versionshinweise.

DrosselungsfehlerDie Fehlermeldung "Throttled from Amazon EC2 beim Starten des Clusters und „Instances konntenaufgrund einer Drosselung durch nicht bereitgestellt werden“ Amazon EC2„ tritt auf, wenn Amazon EMReine Anforderung nicht abschließen kann, da ein anderer Service die Aktivität gedrosselt hat. AmazonEC2 ist die häufigste Quelle von Drosselungsfehlern, andere Services können jedoch die Ursache fürDrosselungsfehler sein. AWS-Service Limits gelten auf Regionsbasis zur Verbesserung der Leistung. EinDrosselungsfehler bedeutet, dass Sie das Service-Limit für Ihr Konto in der jeweiligen Region überschrittenhaben.

Mögliche UrsachenDie häufigste Quelle von Amazon EC2-Drosselungsfehlern besteht darin, dass durch das Starten einergroßen Anzahl von Cluster-Instances das Service-Limit für EC2-Instances überschritten wird. Cluster-Instances können aus den folgenden Gründen gestartet werden:

• Es werden neue Cluster erstellt.• Die Clustergröße wird manuell angepasst. Weitere Informationen finden Sie im Manuelle

Größenanpassung eines aktiven Clusters (p. 429).• Instance-Gruppen in einem Cluster fügen Instances als Ergebnis einer Auto Scaling-Regel hinzu ("Scale-

Out" oder horizontales Skalieren). Weitere Informationen finden Sie im Grundlegendes zu Auto Scaling-Regeln (p. 422).

• Instance-Flotten in einem Cluster fügen Instances hinzu, um eine erhöhte Zielkapazität zu erreichen.Weitere Informationen finden Sie im Konfigurieren von Instance-Flotten (p. 156).

Es ist auch möglich, dass durch die Häufigkeit oder den Typ der API-Anforderung an AmazonEC2 Drosselungsfehler verursacht werden. Weitere Informationen darüber, wie Amazon EC2 API-Anforderungen drosselt, finden Sie unter Query API Request Rate (Anforderungsrate der Abfrage-API) inder Amazon EC2 API Reference.

SolutionsErwägen Sie die folgenden Lösungen:

• Befolgen Sie die Anweisungen unter AWS-Servicekontingente im Allgemeine Amazon Web Services-Referenz, um eine Erhöhung des Service Limits anzufordern. Bei einigen APIs ist die Einrichtungeines CloudWatch-Ereignisses möglicherweise eine bessere Option als eine Erhöhung der Limits.Weitere Informationen finden Sie unter Wann EMR-Ereignisse in CloudWatch eingerichtet werdensollen (p. 485).

• Wenn Ihre Cluster alle nach demselben Zeitplan gestartet werden, z. B. am Anfang jeder Stunde, solltenSie ihre Startzeiten staffeln.

• Wenn die Nachfragespitzen für Ihre Cluster zu groß angelegt sind und Sie Ihre Instance-Kapazitäten inregelmäßigen Abständen angeben, sollten Sie Ihre Instance mit Auto Scaling nach Bedarf hinzufügenund entfernen. Auf diese Weise werden Instances effizienter genutzt und können je nach Bedarfsprofil zujedem beliebigen Zeitpunkt für ein Konto weniger Instances angefordert werden. Weitere Informationenfinden Sie im Verwenden der automatischen Skalierung mit einer benutzerdefinierten Richtlinie fürInstance-Gruppen (p. 421).

Instance-Typ nicht unterstütztWenn Sie einen Cluster erstellen und er mit der Fehlermeldung "The requested instance type" (Derangeforderte Instance-Typ) fehlschlägt InstanceType wird in der angeforderten Availability Zone nicht

468

Page 476: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideRessourcenfehler

unterstützt,“ bedeutet, dass Sie den Cluster erstellt und einen Instance-Typ für eine oder mehrere Instance-Gruppen angegeben haben, die von Amazon EMR in der Region und Availability Zone, in der der Clustererstellt wurde, nicht unterstützt werden. Amazon EMR unterstützt möglicherweise einen Instance-Typ ineiner Availability Zone innerhalb einer Region und nicht in einer anderen. Die Availability Zone innerhalbder Region ist von dem von Ihnen für einen Cluster ausgewählten Subnetz abhängig.

Solution

Bestimmen der verfügbaren Instance-Typen in einer Availability Zone mit derAWS CLI

• Verwenden Sie den Befehl ec2 run-instances mit der Option --dry-run. ErsetzenSie im folgenden Beispiel m5.xlarge mit dem Instance-Typ, den Sie verwenden möchten,ami-035be7bafff33b6b6 mit dem AMI, das diesem Instance-Typ zugeordnet ist, undsubnet-12ab3c45 mit einem Subnetz in der Availability Zone, die Sie abfragen möchten.

aws ec2 run-instances --instance-type m5.xlarge --dry-run --image-id ami-035be7bafff33b6b6 --subnet-id subnet-12ab3c45

Nachdem Sie die verfügbaren Instance-Typen bestimmt haben, können Sie beliebige der folgendenAktionen ausführen:

• Erstellen Sie den Cluster in der gleichen Region und im gleichen EC2-Subnetz und wählen Sie einenanderen Instance-Typ mit ähnlichen Funktionen wie Ihre erste Wahl aus. Eine Liste mit unterstütztenInstance-Typen finden Sie unter Unterstützte -Instance-Typen (p. 139). Informationen zum Vergleichender Funktionen der EC2-Instance-Typen finden Sie unter Amazon EC2-Instance-Typen.

• Wählen Sie ein Subnetz für den Cluster in einer Availability Zone aus, in der der Instance-Typ verfügbarist und von Amazon EMR unterstützt wird.

EC2 hat keine Kapazität mehrEine EC2 hat keine Kapazität für InstanceTypeDer Fehler " tritt auf, wenn Sie versuchen, einen Clusterzu erstellen oder Instances zu einem Cluster in einer Region oder Availability Zone hinzuzufügen, in derder angegebene EC2-Instance-Typ bereits in Kapazität ist. Die Availability Zone ist von dem von Ihnen füreinen Cluster ausgewählten Subnetz abhängig.

Führen Sie einen der folgenden Schritte aus, um einen Cluster zu erstellen:

• Angeben eines anderen Instance-Typs mit ähnlichen Funktionen• Erstellen des Clusters in einer anderen Region• Wählen Sie ein Subnetz in einer Availability Zone aus, in der der gewünschte Instance-Typ

möglicherweise verfügbar ist.

Führen Sie einen der folgenden Schritte aus, um einem aktiven Cluster Instances hinzuzufügen:

• Ändern Sie Instance-Gruppenkonfigurationen oder Instance-Flottenkonfigurationen, um verfügbareInstance-Typen mit ähnlichen Funktionen hinzuzufügen. Eine Liste mit unterstützten Instance-Typenfinden Sie unter Unterstützte -Instance-Typen (p. 139). Informationen zum Vergleichen der Funktionender EC2-Instance-Typen finden Sie unter Amazon EC2-Instance-Typen.

• Beenden Sie den Cluster und erstellen Sie ihn in einer Region und Availability Zone neu, in der derInstance-Typ verfügbar ist.

469

Page 477: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideStreaming Cluster Errors

Streaming Cluster ErrorsSie können in der Regel die Ursache für einen Streaming-Fehler in einer syslog-Datei finden. ErstellenSie einen Link dahin im Abschnitt Steps (Schritte).

Die folgenden Fehler treten häufig bei Streaming-Clustern auf.

Themen• Is data being sent to the mapper in the wrong format? (p. 470)• Is your script timing out? (p. 470)• Are you passing in invalid streaming arguments? (p. 470)• Did your script exit with an error? (p. 471)

Is data being sent to the mapper in the wrong format?Suchen Sie in der syslog-Datei nach einer Fehlermeldung über einen fehlgeschlagenen Aufgabenversuchin den Protokolldateien der Aufgabenversuche, um dies zu überprüfen. Weitere Informationen finden Sie imView Log Files (p. 349).

Is your script timing out?Die standardmäßige Zeitbeschränkung für ein Mapper- oder Reducer-Skript beträgt 600 Sekunden. WennIhr Skript mehr Zeit benötigt, schlägt der Aufgabenversuch fehl. Suchen Sie in der syslog-Datei nacheinem fehlgeschlagenen Aufgabenversuch in den Protokolldateien der Aufgabenversuche, um dies zuüberprüfen. Weitere Informationen finden Sie im View Log Files (p. 349).

Sie können die Zeitbeschränkung ändern, indem Sie einen neuen Wert für die Konfigurationseinstellungmapred.task.timeout festlegen. Diese Einstellung gibt die Anzahl von Millisekunden an, nach derAmazon EMR eine Aufgabe beendet, die keine Eingabe gelesen, Ausgabe geschrieben oder ihre Status-Zeichenfolge nicht aktualisiert hat. Sie können diesen Wert aktualisieren, indem Sie ein zusätzlichesStreaming-Argument -jobconf mapred.task.timeout=800000 übergeben.

Are you passing in invalid streaming arguments?Hadoop-Streaming unterstützt nur die folgenden Argumente. Wenn Sie andere als die unten aufgeführtenArgumente übergeben, schlägt der Cluster fehl.

-blockAutoGenerateCacheFiles -cacheArchive -cacheFile -cmdenv -combiner -debug -input -inputformat-inputreader -jobconf -mapper-numReduceTasks-output -outputformat -partitioner-reducer-verbose

470

Page 478: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideCustom JAR Cluster Errors

Darüber hinaus erkennt Hadoop-Streaming nur in Java-Syntax übergebene Argumente, also mit einemvorangestellten einzelnen Bindestrich. Wenn Argumente mit vorangestelltem doppelten Bindestrichübergeben werden, schlägt der Cluster fehl.

Did your script exit with an error?Wenn Ihr Mapper- oder Reducer-Skript mit einem Fehler beendet wird, können Sie den Fehler in derstderr-Datei des fehlgeschlagenen Aufgabenversuchs in den Protokolldateien der Aufgabenversucheermitteln. Weitere Informationen finden Sie im View Log Files (p. 349).

Custom JAR Cluster ErrorsDie folgenden Fehler treten häufig bei benutzerdefinierten JAR-Clustern auf.

Themen• Is your JAR throwing an exception before creating a job? (p. 471)• Is your JAR throwing an error inside a map task? (p. 471)

Is your JAR throwing an exception before creating a job?Wenn das Hauptprogramm des benutzerdefinierten JAR-Clusters einen Ausnahmefehler beim Erstellendes Hadoop-Auftrags ausgibt, sehen Sie sich am besten die Datei syslog der Schrittprotokolle an. WeitereInformationen finden Sie im View Log Files (p. 349).

Is your JAR throwing an error inside a map task?Wenn Ihr benutzerdefinierte JAR-Cluster und Mapper einen Ausnahmefehler beim Verarbeiten vonEingabedaten ausgibt, sehen Sie sich am besten die Datei syslog der Aufgabenversuchsprotokolle an.Weitere Informationen finden Sie im View Log Files (p. 349).

Hive Cluster ErrorsDen Grund für einen Hive-Fehler finden Sie in der Regel in der Datei syslog, auf die Sie im BereichSteps (Schritte) zugreifen können. Wenn Sie das Problem nicht ermitteln können, sehen Sie sich dieFehlermeldung für die versuchte Hadoop-Aufgabe an. Erstellen Sie einen Link dahin im Abschnitt TaskAttempts (Aufgaben-Versuche).

Die folgenden Fehler treten häufig bei Hive-Clustern auf.

Themen• Are you using the latest version of Hive? (p. 471)• Did you encounter a syntax error in the Hive script? (p. 472)• Did a job fail when running interactively? (p. 472)• Are you having trouble loading data to or from Amazon S3 into Hive? (p. 472)

Are you using the latest version of Hive?Die neueste Version von Hive verfügt über alle aktuellen Patches und Fehlerbehebungen und kann IhrProblem lösen.

471

Page 479: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVPC Errors

Did you encounter a syntax error in the Hive script?Wenn ein Schritt fehlschlägt, sehen Sie sich die Datei stdout der Protokolle für den Schritt an, die dasHive-Skript ausgeführt hat. Wenn der Fehler nicht vorhanden ist, sehen Sie sich die Datei syslog derAufgabenprotokolle für die versuchte Aufgabe an, die fehlgeschlagen ist. Weitere Informationen finden Sieim View Log Files (p. 349).

Did a job fail when running interactively?Wenn Sie Hive interaktiv auf dem Master-Knoten ausführen und der Cluster fehlschlägt, sehen Sie sich dieEinträge syslog im Aufgabenprotokoll für die fehlgeschlagene Aufgabe an. Weitere Informationen findenSie im View Log Files (p. 349).

Are you having trouble loading data to or from Amazon S3 intoHive?Falls Sie Probleme mit dem Zugriff auf Daten in Amazon S3 haben, überprüfen Sie zuerst die möglichenUrsachen, die in Are you experiencing trouble loading data to or from Amazon S3? (p. 460) aufgeführtsind. Wenn keines dieser Probleme die Ursache ist, ziehen Sie die folgenden, für Hive spezifischenOptionen in Betracht.

• Make sure you are using the latest version of Hive, which has all the current patches and bug fixes thatmay resolve your issue. For more information, see Apache Hive.

• Using INSERT OVERWRITE requires listing the contents of the Amazon S3 bucket or folder. This isan expensive operation. If possible, manually prune the path instead of having Hive list and delete theexisting objects.

• If you use Amazon EMR release versions earlier than 5.0, you can use the following command in HiveQLto pre-cache the results of an Amazon S3 list operation locally on the cluster:

set hive.optimize.s3.query=true;

• Use static partitions where possible.• In some versions of Hive and Amazon EMR, it is possible that using ALTER TABLES will fail because the

table is stored in a different location than expected by Hive. The solution is to add or update following in /home/hadoop/conf/core-site.xml:

<property> <name>fs.s3n.endpoint</name> <value>s3.amazonaws.com</value></property>

VPC ErrorsDie folgenden Fehler treten häufig bei der VPC-Konfiguration in Amazon EMR auf.

Themen• Invalid Subnet Configuration (p. 473)• Missing DHCP Options Set (p. 473)• Permissions Errors (p. 473)• Errors That Result in START_FEHLGESCHLAGEN (p. 474)• Cluster Mit Fehlern beendet and NameNode Fails to Start (p. 474)

472

Page 480: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVPC Errors

Invalid Subnet ConfigurationAuf der Seite Cluster Details (Cluster-Details) im Feld Status sehen Sie eine Fehlermeldung wie folgende:

The subnet configuration was invalid: Cannot find route to InternetGateway inmain RouteTable rtb-id for vpc vpc-id.

Um dieses Problem zu lösen, müssen Sie ein Internet-Gateway erstellen und Ihre VPC anfügen. WeitereInformationen finden Sie unter Hinzufügen eines Internet-Gateways zu Ihrer VPC.

Alternativ stellen Sie sicher, dass Sie Ihre VPC mit Enable DNS resolution (DNS-Auflösung aktivieren) undEnable DNS hostname support (DNS-Hostnamen-Unterstützung aktivieren) aktiviert konfiguriert haben.Weitere Informationen finden Sie unter Using DNS with Your VPC.

Missing DHCP Options SetSie sehen einen Schrittfehler im Cluster-Systemprotokoll (syslog) mit einer Fehlermeldung ähnlich derfolgenden:

ERROR org.apache.hadoop.security.UserGroupInformation (main):PriviledgedActionException as:hadoop (auth:SIMPLE) cause:java.io.IOException:org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Applicationwith id 'application_id' doesn't exist in RM.

–oder–

ERROR org.apache.hadoop.streaming.StreamJob (main): Error Launching job :org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException: Applicationwith id 'application_id' doesn't exist in RM.

Um dieses Problem zu lösen, müssen Sie eine VPC mit einer DHCP-Optionsliste konfigurieren, derenParameter auf die folgenden Werte festgelegt sind:

Note

Wenn Sie die Region AWS GovCloud (US-West) verwenden, legen Sie für „domain-name“ us-gov-west-1.compute.internal anstelle des im folgenden Beispiel verwendeten Werts fest.

• domain-name = ec2.internal

Use ec2.internal if your region is USA Ost (Nord-Virginia). For other regions, useregion-name.compute.internal. For example in us-west-2, use domain-name=us-west-2.compute.internal.

• domain-name-servers = AmazonProvidedDNS

Weitere Informationen finden Sie unter DHCP-Options-Sets.

Permissions ErrorsEin Fehler im stderr-Protokoll für einen Schritt gibt an, dass eine Amazon S3-Ressource nicht über dieentsprechenden Berechtigungen verfügt. Dies ist ein Fehler 403, der wie folgt aussieht:

Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: REQUEST_ID

Wenn die ActionOnFailure auf TERMINATE_JOB_FLOW festgelegt ist, wird der Cluster mit dem StatusSHUTDOWN_COMPLETED_WITH_ERRORS beendet.

473

Page 481: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVPC Errors

Möglichkeiten, um dieses Problem zu beheben, sind beispielsweise:

• If you are using an Amazon S3 bucket policy within a VPC, make sure to give access to all buckets bycreating a VPC endpoint and selecting Allow all under the Policy option when creating the endpoint.

• Make sure that any policies associated with S3 resources include the VPC in which you launch thecluster.

• Try running the following command from your cluster to verify you can access the bucket

hadoop fs -copyToLocal s3://path-to-bucket /tmp/

• You can get more specific debugging information by setting thelog4j.logger.org.apache.http.wire parameter to DEBUG in /home/hadoop/conf/log4j.properties file on the cluster. You can check the stderr log file after trying to access thebucket from the cluster. The log file will provide more detailed information:

Access denied for getting the prefix for bucket - us-west-2.elasticmapreduce with path samples/wordcount/input/15/03/25 23:46:20 DEBUG http.wire: >> "GET /?prefix=samples%2Fwordcount%2Finput%2F&delimiter=%2F&max-keys=1 HTTP/1.1[\r][\n]"15/03/25 23:46:20 DEBUG http.wire: >> "Host: us-west-2.elasticmapreduce.s3.amazonaws.com[\r][\n]"

Errors That Result in START_FEHLGESCHLAGENVor AMI 3.7.0 für vpcs, wo ein Hostname festgelegt ist, Amazon EMR ordnet die internenHostnamen des Subnetzes mit benutzerdefinierten Domänenadressen wie folgt zu:ip-X.X.X.X.customdomain.com.tld. Wenn der Hostname zum Beispiel ip-10.0.0.10 undder VPC hat die Domänenname-Option auf customdomain.com eingestellt, der daraus resultierendeHostname, der von Amazon EMR wäre würde wäre ip-10.0.1.0.customdomain.com. Ein Eintragwird hinzugefügt in /etc/hosts um den Hostnamen auf 10.0.0.10 zu beheben. Dieses Verhalten wird abAMI 3.7.0 geändert. Jetzt erkennt Amazon EMR die DHCP-Konfiguration der VPC vollständig an. Bislangkonnten Kunden eine Zuweisung des Hostnamens auch mit einer Bootstrap-Aktion angeben.

Wenn Sie dieses Verhalten beibehalten möchten, müssen Sie die Einrichtung der DNS- undWeiterleitungsauflösung angeben, die Sie für die benutzerdefinierte Domäne benötigen.

Cluster Mit Fehlern beendet and NameNode Fails to StartBeim Starten eines EMR-Clusters in einer VPC, die einen benutzerdefinierten DNS-Domänennamenverwendet, tritt bei Ihrem Cluster möglicherweise ein Fehler mit der folgende Fehlermeldung in der Konsoleauf:

Terminated with errors On the master instance(instance-id), bootstrap action 1 returned a non-zero return code

Der Fehler resultiert daraus, dass der NameNode nicht starten konnte. Dies führt zu den folgenden Fehler,die in den Namensprotokollprotokollen gefunden wurden, deren Amazon S3 URI ist des Formulars:s3://mybucket/logs/cluster-id/daemons/master instance-id/hadoop-hadoop-namenode-master node hostname.log.gz:

2015-07-23 20:17:06,266 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem (main): Encountered exception loading fsimage java.io.IOException: NameNode is not formatted. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:212)

474

Page 482: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAWS GovCloud (US-West) Errors

at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1020) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:739) at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:537) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:596) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:765) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:749) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1441) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)

Der Grund hierfür ist ein potenzielles Problem, bei dem eine EC2 Instance mehrere Gruppen vonvollständig qualifizierten Domänennamen beim Starten von EMR-Clustern in einer VPC besitzen kann,die sowohl einen von AWS bereitgestellten DNS-Server als auch einen benutzerdefinierten vom Benutzerbereitgestellten DNS-Server verwendet. Wenn der vom Benutzer bereitgestellte DNS-Server keineZeigerdatensätze (PTR) für die A-Datensätze bereitstellt, die zum Angeben von Knoten in einem EMR-Cluster dienen, können die so konfigurierten Cluster nicht starten. Die Lösung besteht darin, einen PTR-Datensatz für jeden A-Datensatz hinzuzufügen, der erstellt wird, wenn eine EC2 Instance in einem derSubnetze der VPC gestartet wird.

AWS GovCloud (US-West) ErrorsDie Region AWS GovCloud (US-West) unterscheidet sich von anderen Regionen in den BereichenSicherheit, Konfiguration und Standardeinstellungen. Verwenden Sie daher die folgende Checkliste zurBehebung von Amazon EMR-Fehlern, die speziell in der Region AWS GovCloud (US-West) auftreten,bevor Sie allgemeinen Hinweisen zur Behebung von Problemen folgen.

• Verify that your IAM roles are correctly configured. For more information, see Configure IAM ServiceRoles for Amazon EMR Permissions to AWS Services and Resources (p. 223).

• Ensure that your VPC configuration has correctly configured DNS resolution/hostname support, InternetGateway, and DHCP Option Set parameters. For more information, see VPC Errors (p. 472).

Wenn diese Schritte das Problem nicht lösen, fahren Sie mit den Schritten zur Problembehebungallgemeiner Amazon EMR-Fehler fort. Weitere Informationen finden Sie im Common Errors in AmazonEMR (p. 459).

Other IssuesDo you not see the cluster you expect in the Cluster List page orin results returned from ListClusters API?Überprüfen Sie Folgendes:

• The cluster age is less than two months. Amazon EMR preserves metadata information about completedclusters for your reference, at no charge, for two months. The console does not provide a way to deletecompleted clusters from the console; these are automatically removed for you after two months.

• You have permissions to view the cluster.• You are viewing the correct region.

475

Page 483: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideBeheben von Problemen mit einem

Lake Formation Sternhaufen

Beheben von Problemen mit einem Lake FormationSternhaufen

Dieser Abschnitt führt Sie durch die Fehlerbehebung bei Probleme, die häufig bei der Verwendung vonAmazon EMR mit AWS Lake Formation auftreten.

Data Lake-Zugriff nicht zulässigSie müssen sich explizit für die Datenfilterung nach Amazon EMR -Cluster, bevor Sie Daten in Ihrem DataLake analysieren und verarbeiten können. Wenn der Datenzugriff fehlschlägt, sehen Sie eine generischeAccess is not allowed Nachricht in der Ausgabe Ihrer Notebook-Einträge.

So aktivieren Sie Datenfilterung nach Amazon EMR, siehe Datenfilterung zulassen für Amazon EMR in derAWS Lake Formation Entwicklerhandbuch für Anweisungen.

SitzungsablaufDas Sitzungs-Timeout für EMR Notebooks und Zeppelin wird durch die Einstellung Maximum CLI/APIsession duration der IAM-Rolle zur Lake Formation gesteuert. Der Standardwert für diese Einstellungist eine Stunde. Wenn ein Sitzungs-Timeout auftritt, wird in der Ausgabe Ihrer Notebook-Einträge diefolgende Meldung angezeigt, wenn Sie versuchen, Spark SQL-Befehle auszuführen.

Error 401 HTTP ERROR: 401 Problem accessing /sessions/2/statements. Reason: JWT token included in request failed validation. Powered by Jetty:// 9.3.24.v20180605 org.springframework.web.client.HttpClientErrorException: 401 JWT token included in request failed validation…

Aktualisieren Sie die Seite, um Ihre Sitzung zu validieren. Sie werden aufgefordert, sich erneut zuauthentifizieren, indem Sie Ihre IdP und zurück zum Notizbuch geleitet werden. Sie können nach dererneuten Authentifizierung weiter Abfragen ausführen.

Keine Berechtigungen für Benutzer in derangeforderten TabelleBeim Versuch, auf eine Tabelle zuzugreifen, auf die Sie keinen Zugriff haben, wird in der AusgabeIhrer Notebook-Einträge die folgende Ausnahme angezeigt, wenn Sie versuchen, Spark SQL-Befehleauszuführen.

org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to fetch table table. Resource does not exist or requester is not authorized to access requested permissions. (Service: AWSGlue; Status Code: 400; Error Code: AccessDeniedException; Request ID: …

Um auf die Tabelle zuzugreifen, müssen Sie dem Benutzer Zugriff gewähren, indem Sie die mit dieserTabelle verknüpften Berechtigungen in Lake Formation aktualisieren.

Einfügen, Erstellen und Ändern von Tabellen: In Betanicht unterstütztDas Einfügen von Daten in Tabellen in Datenbanken und das Erstellen und Ändern von Datenbanken,die durch Lake Formation-Richtlinien geschützt sind, wird nicht unterstützt. Wenn Sie diese Operationen

476

Page 484: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideEinfügen, Erstellen und Ändern vonTabellen: In Beta nicht unterstützt

ausführen, wird in der Ausgabe Ihrer Notebook-Einträge die folgende Ausnahme angezeigt, wenn Sieversuchen, Spark SQL-Befehle auszuführen:

java.io.IOException: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: …

Weitere Informationen finden Sie unter Einschränkungen der Amazon EMR-Integration in AWS LakeFormation.

477

Page 485: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUmfassendes Amazon EMR-Java-Quellcodebeispiel

Schreiben von Anwendungen, dieCluster starten und verwalten

Themen• Umfassendes Amazon EMR-Java-Quellcodebeispiel (p. 478)• Grundlegende Konzepte für API-Aufrufe (p. 481)• Verwenden von SDKs zum Aufrufen von Amazon EMR APIs (p. 482)• Verwalten von Amazon EMR-Service Limits (p. 484)

Sie können auf die Funktionalität der Amazon EMR-API zugreifen, indem Sie Wrapper-Funktionen in einerder AWS SDKs aufrufen. Das AWS SDKs bietet sprachspezifische Funktionen, die die API des Webserviceumschließen und die Verbindung mit dem Webservice vereinfachen, wobei viele Verbindungsdetails für Sieverarbeitet werden. Weitere Informationen zum Aufrufen von Amazon EMR mit einer der SDKs finden Sieunter Verwenden von SDKs zum Aufrufen von Amazon EMR APIs (p. 482).

Important

Die maximale Anforderungsrate für Amazon EMR beträgt eine Anforderung alle zehn Sekunden.

Umfassendes Amazon EMR-Java-Quellcodebeispiel

Entwickler können die Amazon EMR-API über benutzerdefinierten Java-Code aufrufen, um die überdie Amazon EMR-Konsole und CLI verfügbaren Funktionen zu nutzen. Dieser Abschnitt enthält diekompletten Schritte zur Installation von AWS Toolkit for Eclipse und voll funktionsfähigen Java-Quellcodezum Hinzufügen von Schritten zu einem Amazon EMR-Cluster.

Note

Dieses Beispiel konzentriert sich auf Java, Amazon EMR unterstützt jedoch auch mehrereProgrammiersprachen mit einer Sammlung von Amazon EMR SDKs. Weitere Informationen findenSie unter Verwenden von SDKs zum Aufrufen von Amazon EMR APIs (p. 482).

In diesem Java-Beispiel wird gezeigt, wie die folgenden Aufgaben mit der Amazon EMR-API durchgeführtwerden:

• Abrufen von AWS-Anmeldeinformationen und Senden der Informationen an Amazon EMR für API-Aufrufe

• Konfigurieren eines neuen, benutzerdefinierten Schritts und eines neuen, vordefinierten Schritts• Hinzufügen neuer Schritte zu einem vorhandenen Amazon EMR-Cluster• Abrufen des Cluster-Schritts IDs von einem ausgeführten Cluster

Note

In diesem Beispiel wird gezeigt, wie Sie Schritte zu einem vorhandene, Cluster hinzufügen. Daherist ein aktiver Cluster in Ihrem Konto erforderlich.

Bevor Sie beginnen, installieren Sie die Version von Eclipse IDE for Java EE Developers, die IhrerPlattform entspricht. Weitere Informationen erhalten Sie unter Eclipse Downloads.

478

Page 486: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUmfassendes Amazon EMR-Java-Quellcodebeispiel

Als Nächstes installieren Sie das Database Development Plug-in für Eclipse.

So installieren Sie das Database Development Plug-in für Eclipse

1. Öffnen Sie die Eclipse-IDE.2. Wählen Sie Help (Hilfe) und dann Install New Software (Neue Software installieren) aus.3. Geben Sie im Feld Work with: (Arbeiten mit:) http://download.eclipse.org/releases/

kepler oder den Pfad ein, der der Versionsnummer Ihrer Eclipse IDE entspricht.4. Wählen Sie in der Liste Database Development (Datenbankentwicklung) und Finish (Fertig stellen)

aus.5. Starten Sie Eclipse neu, wenn Sie dazu aufgefordert werden.

Als Nächstes installieren Sie Toolkit for Eclipse, um hilfreiche, vorkonfigurierte Quellcode-Projektvorlagennutzen zu können.

So installieren Sie das Toolkit for Eclipse

1. Öffnen Sie die Eclipse-IDE.2. Wählen Sie Help (Hilfe) und dann Install New Software (Neue Software installieren) aus.3. Geben Sie im Feld Work with: (Arbeiten mit:) https://aws.amazon.com/eclipse ein.4. Wählen Sie in der Liste AWS Toolkit for Eclipse und Finish (Fertig stellen) aus.5. Starten Sie Eclipse neu, wenn Sie dazu aufgefordert werden.

Als Nächstes erstellen Sie ein neues AWS-Java-Projekt und führen den Beispiel-Java-Quellcode aus.

So erstellen Sie ein neues AWS-Java-Projekt

1. Öffnen Sie die Eclipse-IDE.2. Wählen Sie File (Datei), New (Neu) und Other (Sonstiges) aus.3. Wählen Sie im Dialogfeld Select a wizard (Einen Assistenten auswählen) AWS Java Project und Next

(Weiter) aus.4. Geben Sie im Dialogfeld New AWS Java Project (Neus AWS-Java-Projekt) im Feld Project name:

den Namen Ihres neuen Projekts ein, zum Beispiel EMR-sample-code.5. Wählen Sie Configure AWS accounts… (AWS-Konten konfigurieren...) aus und geben Sie Ihren

öffentlichen und privaten Zugriffsschlüssel ein. Wählen Sie dann Finish (Fertig stellen) aus.Weitere Informationen zum Erstellen von Zugriffsschlüsseln finden Sie unter Wie erhalte ichSicherheitsanmeldeinformationen? in Allgemeine Amazon Web Services-Referenz.

Note

Sie sollten Zugriffsschlüssel nicht direkt in den Code einbetten. Das Amazon EMR-SDKermöglicht es Ihnen, Zugriffsschlüssel in bekannten Speicherorten abzulegen, sodass Sie sienicht in den Code integrieren müssen.

6. Klicken Sie im neuen Java-Projekt mit der rechten Maustaste auf den src--Ordner und wählen Sie dannNew (Neu) und Class (Klasse) aus.

7. Geben Sie im Dialogfeld Java Class (Java-Klasse) in das Feld Name einen Namen für Ihre neueKlasse ein (z. B. main).

8. Wählen Sie im Abschnitt Which method stubs would you like to create? (Welche Method-Stubsmöchten Sie erstellen?) public static void main (String [] args) und Finish (Fertig stellen) aus.

9. Geben Sie den Java-Quellcode in Ihrer neuen Klasse ein und fügen Sie die entsprechenden import(Importieren)-Anweisungen für die Klassen und Methoden des Beispiels hinzu. Den vollständigenQuellcode finden Sie unten.

479

Page 487: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideUmfassendes Amazon EMR-Java-Quellcodebeispiel

Note

Ersetzen Sie im folgenden Beispiel-Code die Beispiel-Cluster-ID (JobFlowId). J-xxxxxxxxx,mit einer gültigen Cluster-ID in Ihrem Konto, die entweder in der AWS Management Consoleoder mithilfe des folgenden AWS-CLI-Befehls gefunden wurde:

aws emr list-clusters --active | grep "Id"

Ersetzen Sie außerdem den Amazon S3-Beispielpfad, s3://Pfad/to/my/jarfoldermitdem gültigen Pfad zu Ihrer JAR-Datei. Ersetzen Sie schließlich den Beispiel-Klassennamen,com.my.Haupt1, mit dem richtigen Namen der Klasse in Ihrer JAR, falls zutreffend.

import com.amazonaws.AmazonClientException;import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.AWSStaticCredentialsProvider;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;import com.amazonaws.services.elasticmapreduce.model.*;import com.amazonaws.services.elasticmapreduce.util.StepFactory;

public class Main {

public static void main(String[] args) { AWSCredentials credentials_profile = null; try { credentials_profile = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException( "Cannot load credentials from .aws/credentials file. " + "Make sure that the credentials file exists and the profile name is specified within it.", e); } AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials_profile)) .withRegion(Regions.US_WEST_1) .build(); // Run a bash script using a predefined step in the StepFactory helper class StepFactory stepFactory = new StepFactory(); StepConfig runBashScript = new StepConfig() .withName("Run a bash script") .withHadoopJarStep(stepFactory.newScriptRunnerStep("s3://jeffgoll/emr-scripts/create_users.sh")) .withActionOnFailure("CONTINUE");

// Run a custom jar file as a step HadoopJarStepConfig hadoopConfig1 = new HadoopJarStepConfig() .withJar("s3://path/to/my/jarfolder") // replace with the location of the jar to run as a step .withMainClass("com.my.Main1") // optional main class, this can be omitted if jar above has a manifest .withArgs("--verbose"); // optional list of arguments to pass to the jar StepConfig myCustomJarStep = new StepConfig("RunHadoopJar", hadoopConfig1);

AddJobFlowStepsResult result = emr.addJobFlowSteps(new AddJobFlowStepsRequest() .withJobFlowId("j-xxxxxxxxxxxx") // replace with cluster id to run the steps .withSteps(runBashScript,myCustomJarStep)); System.out.println(result.getStepIds());

480

Page 488: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideGrundlegende Konzepte für API-Aufrufe

}}

10. Wählen Sie Run (Ausführen), Run As (Ausführen als) und Java Application (Java-Anwendung) aus.11. Wenn das Beispiel korrekt ausgeführt wird, wird eine Liste der IDs für die neuen Schritte im Eclipse

IDE-Konsolenfenster angezeigt. Die korrekte Ausgabe sieht folgendermaßen oder ähnlich aus:

[s-39BLQZRJB2E5E, s-1L6A4ZU2SAURC]

Grundlegende Konzepte für API-AufrufeThemen

• Endpunkte für Amazon EMR (p. 481)• Angeben von Cluster-Parametern in Amazon EMR (p. 481)• Availability Zones in Amazon EMR (p. 482)• So verwenden Sie weitere Dateien und Bibliotheken in Amazon EMR-Clustern (p. 482)

Wenn Sie eine Anwendung entwickeln, die Amazon EMR-API-Aufrufe durchführt, gibt es mehrereKonzepte, die Sie beim Aufruf einer der Wrapper-Funktionen in einem SDK einsetzen können.

Endpunkte für Amazon EMREin Endpunkt ist eine URL, die als Eintrittspunkt für einen Webservice dient. Jede Webserviceanforderungmuss einen Endpunkt umfassen. Der Endpunkt gibt die AWS-Region an, in der Cluster erstellt, beschriebenoder beendet werden. Er hat das Format elasticmapreduce.regionname.amazonaws.com. WennSie den allgemeinen Endpunkt (elasticmapreduce.amazonaws.com) angeben, leitet Amazon EMRIhre Anforderung an einen Endpunkt in der Standardregion weiter. Für Konten, die am oder nach dem 8.März 2013 erstellt wurden, lautet die Standardregion "us-west-2"; für ältere Konten ist die Standardregion"us-east-1".

Weitere Informationen zu Amazon EMR-Endpunkten finden Sie unter Regionen und Endpunkte imAllgemeine Amazon Web Services-Referenz.

Angeben von Cluster-Parametern in Amazon EMRDie Instances-Parameter ermöglichen das Konfigurieren des Typs und der Anzahl der EC2-Instanceszum Erstellen von Knoten für die Verarbeitung der Daten. Hadoop verteilt die Verarbeitung der Daten übermehrere Cluster-Knoten. Der Master-Knoten ist für die Integrität der Core- und Aufgabenknoten sowiefür das Abfragen des Auftragsergebnisstatus der Knoten verantwortlich. Die Core- und Aufgabenknotenerledigen die tatsächliche Verarbeitung der Daten. Wenn Sie einen Cluster mit einem Knoten haben, agiertdieser als Master-Knoten und als Core-Knoten.

Der KeepJobAlive-Parameter in einer RunJobFlow-Anforderung bestimmt, ob der Cluster beendetwird, wenn der Cluster keine auszuführenden Schritte mehr hat. Legen Sie diesen Wert auf False fest,wenn Sie wissen, dass der Cluster wie erwartet ausgeführt wird. Wenn Sie Fehler im Auftragsverlaufbeheben und Schritte hinzufügen, während die Cluster-Ausführung ausgesetzt ist, setzen Sie den Wert aufTrue. Dies reduziert die Zeit und die Kosten für das Hochladen der Ergebnisse in Amazon Simple StorageService (Amazon S3), nur um den Vorgang zu wiederholen, nachdem ein Schritt geändert wurde, um denCluster neu zu starten.

Wenn KeepJobAlive nach dem erfolgreichen Abschluss der Arbeit eines Clusters true ist, müssenSie eine TerminateJobFlows-Anforderung senden. Andernfalls wird der Cluster weiter ausgeführt undgeneriert AWS-Gebühren.

481

Page 489: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideAvailability Zones in Amazon EMR

Weitere Informationen zu Parametern, die nur für RunJobFlow gelten, finden Sie unter RunJobFlow.Weitere Informationen zu den allgemeinen Parametern in der Anforderung finden Sie unter AllgemeineAnforderungsparameter.

Availability Zones in Amazon EMRAmazon EMR arbeitet mit EC2-Instances als Knoten zur Cluster-Verarbeitung. Diese EC2-Instancesarbeiten mit Standorten, die aus Regionen und Availability Zones bestehen. Regionen sind verteilt undbefinden sich in unterschiedlichen geografischen Zonen. Availability Zones sind eigenständige Standorteinnerhalb einer Region, die von Ausfällen anderen Availability Zones isoliert sind. Jede Availability Zonebietet eine kostengünstige Netzwerkkonnektivität mit geringer Latenz zu anderen Availability Zones in dergleichen Region. Eine Liste der für Amazon EMR unterstützten Regionen und Endpunkte finden Sie unterRegionen und Endpunkte im Allgemeine Amazon Web Services-Referenz.

Der AvailabilityZone-Parameter gibt den grundlegenden Speicherort des Clusters an. DieserParameter ist optional. Wir empfehlen seine Verwendung. Wenn AvailabilityZone nicht angegebenist, wählt Amazon EMR automatisch den besten AvailabilityZone-Wert für den Cluster aus.Der Parameter kann z. B. dann nützlich sein, wenn Sie Ihre Instances mit anderen aktiven Instancesgemeinsam platzieren möchten und Ihr Cluster Daten aus diesen Instances lesen oder schreiben muss.Weitere Informationen finden Sie unter Amazon EC2-Benutzerhandbuch für Linux-Instances.

So verwenden Sie weitere Dateien und Bibliotheken inAmazon EMR-ClusternEs kann vorkommen, dass Sie weiteren Dateien oder benutzerdefinierte Bibliotheken für Ihre Mapper oderReducer-Anwendungen verwenden möchten. Sie können beispielsweise eine Bibliothek nutzen, die einePDF-Datei in eine Textdatei konvertiert.

So speichern Sie eine Datei für den Mapper oder Reducer bei der Verwendung von Hadoop-Streaming zwischen

• Fügen Sie im JAR-args-Feld das folgende Argument hinzu:

-cacheFile s3://bucket/path_to_executable#local_path

Die Datei (local_path) befindet sich im Arbeitsverzeichnis des Mappers. Dieser kann auf die Dateiverweisen.

Verwenden von SDKs zum Aufrufen von AmazonEMR APIs

Themen• Verwenden des AWS SDK for Java zum Erstellen eines Amazon EMR-Clusters (p. 483)

Das AWS SDKs stellt Funktionen bereit, die die API umschließen und viele der Verbindungsdetailsübernehmen, wie zum Beispiel die Berechnung von Signaturen, die Verarbeitung vonAnforderungswiederholungen und die Fehlerbehandlung. Das SDKs enthält auch Beispiel-Code, Tutorialsund andere Ressourcen, die Ihnen den Einstieg in das Schreiben von Anwendungen erleichtern, die AWSaufrufen. Durch Aufrufen der Wrapper-Funktionen in einem SDK kann der Prozess zum Schreiben einerAWS-Anwendung erheblich vereinfacht werden.

482

Page 490: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwenden des AWS SDK for Java zumErstellen eines Amazon EMR-Clusters

Weitere Informationen zum Herunterladen und Verwenden der AWS SDKs finden Sie unter SDKs unterTools für Amazon Web Services.

Verwenden des AWS SDK for Java zum Erstelleneines Amazon EMR-ClustersDas AWS SDK for Java bietet drei Pakete mit Amazon EMR-Funktionen:

• com.amazonaws.services.elasticmapreduce• com.amazonaws.services.elasticmapreduce.model• com.amazonaws.services.elasticmapreduce.util

Weitere Informationen zu diesen Paketen finden Sie in der AWS SDK for Java API Reference.

Das folgende Beispiel veranschaulicht, wie das SDKs die Programmierung mit Amazon EMR vereinfachenkann. Das folgende Codebeispiel verwendet das StepFactory-Objekt (eine Hilfsklasse zum Erstellenvon typischen Amazon EMR-Schritttypen) zum Erstellen eines interaktiven Hive-Clusters mit aktiviertemDebugging.

Note

Die in diesem Beispiel verwendeten statischen Anmeldeinformationen laufen möglicherweise ab.Verwenden Sie keinen Anbieter für statische Anmeldeinformationen für die Verwaltung Ihrer EMR-Cluster, wenn die Anmeldeinformationen automatisch aktualisiert werden müssen.

import com.amazonaws.AmazonClientException;import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.AWSStaticCredentialsProvider;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;import com.amazonaws.services.elasticmapreduce.model.*;import com.amazonaws.services.elasticmapreduce.util.StepFactory;

public class Main {

public static void main(String[] args) { AWSCredentials credentials_profile = null; try { credentials_profile = new ProfileCredentialsProvider("default").getCredentials(); // specifies any named profile in .aws/credentials as the credentials provider } catch (Exception e) { throw new AmazonClientException( "Cannot load credentials from .aws/credentials file. " + "Make sure that the credentials file exists and that the profile name is defined within it.", e); } // create an EMR client using the credentials and region specified in order to create the cluster AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials_profile)) .withRegion(Regions.US_WEST_1) .build(); // create a step to enable debugging in the AWS Management Console StepFactory stepFactory = new StepFactory(); StepConfig enabledebugging = new StepConfig() .withName("Enable debugging")

483

Page 491: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideVerwalten von Amazon EMR-Service Limits

.withActionOnFailure("TERMINATE_JOB_FLOW") .withHadoopJarStep(stepFactory.newEnableDebuggingStep()); // specify applications to be installed and configured when EMR creates the cluster Application hive = new Application().withName("Hive"); Application spark = new Application().withName("Spark"); Application ganglia = new Application().withName("Ganglia"); Application zeppelin = new Application().withName("Zeppelin"); // create the cluster RunJobFlowRequest request = new RunJobFlowRequest() .withName("MyClusterCreatedFromJava") .withReleaseLabel("emr-5.20.0") // specifies the EMR release version label, we recommend the latest release .withSteps(enabledebugging) .withApplications(hive,spark,ganglia,zeppelin) .withLogUri("s3://path/to/my/emr/logs") // a URI in S3 for log files is required when debugging is enabled .withServiceRole("EMR_DefaultRole") // replace the default with a custom IAM service role if one is used .withJobFlowRole("EMR_EC2_DefaultRole") // replace the default with a custom EMR role for the EC2 instance profile if one is used .withInstances(new JobFlowInstancesConfig() .withEc2SubnetId("subnet-12ab34c56") .withEc2KeyName("myEc2Key") .withInstanceCount(3) .withKeepJobFlowAliveWhenNoSteps(true) .withMasterInstanceType("m4.large") .withSlaveInstanceType("m4.large"));

RunJobFlowResult result = emr.runJobFlow(request); System.out.println("The cluster ID is " + result.toString());

}

}

Sie müssen mindestens eine Service-Rolle und eine jobflow-Rolle entsprechend der EMR_DefaultRoleund EMR_EC2_DefaultRole übergeben. Sie können dies durch Aufrufen dieses AWS-CLI-Befehls für dasgleiche Konto erledigen. Überprüfen Sie zuerst, ob die Rollen bereits vorhanden sind:

aws iam list-roles | grep EMR

Sowohl die Instance-Profil- (EMR_EC2_DefaultRole) als auch die Service-Rolle (EMR_DefaultRole) werdenangezeigt, falls sie vorhanden sind:

"RoleName": "EMR_DefaultRole", "Arn": "arn:aws:iam::AccountID:role/EMR_DefaultRole" "RoleName": "EMR_EC2_DefaultRole", "Arn": "arn:aws:iam::AccountID:role/EMR_EC2_DefaultRole"

Wenn die Standardrollen nicht vorhanden sind, können Sie sie über den folgenden AWS-CLI-Befehlerstellen:

aws emr create-default-roles

Verwalten von Amazon EMR-Service LimitsThemen

484

Page 492: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideWas sind Amazon EMR-Service Limits?

• Was sind Amazon EMR-Service Limits? (p. 485)• So verwalten Sie Amazon EMR-Service Limits (p. 485)• Wann EMR-Ereignisse in CloudWatch eingerichtet werden sollen (p. 485)

Die Themen in diesem Abschnitt beschreiben EMR-Service Limits (Servicekontingente), wie sie inder AWS-Konsole verwaltet werden und wann es vorteilhaft ist, CloudWatch-Ereignisse anstelle vonServicekontingenten zu verwenden, um Cluster zu überwachen und Aktionen auszulösen.

Was sind Amazon EMR-Service Limits?Ihr AWS-Konto verfügt über Standard-Service Limits, auch als Kontingente bezeichnet, für jeden AWS-Service. Der EMR-Service verfügt über zwei Arten von Kontingenten:

• Limits für Ressourcen – Sie können EMR zum Erstellen von EC2-Ressourcen verwenden. Diese EC2-Ressourcen unterliegen jedoch Service Limits. Die Ressourceneinschränkungen in dieser Kategorie sind:• Die maximale Anzahl aktiver Cluster, die gleichzeitig ausgeführt werden können.• Die maximale Anzahl aktiver Instances pro Instance-Gruppe.

• -Limits für APIs – Bei der Verwendung von EMR APIs gelten die folgenden zwei Einschränkungen:• Burst-Limit: Dies ist die maximale Anzahl von API-Aufrufen, die Sie gleichzeitig durchführen können.

Beispielsweise wird die maximale Anzahl von AddInstanceFleet-API-Anforderungen, die Sie proSekunde vornehmen können, standardmäßig auf 5 Aufrufe/Sekunde festgelegt. Dies bedeutet,dass das Burst-Limit der AddInstanceFleet-API 5 Aufrufe/Sekunde beträgt, d. h. Sie maximal 5AddInstanceFleet-API-Aufrufe ausführen können. Sobald Sie jedoch das Burst-Limit verwenden,werden Ihre nachfolgenden Aufrufe durch das Ratenlimit begrenzt.

• Ratenlimit: Dies ist die Wiederauffüllrate der API-Burst-Kapazität. Beispiel: Die Auffüllrate vonAddInstanceFleet-Aufrufen wird standardmäßig auf 0,5 Aufrufe/Sekunde festgelegt. Das bedeutet,dass Sie nach Erreichen des Steigerungslimits mindestens 2 Sekunden (0,5 Aufrufe/Sekunde x 2Sekunden = 1 Aufruf) warten müssen, um den API-Aufruf durchzuführen. Wenn Sie vorher einenAufruf machen, werden Sie vom EMR-Webservice gedrosselt. Sie können zu jedem Zeitpunkt nur soviele Aufrufe wie die Burst-Kapazität durchführen, ohne gedrosselt zu werden. Jede weitere Sekunde,die Sie warten, erhöht sich Ihre Burst-Kapazität um 0,5 Aufrufe, bis das maximale Limit von 5 erreichtwird. Dies ist das Burst-Limit.

So verwalten Sie Amazon EMR-Service LimitsAWS-Servicekontingente sind eine AWS-Funktion, mit der Sie Ihre EMR-Service-Limits oder Kontingentevon einem zentralen Ort über die AWS-Konsole, eine API oder die CLI anzeigen und verwalten können.Weitere Informationen zum Anzeigen von Limits und zum Anfordern von Erhöhungen finden Sie unterAWS-Servicekontingente im Allgemeine Amazon Web Services-Referenz.

Bei einigen APIs ist die Einrichtung eines CloudWatch-Ereignisses möglicherweise eine bessere Optionals eine Erhöhung der Service Limits. Sie können auch Zeit sparen, indem Sie mit CloudWatch Alarmefestlegen und Erhöhungsanfragen proaktiv auslösen, bevor Sie das Service-Limit erreichen. WeitereInformationen finden Sie unter Wann EMR-Ereignisse in CloudWatch eingerichtet werden sollen (p. 485).

Wann EMR-Ereignisse in CloudWatch eingerichtetwerden sollenBei einigen Abfrage-APIs, wie z. B. DescribeCluster, DescribeStep und ListClusters, kann die Einrichtungeines couldWatch-Ereignisses die Reaktionszeit auf Änderungen reduzieren und Ihre Service Limitsfreigeben. Wenn Sie beispielsweise eine Lambda-Funktion so eingerichtet haben, dass sie ausgelöst

485

Page 493: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideWann EMR-Ereignisse in CloudWatch

eingerichtet werden sollen

wird, wenn sich der Status eines Clusters ändert, z. B. wenn ein Schritt abgeschlossen wird oder einCluster beendet wird, können Sie diesen Auslöser verwenden, um die nächste Aktion in Ihrem Workflowauszuführen, anstatt auf die nächste Abfrage zu warten. Wenn Sie jedoch dedizierte EC2-Instances oderLambda-Funktionen haben, die die EMR-API ständig nach Änderungen abfragen, verschwenden Sie nichtnur Datenverarbeitungsressourcen, sondern erreichen möglicherweise auch Ihre Service Limits.

Im Folgenden finden Sie einige Fälle, in denen Sie möglicherweise von einem Wechsel zu einerereignisgesteuerten Architektur profitieren.

Fall 1: Abfragen von EMR über DescribeCluster-API-Aufrufe fürdie SchrittvervollständigungExample Abfragen von EMR über DescribeCluster-API-Aufrufe für die Schrittvervollständigung

Ein gängiges Muster besteht darin, einen Schritt an einen aktiven Cluster zu senden und EMR überden Status des Schritts abzufragen, in der Regel über die DescribeCluster oder DescribeStep APIs.Dies kann auch mit minimaler Verzögerung erreicht werden, indem ein Ereignis der Amazon EMR-Schrittstatusänderung in Amazon CloudWatch Events oder Amazon EventBridge eingebunden wird.

Dieses Ereignis enthält die folgenden Informationen in seiner Nutzlast:

{ "version": "0", "id": "999cccaa-eaaa-0000-1111-123456789012", "detail-type": "EMR Step Status Change", "source": "aws.emr", "account": "123456789012", "time": "2016-12-16T20:53:09Z", "region": "us-east-1", "resources": [], "detail": { "severity": "ERROR", "actionOnFailure": "CONTINUE", "stepId": "s-ZYXWVUTSRQPON", "name": "CustomJAR", "clusterId": "j-123456789ABCD", "state": "FAILED", "message": "Step s-ZYXWVUTSRQPON (CustomJAR) in Amazon EMR cluster j-123456789ABCD (Development Cluster) failed at 2016-12-16 20:53 UTC." }}

In der Detail-Map könnte eine Lambda-Funktion "state", "stepId" und/oder "clusterId" analysieren, umrelevante Informationen zu finden.

Fall 2: Abfragen von EMR für verfügbare Cluster zum Ausführenvon WorkflowsExample Abfragen von EMR für verfügbare Cluster zum Ausführen von Workflows

Ein weiteres Muster, das Kunden, die mehrere Cluster ausführen, ist die Ausführung von Workflowsauf Clustern, sobald sie verfügbar sind. Wenn viele Cluster ausgeführt werden und ein Workflow aufeinem Cluster ausgeführt werden muss, der wartet, kann ein Muster darin bestehen, EMR mithilfe vonDescribeCluster- oder ListClusters-API-Aufrufen für verfügbare Cluster abzufragen. Eine alternativeMöglichkeit, um die Verzögerung zu verringern, die besteht darin, zu erkennen, wann ein Cluster für einenSchritt bereit ist, ist die Verarbeitung des Amazon EMR-Cluster-Statusänderungsereignisses in AmazonCloudWatch Events oder Amazon EventBridge.

486

Page 494: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management GuideWann EMR-Ereignisse in CloudWatch

eingerichtet werden sollen

Dieses Ereignis enthält die folgenden Informationen in seiner Nutzlast:

{ "version": "0", "id": "999cccaa-eaaa-0000-1111-123456789012", "detail-type": "EMR Cluster State Change", "source": "aws.emr", "account": "123456789012", "time": "2016-12-16T20:43:05Z", "region": "us-east-1", "resources": [], "detail": { "severity": "INFO", "stateChangeReason": "{\"code\":\"\"}", "name": "Development Cluster", "clusterId": "j-123456789ABCD", "state": "WAITING", "message": "Amazon EMR cluster j-123456789ABCD ..." }}

Für dieses Ereignis könnte eine Lambda-Funktion so eingerichtet werden, dass sie sofort einen wartendenWorkflow an einen Cluster sendet, sobald einer als WAITING (Warten) angezeigt wird.

Fall 3: Abfragen von EMR für die Cluster-BeendigungExample Abfragen von EMR für die Cluster-Beendigung

Ein Muster, das in der Regel von Kunden verwendet wird, die viele EMR-Cluster ausführen, fragt EMRnach, wenn ein Cluster beendet wurde, um zu verhindern, dass Arbeit an ihn gesendet wird. Dies wird inder Regel mithilfe der API-Aufrufe DescribeCluster und ListClusters erreicht. Eine weitere Möglichkeit, dieszu erreichen, kann das Amazon EMR-Cluster-Statusänderungsereignis in Amazon CloudWatch Eventsoder Amazon EventBridge sein.

Beim Beenden des Clusters sieht das ausgegebene Ereignis wie folgt aus:

{ "version": "0", "id": "1234abb0-f87e-1234-b7b6-000000123456", "detail-type": "EMR Cluster State Change", "source": "aws.emr", "account": "123456789012", "time": "2016-12-16T21:00:23Z", "region": "us-east-1", "resources": [], "detail": { "severity": "INFO", "stateChangeReason": "{\"code\":\"USER_REQUEST\",\"message\":\"Terminated by user request\"}", "name": "Development Cluster", "clusterId": "j-123456789ABCD", "state": "TERMINATED", "message": "Amazon EMR Cluster jj-123456789ABCD (Development Cluster) has terminated at 2016-12-16 21:00 UTC with a reason of USER_REQUEST." }}

Im Abschnitt „Detail“ der Nutzlast befinden sich der clusterId und der Zustand, auf die reagiert werden kann.

487

Page 495: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management Guide

AWS-GlossarDie aktuelle AWS-Terminologie finden Sie im AWS-Glossar im AWS General Reference.

488

Page 496: Amazon EMR - Management Guide · 2020. 9. 3. · Amazon EMR Management Guide Übermitteln von Aufträgen an einen Cluster Knoten überwacht den Status der Aufgaben und überwacht

Amazon EMR Management Guide

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchszwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge vonVerzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

cdlxxxix