前言
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"
其中log4j.properties爲我將本地的日誌文件,拷貝到執行spark-submit的機器上 參考:https://blog.csdn.net/xueba207/article/details/50436684
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 即可