Benutzeroberflächen persistenter Anwendungen in Amazon anzeigen EMR - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Benutzeroberflächen persistenter Anwendungen in Amazon anzeigen EMR

Ab EMR Amazon-Version 5.25.0 können Sie über die Cluster-Übersichtsseite oder die Registerkarte Anwendungsbenutzeroberflächen in der Konsole eine Verbindung zu den persistenten Spark History Server-Anwendungsdetails herstellen, die außerhalb des Clusters gehostet werden. Die persistenten Anwendungsschnittstellen für Tez UI und YARN Timeline Server sind ab EMR Amazon-Version 5.30.1 verfügbar. Der Zugriff auf den persistenten Anwendungsverlauf mit einem Klick bietet folgende Vorteile:

  • Sie können aktive Jobs und den Jobverlauf schnell analysieren und Fehler beheben, ohne einen Web-Proxy über eine Verbindung einrichten zu müssen. SSH

  • Sie können auf den Anwendungsverlauf und relevante Protokolldateien für aktive und beendete Cluster zugreifen. Die Protokolle stehen nach dem Ende der Anwendung 30 Tage lang zur Verfügung.

Navigieren Sie in der Konsole zu Ihren Clusterdetails und wählen Sie die Registerkarte Applications (Anwendungen) aus. Wählen Sie die Benutzeroberfläche der Anwendung aus, die Sie nach dem Start Ihres Clusters verwenden möchten. Die Benutzeroberfläche der Anwendung wird in einer neuen Browserregisterkarte geöffnet. Weitere Informationen finden Sie unter Überwachung und Instrumentierung.

Sie können YARN Container-Logs über die Links auf dem Spark-Verlaufsserver, dem YARN Timeline-Server und der Tez-Benutzeroberfläche einsehen.

Anmerkung

Um vom Spark-History-Server, YARN Timeline-Server und der Tez-Benutzeroberfläche auf YARN Container-Logs zuzugreifen, müssen Sie die Protokollierung bei Amazon S3 für Ihren Cluster aktivieren. Wenn Sie die Protokollierung nicht aktivieren, funktionieren die Links zu YARN Container-Logs nicht.

Protokollsammlung

Um den Zugriff auf persistente Anwendungsbenutzeroberflächen mit einem Klick zu ermöglichen, EMR sammelt Amazon zwei Arten von Protokollen:

  • Anwendungsereignisprotokolle werden in einem EMR System-Bucket gesammelt. Die Ereignisprotokolle werden im Ruhezustand mit 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, dass Sie den richtigen System-Bucket ARNs in die Ressourcenliste der Amazon S3 S3-Richtlinie für das private Subnetz aufnehmen. Weitere Informationen finden Sie unter Amazon-S3-Mindestrichtlinie für privates Subnetz.

  • YARNContainer-Logs werden in einem Amazon S3 S3-Bucket gesammelt, den Sie besitzen. Sie müssen die Protokollierung für Ihren Cluster aktivieren, um auf YARN Container-Logs zugreifen zu können. Weitere Informationen finden Sie unter Konfigurieren der Cluster-Protokollierung und des Debuggings.

Wenn Sie diese Funktion aus Datenschutzgründen deaktivieren müssen, können Sie den Daemon mithilfe eines 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-7.5.0 \ --applications Name=Hadoop Name=Spark --ec2-attributes KeyName=<myEMRKeyPairName> \ --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://region.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, EMR sammelt Amazon keine Spark History Server- oder YARN Timeline-Server-Ereignisprotokolle im EMR System-Bucket. Auf der Registerkarte Application user interfaces (Anwendungsbenutzeroberflächen) werden keine Informationen zum Anwendungsverlauf verfügbar sein und Sie verlieren den Zugriff auf alle Anwendungsbenutzeroberflächen über die Konsole.

Große Spark-Ereignisprotokolldateien

In einigen Fällen können Spark-Jobs mit langer Laufzeit, wie Spark-Streaming, und große Jobs, wie SQL Spark-Abfragen, umfangreiche Ereignisprotokolle generieren. Bei umfangreichen Ereignisprotokollen können Sie schnell Festplattenspeicher auf Recheninstanzen verbrauchen und beim Laden von Persistent OutOfMemory UIs Fehler auftreten. Um diese Probleme zu vermeiden, wird empfohlen, dass Sie das Feature zum Rollen und Verdichten von Spark-Ereignisprotokollen aktivieren. Diese Funktion ist in den EMR Amazon-Versionen emr-6.1.0 und höher verfügbar. Weitere Informationen zum Rollen und Verdichten finden Sie in der Spark-Dokumentation unter Anwenden der Komprimierung auf Protokolldateien für rollende Ereignisse.

Um das Feature zum Rollen und Verdichten des Spark-Ereignisprotokolls zu aktivieren, aktivieren Sie die folgenden Spark-Konfigurationseinstellungen.

  • spark.eventLog.rolling.enabled – Aktiviert das Rolling des Ereignisprotokolls je nach Größe. Diese Einstellung ist standardmäßig deaktiviert.

  • spark.eventLog.rolling.maxFileSize – Wenn das Rolling aktiviert ist, gibt dies die maximale Größe der Ereignisprotokolldatei an, bevor ein Rollover ausgeführt wird. Der Standardwert ist 128 MB.

  • spark.history.fs.eventLog.rolling.maxFilesToRetain– Gibt die maximale Anzahl nicht komprimierter Ereignisprotokolldateien an, die aufbewahrt werden sollen. Standardmäßig werden alle Ereignisprotokolldateien aufbewahrt. Stellen Sie einen niedrigeren Wert ein, um ältere Ereignisprotokolle zu komprimieren. Der niedrigste Wert ist 1.

Beachten Sie, dass bei der Komprimierung versucht wird, Ereignisse mit veralteten Ereignisprotokolldateien auszuschließen, wie z. B. die folgenden. Wenn dabei Ereignisse verworfen werden, werden sie nicht mehr auf der Benutzeroberfläche des Spark History Servers angezeigt.

  • Ereignisse für abgeschlossene Aufträge und zugehörige Phasen- oder Aufgabenereignisse.

  • Ereignisse für beendete Exekutoren.

  • Ereignisse für abgeschlossene SQL Anfragen und damit verbundene Aufgaben-, Phasen- und Aufgabenereignisse.

So starten Sie einen Cluster mit aktiviertem Rollen und Komprimieren
  1. Erstellen Sie eine Konfigurationsdatei spark-configuration.json mit der folgenden Konfiguration.

    [ { "Classification": "spark-defaults", "Properties": { "spark.eventLog.rolling.enabled": true, "spark.history.fs.eventLog.rolling.maxFilesToRetain": 1 } } ]
  2. Erstellen Sie den Cluster mit der Spark-Rolling-Compaction-Konfiguration wie folgt.

    aws emr create-cluster \ --release-label emr-6.6.0 \ --instance-type m4.large \ --instance-count 2 \ --use-default-roles \ --configurations file://spark-configuration.json

Überlegungen und Einschränkungen

Der Ein-Klick-Zugriff auf persistente Anwendungsbenutzeroberflächen hat derzeit folgende Einschränkungen.

  • Es wird mindestens zwei Minuten dauern, bis die Anwendungsdetails auf der Benutzeroberfläche des Spark History Servers angezeigt werden.

  • Diese Funktion funktioniert nur, wenn sich das Ereignisprotokollverzeichnis für die Anwendung im Verzeichnis befindetHDFS. Standardmäßig EMR speichert Amazon Ereignisprotokolle in einem Verzeichnis vonHDFS. Wenn Sie das Standardverzeichnis in ein anderes Dateisystem ändern, beispielsweise Amazon S3, funktioniert das Feature nicht.

  • Diese Funktion ist derzeit nicht für EMR Cluster mit mehreren Master-Knoten oder für integrierte EMR Cluster verfügbar AWS Lake Formation.

  • Um den Zugriff mit einem Klick auf persistente Anwendungsbenutzeroberflächen zu ermöglichen, müssen Sie über die Berechtigung für die DescribeCluster Aktion für Amazon EMR verfügen. Wenn Sie einem IAM Principal die Genehmigung für diese Aktion verweigern, dauert es ungefähr fünf Minuten, bis die Änderung der Zugriffsrechte wirksam wird.

  • Wenn Sie Anwendungen in einem laufenden Cluster neu konfigurieren, ist der Anwendungsverlauf nicht über das Anwendungs-UI verfügbar.

  • Für jede AWS-Konto Anwendung liegt das Standardlimit für aktive Anwendungen UIs bei 200.

  • Im Folgenden AWS-Regionen können Sie mit Amazon EMR 6.14.0 und UIs höher von der Konsole aus auf die Anwendung zugreifen:

    • Asien-Pazifik (Jakarta) (ap-southeast-3)

    • Europa (Spanien) (eu-south-2)

    • Asien-Pazifik (Melbourne) (ap-southeast-4)

    • Israel (Tel Aviv) (il-central-1)

    • Naher Osten (UAE) (me-central-1)

  • Im Folgenden AWS-Regionen können Sie mit Amazon EMR 5.25.0 und UIs höher von der Konsole aus auf die Anwendung zugreifen:

    • USA Ost (Nord-Virginia): (us-east-1)

    • USA West (Oregon): (us-west-2)

    • Asien-Pazifik (Mumbai): (ap-south-1)

    • Asien-Pazifik (Seoul): (ap-northeast-2)

    • Asien-Pazifik (Singapur): (ap-southeast-1)

    • Asien-Pazifik (Sydney): (ap-southeast-2)

    • Asien-Pazifik (Tokyo) (ap-northeast-1)

    • Kanada (Zentral): (ca-central-1)

    • Südamerika (São Paulo) (sa-east-1)

    • Europa (Frankfurt) (eu-central-1)

    • Europa (Irland) (eu-west-1)

    • Europa (London) (eu-west-2)

    • Europa (Paris) (eu-west-3)

    • Europa (Stockholm) (eu-north-1)

    • China (Peking) (cn-north-1)

    • China (Ningxia) (cn-northwest-1)