针对Scala应用程序的Spark定制log4j集成

针对Scala应用程序的Spark定制log4j集成,scala,maven,apache-spark,log4j,hortonworks-data-platform,Scala,Maven,Apache Spark,Log4j,Hortonworks Data Platform,我对spark和Scala也是新手, 问题是我无法调试我的应用程序 我在Scala中使用Maven开发了一个spark应用程序。 但我无法记录详细信息,这意味着无法获取生成日志文件的位置,因为根据log4j属性,日志文件在给定路径下不可用 我需要做的任何特定更改,以获取该日志文件 我正在霍顿工厂测试我的应用程序 用于提交应用程序的命令: bin/spark-submit --master yarn-cluster --class com.examples.MainExample lib/Test

我对spark和Scala也是新手, 问题是我无法调试我的应用程序

我在Scala中使用Maven开发了一个spark应用程序。 但我无法记录详细信息,这意味着无法获取生成日志文件的位置,因为根据log4j属性,日志文件在给定路径下不可用

我需要做的任何特定更改,以获取该日志文件

我正在霍顿工厂测试我的应用程序

用于提交应用程序的命令:

bin/spark-submit --master yarn-cluster --class com.examples.MainExample lib/Test.jar
log4j.properties文件保存在src/resources文件夹中

PFB log4j.properties

log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.myConsoleAppender.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=/var/log/spark.log
log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n


# By default, everything goes to console and file
log4j.rootLogger=INFO, myConsoleAppender, RollingAppender

 # The noisier spark logs go to file only
log4j.logger.spark.storage=INFO, RollingAppender
log4j.additivity.spark.storage=false
log4j.logger.spark.scheduler=INFO, RollingAppender
log4j.additivity.spark.scheduler=false
log4j.logger.spark.CacheTracker=INFO, RollingAppender
log4j.additivity.spark.CacheTracker=false
log4j.logger.spark.CacheTrackerActor=INFO, RollingAppender
log4j.additivity.spark.CacheTrackerActor=false
log4j.logger.spark.MapOutputTrackerActor=INFO, RollingAppender
log4j.additivity.spark.MapOutputTrackerActor=false
log4j.logger.spark.MapOutputTracker=INFO, RollingAppender
log4j.additivty.spark.MapOutputTracker=false    

尝试将log4j.properties放在'src/main/scala/resources'中。

尝试将log4j.properties放在'src/main/scala/resources'中。

无法通过应用程序解决此问题,但是,如果您在conf文件夹中更改log4j.properties,它会将日志写入给定文件。 确保路径具有写访问权限

log4j.rootLogger=INFO, FILE
# Set everything to be logged to the console
log4j.rootCategory=INFO, FILE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=/tmp/sparkLog/SparkOut.log

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

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

无法通过应用程序解决此问题,但在中,如果您按如下所示更改conf文件夹中的log4j.properties,它将写入日志以提供文件。 确保路径具有写访问权限

log4j.rootLogger=INFO, FILE
# Set everything to be logged to the console
log4j.rootCategory=INFO, FILE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=/tmp/sparkLog/SparkOut.log

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

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