簡體   English   中英

如何將Spark日志記錄標准重定向到控制台

[英]How to redirect Spark logging stdout to console

當我的spark應用程序失敗時,它會向控制台記錄一條非常通用的消息。 為了查看詳細消息,顯示真正的錯誤,我必須轉到Spark History Server並查看我的執行程序的stdout日志。 有誰知道如何在控制台中顯示其他詳細信息? 我一直在查看一些指向log4j屬性文件的鏈接,但查看文件我認為它已經正確設置:

# Set everything to be logged to the console
log4j.rootCategory=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark-project.jetty=WARN
log4j.logger.org.spark-project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO
log4j.logger.org.apache.parquet=ERROR
log4j.logger.parquet=ERROR

一些額外的細節:

  • 我正在使用PySpark
  • 這些是Spark SQL生成的錯誤
  • 我正在群集模式下運行Yarn Master

為了使log4j.properties文件按預期工作,需要將以下內容添加到spark-submit (假設log4j.properties在classpath中):

--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j.properties" 
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j.properties" 

但最重要的是,您需要確保在yarn client mode進行spark-submit ,否則您的驅動程序將在群集中的一個節點中啟動,您將無法在控制台上看到其日志。

要檢查在yarn cluster mode上執行spark-submit日志,請使用此方法(在yarn-site.xml需要yarn.log-aggregation-enable=true ):

yarn logs -applicationId <applicationId> 

暫無
暫無

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

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