我已经构建了一个pyspark应用程序,并使用log4j进行了日志记录。
问题是当我在yarn-client模式下运行spark应用程序时,正在发生日志记录,但是当我在yarn-cluster模式下运行该应用程序却没有。
我也希望以群集模式打印日志消息并将其另存为文件。
已尝试
Spark-submit —-files option
and setting spark.executor.extrajavaoptions and spark.driver.extrajavaoptions.
My log4j.properties
log4j.rootCategory=INFO,FILE
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=/some/path/to/edgeNode/SparkDriver.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
[当您希望提供自定义log4j文件时,请在spark-submit命令中提供它。之所以如此,是因为一旦启动spark,其自己的log4j文件便会优先于其他log4j配置。将您的log4j文件作为driver.java.options标志的一部分提供。如果您以群集模式而不是客户端模式运行作业,请在spark.executors.extraJavaOptions中提及log4j文件。请记住,驱动程序节点以及您的计算节点都必须可以访问要写入日志的位置。