我在spark集群中运行YARN之上的应用程序,但我需要设置自己的日志文件创建路径,并需要更改日志消息的格式。为此,我想使用我定制的Log4j。属性文件,而不是默认的log4j。YARN提供的属性文件。如何做到这一点?
我使用这个spark-submit脚本将我的log4j.properties
推送到Yarn,以便我可以控制日志模式。我特别想要完整的包名,这样我就可以从生成的Yarn应用程序日志中找出我的类在记录什么。
spark-submit
--class com.acme.Main
--master yarn
--deploy-mode cluster
--driver-memory 2g
--executor-memory 1g
--driver-class-path "./conf"
--files "./conf/app.properties,./conf/log4j.properties"
./lib/my-app-uber.jar
"$@"
就我个人而言,我只使用ConsoleAppender
,我所有的应用程序日志记录都出现在标准的Yarn日志中。HDFS不能使用RollingFileAppender
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - %-5p %c:%L -> %m%n
你应该在
看到你的结果yarn logs -applicationId <your-app-id>