[英]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
一些額外的細節:
為了使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.