2015-08-03 22 views
9

Amazon EMR kümesinde işleri gönderiyorum. Tüm kıvılcım kayıtlarının redis/logstash'a gönderilmesini istiyorum. Bunu yapmak için EMR altında kıvılcımı konfigüre etmenin doğru yolu nedir?Bir apache-spark loggin'i bir Amazon EMR kümesinde redis/logstash'a göndermenin en iyi yolu

  • log4j tutun: Bir appender eklemek /home/hadoop/spark/conf/log4j.properties değiştirmek için bir önyükleme işlem ekle? Ancak, bu dosya zaten bir çok şey içeriyor ve hadoop conf dosyasına bir bağlantı. Zaten bazı rootLoggers içerdiğinden bununla çok fazla uğraşmak istemiyorum. Hangi ek en iyi ne yapardı? ryantenney/log4j-redis-appender + logstash/log4j-jsonevent düzeni VEYA pavlobaron/log4j2redis?

  • slf4j + günlüğüne geçirme: slf4j-log4j12'yi kıvılcım çekirdeğinden hariç tut, log4j-over-slf4j ... 'yi ekleyin ve com.cwbase.logback.RedisAppender ile logback.xml kullanın. Görünüşe göre bağımlılıklar sorunlu. Log4j.properties içinde zaten tanımlanmış log4j.rootLoggers gizleyecek mi?

  • Özlediğim başka bir şey var mı?

Bu konudaki düşünceleriniz nelerdir? Ben ikinci seçenek işe alınamıyor gibi

Güncelleme

görünüyor. Çalıştırma testleri sadece iyi ama spark-submit kullanarak (--conf spark.driver.userClassPathFirst = true ile) her zaman korkutuculu "class4j-over-slf4j.jar VE class = slf4j-log4j12.jar" sınıf yolunda algılanır. StackOverflowError'ı önleme. "

+0

Log4j-over-slf4j yoluna gitmek üzereydim. Sanırım biraz zaman kurtardın. – Pengin

+1

Ben yağ-kavanoz ve kıvılcım kullanır slf4j-log4j12 ile yan yana kıvılcım ikili yan yana yüklediğinden beri onun etrafında hiçbir yolu olduğunu düşünüyorum. Bunun işe yaraması için her şeyi denedim ama başarılı olamadım. Eğer hala bir şans vermek istiyorsanız, bulgularınızda bana haber verin. –

+0

bunu aşmanın herhangi bir yolu? Fırtına ve kıvılcım gibi büyük kütüphaneler varsayılan bir lib ile paketleniyor. –

cevap

-1

Kümede bunun için ekstra bir arka plan kurarım.

İlgili konular