Spark Streaming 日志拆分

背景

spark streaming 任务,任务持续运行会产生大量的日志,查看起来非常麻烦,而且非常浪费时间。

方案

主要针对log4j.properties文件进行修改,此处引入了spark executor 启动时添加到JVM中的系统变量${spark.yarn.app.container.log.dir}。生成的日志会存储在yarn的配置参数(yarn.nodemanager.log-dirs)指定的目录下。

log4j.rootLogger=INFO, console ,dRFile, dRFileError

#console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout

#按日期滚动文件(info)
log4j.appender.dRFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dRFile.File=${spark.yarn.app.container.log.dir}/app-info
log4j.appender.dRFile.DatePattern=.yyyyMMdd
log4j.appender.dRFile.Threshold=INFO
log4j.appender.dRFile.layout=org.apache.log4j.PatternLayout

#按日期滚动文件(error)
log4j.appender.dRFileError=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dRFileError.File=${spark.yarn.app.container.log.dir}/app-error
log4j.appender.dRFileError.DatePattern=.yyyyMMdd
log4j.appender.dRFileError.Threshold=ERROR
log4j.appender.dRFileError.layout=org.apache.log4j.PatternLayout

效果展示

driver 及 executor 上日志的展示如下

[app-error : Total file length is 100 bytes.]
[app-info : Total file length is 100 bytes.]
[app-info.20201119 : Total file length is 100 bytes.]
[app-info.20201120 : Total file length is 100 bytes.]
[stderr : Total file length is 100 bytes.]
[stdout : Total file length is 0 bytes.]

关于大数据方面技术问题可以咨询,替你解决你的苦恼。参考WX:hainanzhongjian

你可能感兴趣的:(Spark Streaming 日志拆分)