Spark 通過 spark-submit 設定日誌級別
阿新 • • 發佈:2019-02-17
前言
Spark有多種方式設定日誌級別,這次主要記錄一下如何在spark-submit設定Spark的日誌級別。
1、需求
因為Spark的日誌級別預設為INFO(log4j.rootCategory=INFO, console),這樣在執行程式的時候有很多我不需要的日誌資訊都打印出來了,看起來比較亂,比較煩,抓不住重點,而我只想把warn和error打印出來。
之前在測試環境或者在eclipse我是通過其他幾種方式(下面會介紹)設定的,但是在生產環境下不允許我修改叢集的配置檔案(不是我負責~),而在程式碼裡設定日誌級別卻不生效(原因還沒找到),最後通過spark-submit裡設定日誌級別搞定的。
2、spark-submit 設定
spark-submit --conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=file:log4j.properties"
3、其他幾種設定方法
3.1 修改叢集的配置檔案
cd $SPARK_HOME/conf
cp log4j.properties.template log4j.properties
vim log4j.properties
將log4j.rootCategory=INFO, console改為log4j.rootCategory=WARN, console
3.2 在Eclipse裡設定
將log4j.properties放在專案的src/main/resources即可
- Spark 預設日誌檔案:org/apache/spark/log4j-defaults.properties
3.3 程式碼裡配置(未生效)
spark.sparkContext.setLogLevel("WARN")
- 在程式碼裡設定,不生效原因未知
4、 總結
- 1、如果在自己的測試叢集上,直接修改$SPARK_HOME/conf下的log4j.properties即可
- 2、如果在Eclipse裡,將log4j.properties放在專案的src/main/resources即可
- 3、如果在生產環境的叢集,又不允許修改配置檔案的話,用上面講的spark-submit --conf 即可