2017-02-25 70 views
6

Ben Amazon EMR üzerinde bir özel log4j.properties geçersiz ve kullanamıyorum. EMR'de (Yarn) Spark kullanıyorum ve özel log4j'yi denemek ve kullanmak için Spark-Submit'teki tüm kombinasyonları denedim.Özel log4j.properties AWS üzerinde EMR

--driver-java-options "-Dlog4j.configuration=hdfs://host:port/user/hadoop/log4j.properties" 

--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=hdfs://host:port/user/hadoop/log4j.properties" 

Ayrıca, yerel dosya sisteminden dosya seçmeyi denedim: hdfs yerine file: ////. Bunların hiçbiri işe yaramıyor. Ancak, yerel İplik kurulumumda çalışırken bu çalışmayı başarabilirim.

Herhangi bir fikrin var mı?

cevap

2

log4j HDFS hakkında hiçbir şey bilmiyor, dolayısıyla yapılandırma dosyası olarak bir hdfs: // yolunu kabul edemiyor. Genel olarak log4j'yi yapılandırma hakkında daha fazla bilgi için bkz. here.

EMR'de log4j'yi yapılandırmak için, sürücü ve yürütücüler tarafından yüklenen log4j.properties dosyasına anahtar/değer çiftleri eklemek için Configuration API'u kullanabilirsiniz. Özellikle, Properties'inizi spark-log4j yapılandırma sınıflandırmasına eklemek istersiniz. - EMR yetiştirme sırasında geçirilen yapılandırma aracılığıyla log4j.properties geçirin

1:

1

Temelde, destek ile sohbet ve belgeleri okuduktan sonra, ben bunu yapmak 2 seçenek olduğunu görüyoruz. Jonathan cevabında bundan bahsetmiştir.

2 - "--files /path/to/log4j.properties" anahtarını kıvılcım gönderme komutunuza ekleyin. Bu, log4j.properties dosyasını her bir Spark Executor'ın çalışma dizinine dağıtır, ardından -Dlog4jconfiguration öğenizi yalnızca dosya adına yönlendirecek şekilde değiştirin: "spark.driver.extraJavaOptions = -Dlog4j.configuration = log4j.properties"

+0

Çözüm 2, Spark işinin kümede çalıştığı durumlarda da çalışır? 20-40machines gibi, her çalışan log4j özellikleri dosyasını okuyabilir mi? Teşekkürler – SharpLu

+0

Evet, küme ile de çalışması gerekir. – Kaptrain