簡體   English   中英

覆蓋Spark log4j配置

[英]Override Spark log4j configurations

我在Yarn群集上運行Spark,並配置了log4j.properties,以使所有日志默認情況下都進入日志文件。 但是,對於某些Spark作業,我希望日志能夠進入控制台而不更改log4j文件和實際作業的代碼。 實現此目標的最佳方法是什么? 謝謝大家

我知道至少有4種解決方案可以解決此問題。

  1. 您可以在Spark機器中修改log4j.properties

  2. 在Spark上運行作業時,最好將log4j文件作為配置文件附加到spark示例中

    bin / spark-submit --class com.viaplay.log4jtest.log4jtest --conf“ spark.driver.extraJavaOptions = -Dlog4j.configuration = file:/Users/feng/SparkLog4j/SparkLog4jTest/target/log4j2.properties” --master本地[*] /Users/feng/SparkLog4j/SparkLog4jTest/target/SparkLog4jTest-1.0-jar-with-dependencies.jar

  3. 嘗試將log4j導入您的邏輯代碼。

    導入org.apache.log4j.Logger; 導入org.apache.log4j.Level;

    將這些記錄器放入您的SparkContext()函數Logger.getLogger(“ org”)。setLevel(Level.INFO); Logger.getLogger( “阿卡”)setLevel(Level.INFO)。

  4. Spark使用spark.sql.SparkSession

    導入org.apache.spark.sql.SparkSession; spark = SparkSession.builder.getOrCreate()spark.sparkContext.setLogLevel('ERROR')

根據文檔: upload a custom log4j.properties using spark-submit, by adding it to the --files list of files to be uploaded with the application.

我只是在Yarn群集上嘗試了一個log4j.properties文件,它工作得很好。

spark-submit --class com.foo.Bar \
  --master yarn-cluster \
  --files path_to_my_log4j.properties \
  my.jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM