2015-08-03 30 views
9

Zgłaszam iskrzenie do pracy w klastrze usługi Amazon EMR. Chciałbym, aby wszystkie dzienniki iskier były wysyłane do redis/logstash. Jaki jest właściwy sposób konfiguracji iskry w ramach EMR, aby to zrobić?Najlepszy sposób wysyłania logu apache-iskry do redis/logstash w klastrze Amazon EMR

  • Przechowywać log4j: Dodaj bootstrap działania w celu modyfikacji /home/hadoop/spark/conf/log4j.properties dodać appender? Jednak ten plik zawiera już wiele rzeczy i jest dowiązaniem symbolicznym do pliku hadoop conf. Nie chcę zbytnio się tym bawić, ponieważ zawiera już kilka rootLoggerów. Który z aplikantów postąpiłby najlepiej? ryantenney/log4j-redis-appender + logstash/log4j-jsonevent-layout OR pavlobaron/log4j2redis?

  • Migracja do slf4j + logback: wykluczenie slf4j-log4j12 z iskrownika, dodanie log4j-over-slf4j ... i użycie logback.xml z com.cwbase.logback.RedisAppender? Wygląda na to, że będzie to problematyczne z zależnościami. Czy ukryje log4j.rootLoggers już zdefiniowane w log4j.properties?

  • Coś jeszcze przegapiłem?

Co sądzisz o tym?

Aktualizacja

Wygląda na to, że nie może dostać Druga opcja do pracy. Uruchamianie testów jest w porządku, ale użycie polecenia iskrzenia (z --conf spark.driver.userClassPathFirst = true) zawsze kończy się na dreaded "Wykryto zarówno log4j-over-slf4j.jar AND slf4j-log4j12.jar na ścieżce klasy, wywłaszczanie StackOverflowError. "

+0

Chciałem zejść z trasy log4j-over-slf4j. Myślę, że zaoszczędziłeś mi trochę czasu. – Pengin

+1

Myślę, że nie da się tego obejść, ponieważ ładuje binarne iskry obok naszego słoika i iskra używa slf4j-log4j12. Próbowałem dzisiaj różnych rzeczy, aby to zadziałało, ale się nie udało. Jeśli nadal chcesz dać mu szansę, niech mi opublikuje informacje na temat twoich ustaleń. –

+0

jakikolwiek sposób obejścia tego? główne biblioteki takie jak burza i iskra są pakowane z domyślną biblioteką. –

Odpowiedz

-1

Wezwałbym do tego dodatkowego demona w klastrze.