当我的Spark应用程序失败时,它会在控制台上记录一个非常通用的消息。为了查看揭示真实错误的详细消息,我必须转到Spark历史服务器并查看执行器的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运行