Starten des Spark History-Servers - AWS Glue

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.

Starten des Spark History-Servers

Mit einem Spark History-Server können Sie die Spark-Protokolle in Ihrer eigenen Infrastruktur visualisieren. Sie können dieselben Visualisierungen in der AWS Glue Konsole für AWS Glue Jobausführungen auf Versionen AWS Glue 4.0 oder höher sehen, wobei die Logs im Standardformat (und nicht im Legacy-Format) generiert wurden. Weitere Informationen finden Sie unter Überwachen von Aufgaben über die Apache-Spark-Webbenutzeroberfläche.

Sie können den Spark-Verlaufsserver mithilfe einer AWS CloudFormation Vorlage starten, die den Server auf einer EC2 Instance hostet, oder ihn lokal mit Docker starten.

Den Spark-History-Server starten und die Spark-Benutzeroberfläche anzeigen mit AWS CloudFormation

Sie können eine AWS CloudFormation Vorlage verwenden, um den Apache Spark-History-Server zu starten und die Spark-Weboberfläche anzuzeigen. Diese Vorlagen sind Beispiele, die Sie entsprechend Ihren Anforderungen anpassen sollten.

Um den Spark-Geschichtsserver zu starten und die Spark-Benutzeroberfläche anzuzeigen, verwenden Sie AWS CloudFormation
  1. Wählen Sie eine der Schaltflächen Launch Stack (Stack starten) in der folgenden Tabelle aus. Dadurch wird der Stack auf der AWS CloudFormation Konsole gestartet.

    Region Starten
    US East (Ohio) Orange button labeled "Launch Stack" with an arrow icon.
    USA Ost (Nord-Virginia) Orange button labeled "Launch Stack" with an arrow icon.
    USA West (Nordkalifornien) Orange button labeled "Launch Stack" with an arrow icon.
    USA West (Oregon) Orange button labeled "Launch Stack" with an arrow icon.
    Africa (Cape Town) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (Hong Kong) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (Mumbai) Orange button labeled "Launch Stack" with an arrow icon.
    Asien-Pazifik (Osaka) Orange button labeled "Launch Stack" with an arrow icon.
    Asien-Pazifik (Seoul) Orange button labeled "Launch Stack" with an arrow icon.
    Asien-Pazifik (Singapur) Orange button labeled "Launch Stack" with an arrow icon.
    Asien-Pazifik (Sydney) Orange button labeled "Launch Stack" with an arrow icon.
    Asien-Pazifik (Tokio) Orange button labeled "Launch Stack" with an arrow icon.
    Canada (Central) Orange button labeled "Launch Stack" with an arrow icon.
    Europe (Frankfurt) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (Irland) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (London) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (Milan) Orange button labeled "Launch Stack" with an arrow icon.
    Europe (Paris) Orange button labeled "Launch Stack" with an arrow icon.
    Europe (Stockholm) Orange button labeled "Launch Stack" with an arrow icon.
    Middle East (Bahrain) Orange button labeled "Launch Stack" with an arrow icon.
    Südamerika (São Paulo) Orange button labeled "Launch Stack" with an arrow icon.
  2. Wählen Sie auf der Seite Specify template (Vorlage angeben) die Option Next (Weiter) aus.

  3. Geben Sie auf der Seite Specify stack details (Stack-Details angeben) den Wert für Stack name (Stack-Name) ein. Geben Sie zusätzliche Informationen unter Parameter ein.

    1. Konfiguration der Spark-Benutzeroberfläche

      Geben Sie die folgenden Informationen ein:

      • IP-Adressbereich – Der IP-Adressbereich, der zum Anzeigen der Spark-Benutzeroberfläche verwendet werden kann. Wenn Sie den Zugriff in Bezug auf einen bestimmten IP-Adressbereich einschränken möchten, sollten Sie einen benutzerdefinierten Wert verwenden.

      • History-Server-Port – Der Port für die Spark-Benutzeroberfläche. Sie können den Standardwert verwenden.

      • Verzeichnis der Ereignisprotokolle — Wählen Sie den Speicherort aus, an dem Spark-Ereignisprotokolle gespeichert werden AWS Glue Job- oder Entwicklungsendpunkte. Für das Pfadschema der Ereignisprotokolle müssen Sie s3a:// verwenden.

      • Spark-Package-Standort – Sie können den Standardwert verwenden.

      • KeyStore-Pfad – SSL/TLS-KeyStore-Pfad für HTTPS. Wenn Sie eine benutzerdefinierte Schlüsselspeicherdatei verwenden möchten, können Sie den S3-Pfad s3://path_to_your_keystore_file hier angeben. Wenn Sie diesen Parameter leer lassen, wird ein selbstsignierter, zertifikatbasierter Schlüsselspeicher generiert und verwendet.

      • KeyStore-Passwort – Geben Sie SSL/TLS-KeyStore-Passwort für HTTPS ein.

    2. EC2 Konfiguration der Instanz

      Geben Sie die folgenden Informationen ein:

      • Instance-Typ — Der Typ der EC2 Amazon-Instance, die den Spark-History-Server hostet. Da mit dieser Vorlage eine EC2 Amazon-Instance in Ihrem Konto gestartet wird, werden die EC2 Amazon-Kosten Ihrem Konto separat belastet.

      • Neueste AMI-ID – Die AMI-ID von Amazon Linux 2 für die Spark-Verlaufsserver-Instance. Sie können den Standardwert verwenden.

      • VPC ID – Die Virtual Private Cloud (VPC)-ID für die Spark-History-Server-Instance. Sie können alle in Ihrem Konto VPCs verfügbaren Optionen verwenden. Die Verwendung einer Standard-VPC mit einer Standard-Netzwerk-ACL wird nicht empfohlen. Weitere Informationen finden Sie unter Default VPC and Default Subnets (Standard-VPC und Standard-Subnetze) und unter Creating a VPC (Erstellen einer VPC) im Amazon-VPC-Benutzerhandbuch.

      • Subnetz-ID – Die ID für die Spark-Verlaufsserver-Instance. Sie können jedes Subnetz in Ihrer VPC verwenden. Sie müssen das Subnetz von Ihrem Client aus erreichen können. Wenn Sie über das Internet auf das Subnetz zugreifen möchten, müssen Sie ein öffentliches Subnetz mit dem Internet-Gateway in der Routing-Tabelle verwenden.

    3. Wählen Sie Weiter.

  4. Wählen Sie auf der Seite Stack-Optionen konfigurieren die Option Weiter aus, um anhand der aktuellen Benutzeranmeldedaten zu bestimmen, wie Ressourcen im Stack erstellt, geändert oder gelöscht werden CloudFormation können. Sie können im Abschnitt Berechtigungen auch eine Rolle angeben, die anstelle der aktuellen Benutzerberechtigungen verwendet werden soll, und dann Weiter wählen.

  5. Überprüfen Sie die Vorlage auf der Seite Review (Prüfen).

    Wählen Sie Ich bestätige, dass AWS CloudFormation möglicherweise IAM-Ressourcen erstellt werden, und wählen Sie dann Stack erstellen aus.

  6. Warten Sie, bis der Stack erstellt wurde.

  7. Öffnen Sie die Registerkarte Outputs (Ausgaben).

    1. Kopieren Sie die URL von SparkUiPublicUrl, wenn Sie ein öffentliches Subnetz verwenden.

    2. Kopieren Sie die URL von SparkUiPrivateUrl, wenn Sie ein privates Subnetz verwenden.

  8. Öffnen Sie einen Webbrowser und fügen Sie die URL ein. Auf diese Weise können Sie über HTTPS auf dem angegebenen Port auf den Server zugreifen. Ihr Browser erkennt möglicherweise nicht das Zertifikat des Servers. In diesem Fall müssen Sie den Schutz des Servers außer Kraft setzen und trotzdem fortfahren.

Starten des Spark History-Servers und Anzeigen der Spark-Benutzeroberfläche über Docker

Wenn Sie lokalen Zugriff bevorzugen (ohne eine EC2 Instanz für den Apache Spark-Geschichtsserver zu haben), können Sie auch Docker verwenden, um den Apache Spark-Geschichtsserver zu starten und die Spark-Benutzeroberfläche lokal anzuzeigen. Diese Dockerfile ist ein Beispiel, das Sie entsprechend Ihren Anforderungen anpassen sollten.

Voraussetzungen

Informationen zum Installieren von Docker auf Ihrem Laptop finden Sie in der Docker Engine-Community.

So starten Sie den Spark History-Server und zeigen die Spark-Benutzeroberfläche lokal über Docker an
  1. Laden Sie Dateien herunter von GitHub.

    Laden Sie das Dockerfile herunter und von pom.xml AWS Glue Codebeispiele.

  2. Bestimmen Sie, ob Sie Ihre Benutzeranmeldeinformationen oder Verbundbenutzeranmeldeinformationen für den Zugriff auf AWS verwenden möchten.

    • Um die aktuellen Benutzeranmeldedaten für den Zugriff zu verwenden AWS, rufen Sie die Werte ab, die für AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY im docker run Befehl verwendet werden sollen. Weitere Informationen finden Sie unter Verwalten der Zugriffsschlüssel für IAM-Benutzer im -IAM-Benutzerhandbuch.

    • Um SAML 2.0-Verbundbenutzer für den Zugriff zu verwenden AWS, rufen Sie die Werte für AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, und ab. AWS_SESSION_TOKEN Weitere Informationen finden Sie unter Anfordern von temporären Sicherheitsanmeldeinformationen

  3. Bestimmen Sie den Speicherort Ihres Ereignisprotokollverzeichnisses für die Verwendung im docker run-Befehl.

  4. Erstellen Sie das Docker-Image mit den Dateien im lokalen Verzeichnis unter Verwendung des Namens glue/sparkui, und das Taglatestaus.

    $ docker build -t glue/sparkui:latest .
  5. Erstellen und starten Sie den Docker-Container.

    Verwenden Sie in den folgenden Befehlen die zuvor in den Schritten 2 und 3 beschafften Werte.

    1. Verwenden Sie einen Befehl wie den folgenden, um den Docker-Container mit Ihren Benutzeranmeldeinformationen zu erstellen

      docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://path_to_eventlog -Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID -Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
    2. Um den Docker-Container mit temporären Anmeldeinformationen zu erstellen, verwenden Sie org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider als Anbieter und geben Sie die in Schritt 2 beschafften Anmeldeinformationen an. Weitere Informationen finden Sie unter Using Session Credentials with Temporary AWSCredentials Provider in der Dokumentation Hadoop: Integration with Amazon Web Services.

      docker run -itd -e SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=s3a://path_to_eventlog -Dspark.hadoop.fs.s3a.access.key=AWS_ACCESS_KEY_ID -Dspark.hadoop.fs.s3a.secret.key=AWS_SECRET_ACCESS_KEY -Dspark.hadoop.fs.s3a.session.token=AWS_SESSION_TOKEN -Dspark.hadoop.fs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" -p 18080:18080 glue/sparkui:latest "/opt/spark/bin/spark-class org.apache.spark.deploy.history.HistoryServer"
    Anmerkung

    Diese Konfigurationsparameter stammen aus dem Hadoop-AWS Modul. Sie müssen möglicherweise je nach Anwendungsfall eine spezielle Konfiguration vornehmen. Zum Beispiel: Benutzer in isolierten Regionen müssen den spark.hadoop.fs.s3a.endpoint konfigurieren.

  6. Öffnen Sie http://localhost:18080 in Ihrem Browser, um die Spark-Benutzeroberfläche lokal anzuzeigen.