Amazon EMR ist ein Big-Data-Service, der von AWS angeboten wird, um Apache Spark und andere Open-Source-Anwendungen auf AWS auszuführen, um auf kostengünstige Weise skalierbare Datenpipelines zu erstellen. Die Überwachung der Protokolle, die aus den auf EMR-Clustern bereitgestellten Jobs generiert werden, ist unerlässlich, um kritische Probleme in Echtzeit zu erkennen und Ursachen schnell zu identifizieren.
Schieben Sie diese Protokolle hinein Amazon CloudWatch ermöglicht es Ihnen, umsetzbare Informationen aus Ihren Protokollen zu zentralisieren und zu nutzen, um betriebliche Probleme zu lösen, ohne Server bereitstellen oder Software verwalten zu müssen. Sie können sofort mit dem Schreiben von Abfragen mit Aggregationen, Filtern und regulären Ausdrücken beginnen. Darüber hinaus können Sie Zeitreihendaten visualisieren, einzelne Protokollereignisse aufschlüsseln und Abfrageergebnisse in CloudWatch-Dashboards exportieren.
Zum Erfassen von Protokollen, die auf der Amazon Elastic Compute-Cloud (Amazon EC2)-Instanzen eines EMR-Clusters in CloudWatch können Sie die CloudWatch-Agent. Dies bietet eine einfache Möglichkeit, Protokolle von einer EC2-Instance an CloudWatch zu übertragen.
Der CloudWatch-Agent ist ein Softwarepaket, das autonom und kontinuierlich auf Ihren Servern ausgeführt wird. Sie können den CloudWatch-Agenten installieren und konfigurieren, um System- und Anwendungsprotokolle von EC2-Instances, lokalen Hosts und containerisierten Anwendungen zu sammeln. CloudWatch verarbeitet und speichert die vom CloudWatch-Agenten gesammelten Protokolle, was die Leistungs- und Zustandsüberwachung Ihrer Infrastruktur und Anwendungen weiter unterstützt.
In diesem Beitrag erstellen wir einen EMR-Cluster und zentralisieren die EMR-Schrittprotokolle der Jobs in CloudWatch. Dadurch können Sie Ihren EMR-Cluster einfacher verwalten, Probleme beheben und die Leistung überwachen. Diese Lösung ist besonders hilfreich, wenn Sie CloudWatch verwenden möchten, um Protokolle, Metriken und Ereignisdaten in Echtzeit zu sammeln und zu visualisieren und so Ihre Infrastruktur und Anwendungswartung zu optimieren.
Lösungsübersicht
Die in diesem Beitrag vorgestellte Lösung basiert auf einer bestimmten Konfiguration, bei der die Parallelitätsebene für EMR-Schritte auf 1 festgelegt ist. Dies bedeutet, dass jeweils nur ein Schritt auf dem Cluster ausgeführt wird. Es ist wichtig zu beachten, dass die Lösung möglicherweise nicht wie erwartet funktioniert, wenn die Parallelitätsebene des EMR-Schritts auf einen Wert größer als 1 festgelegt ist. Wir empfehlen dringend, Ihre zu überprüfen Parallelität von EMR-Schritten Konfiguration, bevor Sie die in diesem Beitrag vorgestellte Lösung implementieren.
Das folgende Diagramm zeigt die Lösungsarchitektur.
Der Workflow umfasst die folgenden Schritte:
- Benutzer starten einen Apache Spark EMR-Job und erstellen einen Schritt im EMR-Cluster. Mit Apache Spark wird die Arbeitslast auf die verschiedenen Knoten des EMR-Clusters verteilt.
- In jedem Knoten (EC2-Instanz) des Clusters überwacht ein CloudWatch-Agent verschiedene Protokollverzeichnisse, erfasst neue Einträge in den Protokolldateien und überträgt sie an CloudWatch.
- Benutzer können die Schrittprotokolle anzeigen, die über die CloudWatch-Konsole auf die verschiedenen Protokollgruppen zugreifen. Die von Amazon EMR geschriebenen Schrittprotokolle lauten wie folgt:
- Controller — Informationen über die Bearbeitung des Schrittes. Wenn Ihr Schritt beim Laden fehlschlägt, finden Sie den Stack-Trace in diesem Protokoll.
- stderr — Der Standardfehlerkanal von Spark, während der Schritt verarbeitet wird.
- stdout — Der Standardausgabekanal von Spark, während der Schritt verarbeitet wird.
Wir bieten eine AWS CloudFormation Vorlage in diesem Beitrag als allgemeine Anleitung. Die Vorlage zeigt, wie ein CloudWatch-Agent auf Amazon EMR konfiguriert wird, um Spark-Protokolle an CloudWatch zu übertragen. Sie können es nach Bedarf überprüfen und anpassen, um Ihre Amazon EMR-Sicherheitskonfigurationen einzubeziehen. Als Best Practice empfehlen wir, Ihre Amazon EMR-Sicherheitskonfigurationen in die Vorlage aufzunehmen Daten während der Übertragung verschlüsseln.
Sie sollten sich auch darüber im Klaren sein, dass einige der von diesem Stack bereitgestellten Ressourcen Kosten verursachen, wenn sie weiterhin verwendet werden.
In den nächsten Abschnitten gehen wir die folgenden Schritte durch:
- Erstellen Sie das Bootstrap-Skript und laden Sie es in eine hoch Amazon Simple Storage-Service (Amazon S3) Eimer.
- Verwenden Sie die CloudFormation-Vorlage, um die folgenden Ressourcen zu erstellen:
- Überwachen Sie die Spark-Protokolle in der CloudWatch-Konsole.
Voraussetzungen:
Dieser Beitrag geht davon aus, dass Sie über Folgendes verfügen:
Erstellen Sie das Bootstrap-Skript und laden Sie es in einen S3-Bucket hoch
Für weitere Informationen, siehe Hochladen von Objekten und Installieren und Ausführen des CloudWatch-Agenten auf Ihren Servern.
Führen Sie die folgenden Schritte aus, um das Bootstrap-Skript zu erstellen und hochzuladen:
- Erstellen Sie eine lokale Datei mit dem Namen
bootstrap_cloudwatch_agent.sh
mit folgendem Inhalt: - Wählen Sie auf der Amazon S3-Konsole Ihren S3-Bucket aus.
- Auf dem Objekte Tab, wählen Sie Hochladen.
- Auswählen Hinzufügen von Dateien, und wählen Sie dann das Bootstrap-Skript aus.
- Auswählen
Hochladen, wählen Sie dann den Dateinamen:
bootstrap_cloudwatch_agent.sh
. - Auswählen S3-URI kopieren. Wir verwenden diesen Wert in einem späteren Schritt.
Stellen Sie Ressourcen mit der CloudFormation-Vorlage bereit
Auswählen Stack starten So starten Sie einen CloudFormation-Stack in Ihrem Konto und stellen die Vorlage bereit:
Diese Vorlage erstellt eine IAM-Rolle, ein IAM-Instance-Profil, einen Systems Manager-Parameter und einen EMR-Cluster. Der Cluster startet die Beispielanwendung für die Spark-PI-Schätzung. Wenn Sie einen Stack aus dieser Vorlage erstellen, werden Ihnen die verwendeten AWS-Ressourcen in Rechnung gestellt.
Der CloudFormation-Assistent fordert Sie auf, diese Parameter zu ändern oder bereitzustellen:
- Instanztyp - Die Art der Instanz für alle Instanzgruppen. Der Standardwert ist m4.xlarge.
- InstanzCountCore – Die Anzahl der Instanzen in der Kerninstanzgruppe. Der Standardwert ist 2.
- EMRReaseLabel - Die Amazon EMR-Freigabelabel Sie verwenden möchten. Der Standardwert ist emr-6.9.0.
- BootstrapScriptPath – Der S3-Pfad Ihres CloudWatch-Agent-Installations-Bootstrap-Skripts, das Sie zuvor kopiert haben.
- Teilnetz – Das EC2-Subnetz, in dem der Cluster gestartet wird. Sie müssen diesen Parameter angeben.
- EC2KeyPairName – Ein optionales EC2-Schlüsselpaar für die Verbindung mit Cluster-Knoten als Alternative zu Session Manager.
Überwachen Sie die Protokollströme
Nachdem der CloudFormation-Stack erfolgreich bereitgestellt wurde, wählen Sie in der CloudWatch-Konsole aus Protokollgruppen im Navigationsbereich. Filtern Sie dann die Protokollgruppen nach dem Präfix /aws/emr/master
.
Die ID in der Protokollgruppe entspricht der EC2-Instance-ID des primären EMR-Knotens. Wenn Sie mehrere EMR-Cluster haben, können Sie diese ID verwenden, um einen bestimmten EMR-Cluster basierend auf der primären Knoten-ID zu identifizieren.
In der Log-Gruppe finden Sie die drei verschiedenen Log-Streams.
Die Protokollstreams enthalten die folgenden Informationen:
- Schritt-Standard – Der Standardausgabekanal von Spark, während der Schritt verarbeitet wird.
- Schritt-Stderr – Der Standardfehlerkanal von Spark, während der Schritt verarbeitet wird.
- Schrittregler – Informationen über die Bearbeitung des Schrittes. Wenn Ihr Schritt beim Laden fehlschlägt, finden Sie den Stack-Trace in diesem Protokoll.
Aufräumen
Um zukünftige Belastungen Ihres Kontos zu vermeiden, löschen Sie die Ressourcen, die Sie in dieser exemplarischen Vorgehensweise erstellt haben. Für den EMR-Cluster fallen Gebühren an, solange der Cluster aktiv ist. Stoppen Sie ihn also, wenn Sie fertig sind.
- Wählen Sie in der CloudFormation-Konsole im Navigationsbereich aus Stacks.
- Wählen Sie den Stack, den Sie gestartet haben (
EMR-CloudWatch-Demo
), dann wähle Löschen. - Leeren Sie den S3-Eimer du hast geschaffen.
- Löschen Sie den S3-Bucket du hast geschaffen.
Zusammenfassung
Nachdem Sie die Schritte in dieser exemplarischen Vorgehensweise abgeschlossen haben, wird der CloudWatch-Agent auf Ihren Cluster-Hosts ausgeführt und ist so konfiguriert, dass er EMR-Schrittprotokolle an CloudWatch überträgt. Mit dieser Funktion können Sie den Zustand und die Leistung Ihrer auf Amazon EMR ausgeführten Spark-Jobs effektiv überwachen, kritische Probleme in Echtzeit erkennen und Ursachen schnell identifizieren.
Sie können diese Lösung über eine CloudFormation-Vorlage wie diese Beispielvorlage packen und bereitstellen, die die IAM-Instance-Profilrolle, den Systems Manager-Parameter und den EMR-Cluster erstellt.
Um dies weiter auszubauen, erwägen Sie die Verwendung dieser Protokolle in CloudWatch-Alarmen für Warnungen auf a Protokollgruppenmetrikfilter. Sie könnten sie mit anderen Alarmen in einem sammeln zusammengesetzter Alarm oder konfigurieren Sie Alarmaktionen wie das Senden Amazon Simple Notification Service (Amazon SNS) Benachrichtigungen zum Auslösen ereignisgesteuerter Prozesse wie z AWS Lambda Funktionen.
Über den Autor
Ennio Pastore ist Senior Data Architect im AWS Data Lab-Team. Er begeistert sich für alles, was mit neuen Technologien zu tun hat, die sich positiv auf Unternehmen und die allgemeine Lebensgrundlage auswirken. Ennio hat über 10 Jahre Erfahrung in der Datenanalyse. Er unterstützt Unternehmen bei der Definition und Implementierung von Datenplattformen in verschiedenen Branchen wie Telekommunikation, Banken, Spiele, Einzelhandel und Versicherungen.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- Platoblockkette. Web3-Metaverse-Intelligenz. Wissen verstärkt. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/big-data/push-amazon-emr-step-logs-from-amazon-ec2-instances-to-amazon-cloudwatch-logs/
- :Ist
- 1
- 10
- 100
- 9
- a
- Über uns
- Zugriff
- Konto
- über
- Aktionen
- aktiv
- Zusatz
- Adresse
- Makler
- Alarm
- Warnungen
- Alle
- Alternative
- Amazon
- Amazon EC2
- Amazon EMR
- Analytik
- und
- Apache
- Apache Funken
- Anwendung
- Anwendungen
- Architektur
- SIND
- AS
- At
- autonom
- AWS
- Bankinggg
- basierend
- BE
- Bevor
- beginnen
- BESTE
- Big
- Big Data
- Bootstrap
- bauen
- Unternehmen
- by
- CAN
- Capturing
- Ursachen
- Kanal
- Gebühren
- Auswählen
- Cluster
- sammeln
- Unternehmen
- abschließen
- Abgeschlossene Verkäufe
- Berechnen
- Konfiguration
- Sich zusammenschliessen
- Geht davon
- Konsul (Console)
- Inhalt
- ständig
- Kernbereich
- entspricht
- kostengünstiger
- Kosten
- könnte
- erstellen
- erstellt
- schafft
- Erstellen
- kritischem
- anpassen
- technische Daten
- Datenanalyse
- Standard
- zeigt
- einsetzen
- Einsatz
- setzt ein
- anders
- Verzeichnisse
- verteilt
- nach unten
- Antrieb
- jeder
- Früher
- einfacher
- Echo
- effektiv
- ermöglicht
- Enthusiast
- Fehler
- essential
- Äther (ETH)
- Event
- Veranstaltungen
- alles
- Beispiel
- erwartet
- ERFAHRUNGEN
- exportieren
- Ausdrücke
- scheitert
- Merkmal
- Reichen Sie das
- Mappen
- Filter
- Filter
- Finden Sie
- Folgende
- folgt
- Aussichten für
- für
- Funktionen
- weiter
- Zukunft
- Gaming
- Allgemeines
- erzeugt
- Go
- mehr
- Gruppe an
- Gruppen
- Guide
- Haben
- Gesundheit
- Hilfe
- hilfreich
- hilft
- hoch
- Gastgeber
- Ultraschall
- Hilfe
- HTML
- http
- HTTPS
- IAM
- ID
- identifizieren
- Identifizierung
- Impact der HXNUMXO Observatorien
- implementieren
- Umsetzung
- wichtig
- in
- das
- Dazu gehören
- Einschließlich
- Krankengymnastik
- Branchen
- Information
- Infrastruktur
- installieren
- Installieren
- Instanz
- Versicherung
- Intelligenz
- Probleme
- IT
- Job
- Jobs
- jpg
- JSON
- Labor
- starten
- ins Leben gerufen
- startet
- Niveau
- Gefällt mir
- Laden
- aus einer regionalen
- Lang
- Wartung
- um
- verwalten
- Manager
- Weise
- Mittel
- Metrik
- ändern
- Überwachen
- Überwachung
- mehr
- mehrere
- Name
- Namens
- Navigation
- erforderlich
- benötigen
- Neu
- Neue Technologien
- weiter
- Knoten
- Fiber Node
- Benachrichtigung
- Benachrichtigungen
- Anzahl
- of
- angeboten
- on
- EINEM
- Open-Source-
- Betriebs-
- Andere
- Ausgabe
- Paket
- Brot
- Parameter
- Parameter
- besondere
- besonders
- Weg
- Leistung
- Plattformen
- Plato
- Datenintelligenz von Plato
- PlatoData
- positiv
- Post
- Praxis
- vorgeführt
- primär
- anpassen
- Verarbeitung
- Profil
- die
- bietet
- Bereitstellung
- Push
- Schieben
- schnell
- echt
- Echtzeit
- empfehlen
- regulär
- bezogene
- Release
- bleiben
- Downloads
- Die Ergebnisse
- Einzelhandel
- Überprüfen
- Rollen
- Wurzel
- Führen Sie
- Laufen
- skalierbaren
- Abschnitte
- Sicherheitdienst
- Sendung
- Senior
- Modellreihe
- Sitzung
- kompensieren
- sollte
- Einfacher
- So
- Software
- Lösung
- einige
- Spark
- spezifisch
- Stapel
- Standard
- Anfang
- Beginnen Sie
- beginnt
- Schritt
- Shritte
- Stoppen
- storage
- Läden
- Rationalisierung
- Ströme
- Subnetz
- Erfolgreich
- so
- Sudo
- System
- Systeme und Techniken
- Nehmen
- Team
- Technologies
- Telekommunikation
- Vorlage
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Sie
- Diese
- nach drei
- Durch
- Zeit
- Zeitfolgen
- zu
- Spur
- auslösen
- -
- Wert
- verifizieren
- Anzeigen
- Walkthrough
- Uhren
- Weg..
- welche
- während
- werden wir
- mit
- ohne
- Arbeiten
- Arbeitsablauf.
- Schreiben
- geschrieben
- YAML
- Jahr
- Ihr
- Zephyrnet