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.
-
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
ERRORgesetzt (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.