Die beste Methode zum Senden von Apache-Spark-Loggins an redis / logstash in einem Amazon EMR-Cluster [geschlossen]

8

Ich übermittle Jobs auf einem Amazon EMR-Cluster. Ich möchte, dass alle Spark Logging an redis / logstash gesendet werden. Was ist der richtige Weg, Funken unter EMR zu konfigurieren, um dies zu tun?

  • Keep log4j: Fügen Sie eine Bootstrap-Aktion hinzu, um /home/hadoop/spark/conf/log4j.properties zu modifizieren, um einen Appender hinzuzufügen? Diese Datei enthält jedoch bereits eine Menge Zeug und ist ein Symlink zur hadoop-conf-Datei. Ich möchte nicht zu viel damit herumspielen, da es bereits einige RootLogger enthält. Welcher Appender würde es am besten können? ryttenney / log4j-redis-appender + logstash / log4j- jsonevent-layout ODER pavlobaron / log4j2redis?

  • Auf slf4j + logback migrieren: slf4j-log4j12 aus spark-core ausschließen, log4j-over-slf4j hinzufügen ... und logback.xml mit com.cwbase.logback.RedisAppender verwenden? Sieht so aus, als wäre das bei Abhängigkeiten problematisch. Versteckt es log4j.rootLoggers, die bereits in log4j.properties definiert sind?

  • Was habe ich noch verpasst?

Was sind deine Gedanken dazu?

Aktualisieren

Sieht so aus, als könnte ich die zweite Option nicht zum Arbeiten bekommen. Das Ausführen von Tests ist in Ordnung, aber die Verwendung von spark-submit (mit --conf spark.driver.userClassPathFirst = true) endet immer mit dem gefürchteten "Log4j-über-slf4j.jar UND slf4j-log4j12.jar im Klassenpfad erkannt, StackOverflowError. "

    
Michel Lemay 03.08.2015, 15:16
quelle

1 Antwort

-1

Ich würde dafür einen zusätzlichen Daemon auf dem Cluster einrichten.

    
Jorge Machado 12.12.2017 14:10
quelle

Tags und Links