Spark 通過 spark-submit 設置日誌級別

前言

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 即可
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章