我想在獨立的Spark羣集中爲我的應用程序定製Log4J配置。我有一個log4j.xml文件在我的應用程序JAR中。讓Spark使用該配置而不是自己的Log4J配置的正確方法是什麼?Apache Spark定製應用程序的log4j配置
我嘗試使用--conf選項來設置以下,但沒有運氣。
spark.executor.extraJavaOptions -> -Dlog4j.configuration=log4j.xml
spark.driver.extraJavaOptions -> -Dlog4j.configuration=log4j.xml
我正在使用Spark 1.4.1,並且我的/ conf中沒有log4j.properties文件。
我正在使用Gradle構建項目。我在我的src/main/resources中放置了模板文件的副本,並刪除了.template後綴並進行了部署。但仍然沒有運氣。我檢查了最終的JAR,並在其中看到了log4j.properties文件。當我從Spark UI檢查應用程序日誌時,我仍然看到文本「使用Spark的默認log4j配置文件:org/apache/spark/log4j-defaults.properties」。 –
不好意思誤解你的問題,以上只適用於自包含的火花應用程序。如果您想更改羣集的日誌記錄行爲,請將'log4j.properties.template'複製到相同的目錄中,刪除'.template'並編輯新文件。這應該爲集羣中的每個實例完成。還有'sc.setLogLevel(「LEVEL」)',但我無法理解它的表現。 – mehmetminanc
謝謝。我想查看是否有辦法在不觸及羣集配置的情況下執行此操作。如果一切都失敗了,我會走下去。 –