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.
Ab Amazon EMR Version 5.25.0 können Sie eine Verbindung zu den persistenten Spark History Server-Anwendungsdetails herstellen, die außerhalb des Clusters gehostet werden, indem Sie die Seite Zusammenfassung des Clusters oder die Registerkarte Anwendungsbenutzeroberflächen in der Konsole verwenden. Persistente Anwendungsoberflächen für Tez UI und YARN Timeline Server sind ab Amazon-EMR-Version 5.30.1 verfügbar. Der Zugriff auf den persistenten 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 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-Containerprotokolle über die Links auf dem Spark History Server, YARN Timeline Server und Tez UI anzeigen.
Anmerkung
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 Cluster aktivieren. Wenn Sie die Protokollierung nicht aktivieren, funktionieren die Links zu den YARN-Container-Protokollen nicht.
Protokollsammlung
Um den Zugriff auf persistente Anwendungsbenutzeroberflächen mit einem Klick zu ermöglichen, werden von Amazon EMR zwei Arten von Protokollen gesammelt:
-
Anwendungsereignisprotokolle werden in einem EMR-System-Bucket erfasst. Die Ereignisprotokolle werden 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, 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.
-
YARN-Container-Protokolle werden in einem Amazon-S3-Bucket gesammelt, den Sie besitzen. Sie müssen die Protokollierung für Ihren Cluster aktivieren, um auf YARN-Container-Protokolle 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.7.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, sammelt Amazon EMR 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 Spark-SQL-Abfragen, große Ereignisprotokolle generieren. Bei umfangreichen Ereignisprotokollen können Sie schnell Festplattenspeicher auf Compute-Instances belegen und beim Laden von Persistent auf OutOfMemory
Fehler stoßen. UIs Um diese Probleme zu vermeiden, wird empfohlen, dass Sie das Feature zum Rollen und Verdichten von Spark-Ereignisprotokollen aktivieren. Dieses Feature ist nur in Amazon EMR ab Version emr-6.1.0 oder 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 zugehörige Aufgaben-, Phasen- und Aufgabenereignisse.
So starten Sie einen Cluster mit aktiviertem Rollen und Komprimieren
-
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 } } ]
-
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 in HDFS befindet. Amazon EMR speichert Ereignisprotokolle standardmäßig in einem Verzeichnis von HDFS. 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 EMR-Cluster mit AWS 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 Amazon EMR verfügen. Wenn Sie die Berechtigung eines IAM-Prinzipals für diese Aktion verweigern, dauert es etwa fünf Minuten, bis die Berechtigungsänderung propagiert 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 höher UIs 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 (VAE) (me-central-1)
-
-
Im Folgenden AWS-Regionen können Sie mit Amazon EMR 5.25.0 und höher UIs 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)