如何将Spark日志记录标准重定向到控制台

时间:2017-10-24 17:23:12

标签: apache-spark pyspark apache-spark-sql

当我的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

1 个答案:

答案 0 :(得分:1)

要使log4j.properties文件按预期工作,需要将以下内容添加到spark-submit(假设log4j.properties在类路径中):

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

但最重要的是,您需要确保在spark-submit中执行yarn client mode,否则您的驱动程序将在群集中的某个节点中启动,您将看不到其登录安慰。

要检查在spark-submit上执行yarn cluster mode的日志,请使用此yarn.log-aggregation-enable=true中的yarn-site.xml}:

yarn logs -applicationId <applicationId> 
相关问题