Informationen zur Spark-Protokollebene konfigurieren

Überprüfen Sie die ausgeführten Anwendungen und ermitteln Sie anhand der Protokolle, die von der Spark-Anwendung IBM Analytics Engine generiert werden, die vorhandenen Probleme. Die verfügbaren Standardprotokollstufen sind ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL und OFF. Standardmäßig protokolliert die Spark-Anwendung Analytics Engine die Protokollebene WARN für Spark-Treiber und OFF für Spark-Executors. Sie können die Protokollierungsstufe so konfigurieren, dass relevante und weniger ausführliche Nachrichten angezeigt werden.

Die Protokollierungskonfiguration IBM Analytics Engine konfiguriert die Informationen zur Protokollebene des Spark-Frameworks. Dies hat keine Auswirkungen auf die Protokolle, die vom Benutzercode mit Befehlen wie 'logger.info()', 'logger.warn()', 'print ()' oder 'show ()' in der Spark-Anwendung geschrieben werden.

Optionen konfigurieren

Konfigurieren Sie die folgenden IBM Analytics Engine-Protokolle, um die Protokollebene der Spark-Anwendung einzurichten:

  • Spark-Treiberprotokolle (mit ae.spark.driver.log.level)
  • Spark-Executor-Protokolle (mit ae.spark.executor.log.level)

Geben Sie die Option im Abschnitt 'Spark-Konfigurationen' an, wenn Sie eine IBM Analytics Engine-Instanz bereitstellen oder eine Spark-Anwendung übergeben. Sie können die folgenden Standardprotokollstufenwerte angeben:

  • ALLE
  • TRACE
  • DEBUG
  • INFO
  • WARNUNG
  • FEHLER
  • FATAL
  • AUS

Der Standardwert für die Protokollebene des Treibers ist WARN und die Protokollebene des Steuerprogramms ist OFF.

Sie können die Konfiguration auf zwei Arten anwenden:

  • Konfiguration auf Instanzebene
  • Konfiguration auf Anwendungsebene

Informationen Spark-Protokollebene auf Instanzebene konfigurieren

Geben Sie zum Zeitpunkt der Bereitstellung einer IBM Analytics Engine-Instanz die Protokollstufenkonfigurationen unter dem Attribut default_config an. Weitere Informationen finden Sie unter Spark-Standardkonfiguration.

Beispiel:


    "default_config": {
        "ae.spark.driver.log.level": "WARN",
        "ae.spark.executor.log.level": "ERROR"
    }

Informationen zur Spark-Protokollebene auf Anwendungsebene konfigurieren

Geben Sie bei der Übergabe eines Jobs die Optionen in den Nutzdaten unter conf an. Weitere Informationen finden Sie unter REST-API für Spark-Anwendung.

Beispiel:


{
     "conf": {
	"ae.spark.driver.log.level":"WARN",
	"ae.spark.executor.log.level":"WARN",
     }
}

Beispielanwendungsfall

Festlegen der Spark-Konfiguration auf Protokollebene auf Instanzebene: Der Beispielanwendungsfall berücksichtigt das Szenario, in dem Sie eine IBM Analytics Engine-Instanz bereitstellen und die Protokollebene so konfigurieren, dass alle Anwendungen in der Instanz den Wert ERROR protokollieren.

  1. Legen Sie die folgenden Konfigurationen als Spark-Standardkonfigurationen fest:

    • ae.spark.driver.log.level = FEHLER
    • ae.spark.executor.log.level = FEHLER

    Nach dem Festlegen der Spark-Standardkonfiguration wird die Protokollebene für alle Anwendungen, die an die Instanz übergeben werden, auf ERROR gesetzt (sofern die Anwendungsnutzdaten die Spark-Konfiguration während der Übergabe nicht angeben).

Spark-Konfiguration auf Jobebene festlegen: Der Beispielanwendungsfall betrachtet ein Szenario, in dem Sie eine Anwendung und die Protokollebene so konfiguriert haben, dass Protokolle auf der Stufe INFO protokolliert werden. Sie können die Spark-Konfiguration in den Nutzdaten angeben. Betrachten Sie die Beispielnutzdaten:

{
  "application_details": {
     "application": "cos://<application-bucket-name>.<cos-reference-name>/my_spark_application.py",
     "arguments": ["arg1", "arg2"],
     "conf": {
        "spark.hadoop.fs.cos.<cos-reference-name>.endpoint": "https://s3.direct.us-south.cloud-object-storage.appdomain.cloud",
        "spark.hadoop.fs.cos.<cos-reference-name>.access.key": "<access_key>",
        "spark.hadoop.fs.cos.<cos-reference-name>.secret.key": "<secret_key>",
        "spark.app.name": "MySparkApp",
     "ae.spark.driver.log.level":"INFO",
     "ae.spark.executor.log.level":"INFO",
     }
  }
}

Im Beispielanwendungsfall überschreibt die Spark-Anwendung die Spark-Konfiguration auf Protokollebene, die auf Instanzebene festgelegt ist, d. h. ERROR auf INFO.