Spark-Protokollserver

Die Spark-Anwendungen, die in einer IBM Analytics Engine-Instanz übergeben werden, leiten ihre Spark-Ereignisse an das Bucket Object Storage weiter, das als Instanzausgangsverzeichnisdefiniert wurde. Der Spark-Protokollserver bietet eine Web UI zum Anzeigen dieser Spark-Ereignisse. Mithilfe der Web UI können Sie analysieren, wie Ihre Spark-Anwendungen ausgeführt wurden, indem Sie nützliche Informationen wie die folgenden anzeigen:

  • Eine Liste der Phasen, die die Anwendung durchläuft, wenn sie ausgeführt wird
  • Die Anzahl der Aufgaben in jeder Phase
  • Die Konfigurationsdetails, wie z. B. die aktiven Executors und die Speicherbelegung

Weitere Details finden Sie in der Dokumentation zu Spark History Server.

Sie können die Weiterleitung von Spark-Ereignissen von einer Spark-Anwendung inaktivieren, indem Sie die Eigenschaft spark.eventLog.enabled in der Konfiguration der Spark-Anwendung auf false setzen.

Spark-Protokollserver starten und stoppen

Vor dem Zugriff auf den Spark-Protokollserver müssen Sie den Server starten. Wenn Sie den Server nicht mehr benötigen, sollten Sie ihn stoppen. Ihnen werden die CPU-Cores und der Hauptspeicher in Rechnung gestellt, die vom Spark-Protokollserver während seiner Ausführung belegt werden.

Der Spark-Protokollserver kann wie folgt gestartet und gestoppt werden:

REST-API Analytics Engine

Sie können die REST-API Analytics Engine verwenden:

  1. Status des Spark-Protokollservers anzeigen

    curl "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/spark_history_server" --header "Authorization: bearer <iam token>"
    
  2. So starten Sie den Spark-Protokollserver

    curl --location --request POST "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/spark_history_server" --header "Authorization: bearer <iam token>"
    
  3. So stoppen Sie den Spark-Protokollserver

    curl --location --request DELETE "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/spark_history_server" --header "Authorization: bearer <iam token>"
    

Benutzerschnittstelle für Analytics Engine-Instanz

Sie können die Benutzerschnittstelle der Analytics Engine-Instanz verwenden: ​

  1. Gehen Sie wie folgt vor, um den Spark-Protokollserverstatus anzuzeigen:

    1. Öffnen Sie Ihre Ressourcenliste unter IBM Cloud.
    2. Klicken Sie auf Services und Software und wählen Sie Ihre Instanz aus, um die Detailseite zu öffnen.
    3. Wählen Sie die Registerkarte Spark-Protokoll aus. Auf dieser Seite wird der aktuelle Status des Servers angezeigt.

    Wenn der Status des Spark-Protokollservers auf Started gesetzt ist, können Sie auch auf Spark-Protokoll anzeigen klicken, um die Web UI des Spark-Protokollservers in einer neuen Browserregisterkarte zu starten.

  2. Gehen Sie wie folgt vor, um den Spark-Protokollserver zu starten:

    1. Klicken Sie auf der Seite Spark history auf Protokollserver starten.
    2. Wählen Sie die Serverkonfiguration aus und klicken Sie auf Start, um den Spark-Protokollserver zu starten.
  3. Gehen Sie wie folgt vor, um den Spark-Protokollserver zu stoppen:

    1. Klicken Sie auf der Seite Spark history auf Protokollserver stoppen.

Web UI des Spark-Protokollservers öffnen

Sie können das Spark-Protokoll Web UI öffnen, indem Sie die Seite mit den Instanzdetails Ihrer Analytics Engine-Serviceinstanz öffnen, zur Registerkarte Spark-Protokoll wechseln und auf Spark-Protokoll anzeigen klicken.

Alternativ kann die Web UI-URL des Spark-Protokollservers über einen Serviceendpunkt abgerufen werden, der Ihnen als Serviceschlüssel (auch als Serviceberechtigungsnachweis bezeichnet) zur Verfügung gestellt wird. Siehe Serviceendpunkte abrufen.

Stellen Sie sicher, dass der Spark-Protokollserver aktiv ist, bevor Sie die Web UIöffnen.

Protokolllinks unter den Registerkarten "Stages" und "Executors" der Benutzerschnittstelle des Spark-Protokollservers funktionieren nicht, da Protokolle mit den Spark-Ereignissen nicht beibehalten werden. Aktivieren Sie die Plattformprotokollierung, um die Task-und Executorprotokolle zu überprüfen. Details hierzu finden Sie unter Protokolle konfigurieren und anzeigen.

Um ältere Anwendungen in der Benutzerschnittstelle des Spark-Protokollservers anzuzeigen, kopieren Sie die spark-Ereignisse mit dem folgenden Befehl aus dem alten Pfad in den neuen Pfad: ibmcloud cos object-copy -- bucket < Zielbucket> -- key /spark-events/<eventlog_app-1>-- copy-source /spark-events/<eventlog_app-1>

Zugriff auf die REST-API des Spark-Protokollservers

Neben der Webbenutzerschnittstelle stellt der Spark-Protokollserver auch eine REST-API bereit, die abgefragt werden kann, um die von Ihren Spark-Anwendungen generierten Spark-Ereignisse anzuzeigen. Die REST-API des Spark-Protokollservers ist als Serviceendpunkt in einem Serviceschlüssel (auch als Serviceberechtigungsnachweis bezeichnet) verfügbar. Siehe Serviceendpunkte abrufen.

Wenn Sie die REST-API des Spark-Protokollservers aufrufen, müssen Sie Ihr IAM-Token als Trägertoken im Berechtigungsheader angeben. E.g.

curl --location --request GET 'https://spark-console.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance id>/spark_history_api/v1/applications?status=completed' \
--header 'Authorization: Bearer <iam token>'

Weitere Informationen finden Sie in der REST-API-Dokumentation für Spark History Server.

Spark-Protokollserver anpassen

Standardmäßig belegt der Spark-Protokollserver 1 CPU-Core und 4 GiB Speicher, während er ausgeführt wird. Wenn Ihr Spark-Protokollserver mehr Ressourcen verwenden soll, können Sie die folgenden Eigenschaften in den Standardkonfigurationen Ihrer Analytics Engine-Instanz festlegen:

  • ae.spark.history-server.cores für die Anzahl der CPU-Cores
  • ae.spark.history-server.memory für die Speicherkapazität

CPU-Cores und Speichereinstellungen mithilfe der REST API aktualisieren

Sie können die Einstellungen für CPU-Kerne und Hauptspeicher mithilfe der REST-API Analytics Engine wie folgt aktualisieren:

curl --location --request PATCH "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/default_configs" \
--header "Authorization: bearer <iam_token>" \
--header 'Content-Type: application/json' \
--data-raw '{
        "ae.spark.history-server.cores": "2",
        "ae.spark.history-server.memory": "8G"
}'

Es wird nur eine vordefinierte Liste von Spark-Treiber und Executor vCPUsowie Kombinationen von Speichergrößen unterstützt. Weitere Informationen finden Sie unter Supported Spark driver and executor vCPU and memory kombinationen.

Zusätzliche Anpassungen

Sie können den Spark-Protokollserver weiter anpassen, indem Sie Eigenschaften zur Spark-Standardkonfiguration Ihrer Analytics Engine-Instanz hinzufügen. Siehe Standardkonfigurationsoptionen für Spark-Protokolle.

Da es sich um ein verwaltetes Angebot handelt, können Sie nicht alle Standardkonfigurationsoptionen für Spark anpassen.

Eine Liste der unterstützten Konfigurationen und Standardwerte für Einstellungen finden Sie unter Spark-Standardkonfiguration.

Bewährte Verfahren

Stoppen Sie den Spark-Protokollserver immer, wenn Sie ihn nicht mehr benötigen. Beachten Sie, dass der Spark-Protokollserver kontinuierlich CPU-amd-Speicherressourcen verbraucht, während sein Status Started ist.