1. 程式人生 > >Spark 通過 spark-submit 設定日誌級別

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"

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 即可