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. Bei AWS Glue-Auftragsausführungen ab AWS Glue Version 4.0 mit Protokollen, die im Standardformat generiert wurden (statt im Legacy-Format), können Sie dieselben Visualisierungen in der AWS Glue-Konsole sehen. Weitere Informationen finden Sie unter Überwachen von Aufgaben über die Apache-Spark-Webbenutzeroberfläche.

Sie können den Spark History-Server über eine AWS CloudFormation-Vorlage starten, die den Server auf einer EC2-Instance hostet, oder lokal über Docker.

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

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

So starten Sie den Spark History-Server und zeigen die Spark-Benutzeroberfläche über AWS CloudFormation an
  1. Wählen Sie eine der Schaltflächen Launch Stack (Stack starten) in der folgenden Tabelle aus. Hierdurch wird der Stack in 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.
    Asia Pacific (Osaka) Orange button labeled "Launch Stack" with an arrow icon.
    Asia Pacific (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.
    Europe (London) Orange button labeled "Launch Stack" with an arrow icon.
    Europa (Mailand) 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.

      • Ereignisprotokollverzeichnis – Wählen Sie den Speicherort, an dem die Spark-Ereignisprotokolle gespeichert werden, aus den AWS Glue-Job- oder Entwicklungsendpunkten. 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. Konfigurieren der EC2-Instance

      Geben Sie die folgenden Informationen ein:

      • Instance-Typ – Der Typ der Amazon-EC2-Instance, der den Spark-History-Server hostet. Da diese Vorlage die Amazon-EC2-Instance in Ihrem Konto startet, werden Amazon-EC2-Kosten Ihrem Konto separat in Rechnung gestellt.

      • 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 jede der in Ihrem Konto verfügbaren VPCs verwenden. Es wird jedoch nicht empfohlen, eine Standard-VPC mit einer Standard-Netzwerk-ACL zu verwenden. 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 aus.

  4. Auf der Seite Konfigurieren von Stack-Optionen wählen Sie Weiter aus, um die aktuellen Benutzeranmeldeinformationen zu verwenden, um zu bestimmen, wie CloudFormation Ressourcen im Stack erstellen, ändern oder löschen kann. 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 I acknowledge that AWS CloudFormation might create IAM resources (Ich bestätige, dass CFN IAM-Ressourcen erstellen kann) und dann Create stack (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 den lokalen Zugriff bevorzugen (d. h., keine EC2-Instance für den Apache Spark History-Server verwenden möchten), können Sie auch Docker verwenden, um den Apache Spark History-Server 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 von GitHub herunter.

    Laden Sie die Dockerfile und pom.xml aus den AWS Glue-Codebeispielen herunter.

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

    • Um die aktuellen Benutzeranmeldeinformationen für den Zugriff auf AWS zu verwenden, beschaffen Sie die Werte für AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY im docker run-Befehl. 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 auf AWS zu verwenden, beschaffen Sie die Werte für AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY und 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 Verwenden von Sitzungsanmeldeinformationen mit TemporaryAWSCredentialsProvider in der Hadoop: Integration mit Amazon Web Services-Dokumentation.

      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.