Spark Yarn容器根据大小(stdout,stderr)滚动日志

时间:2020-02-20 11:14:21

标签: apache-spark hadoop logging log4j yarn

此问题由来已久,有人可以帮忙还是建议我是否需要对用例进行进一步说明。我想在我的Spark yarn应用程序容器日志上设置滚动日志文件。我尝试了以下方法,但是它开始创建单独的日志集并对其进行滚动工作,但是我希望滚动原始层次结构。

我在项目的/ resource /文件夹中创建了一个log4j.properties文件,并编写了以下代码来实现滚动。

# Root logger option
log4j.rootLogger=DEBUG, SysErr, filerolling
log4j.logger.dt.iotproject=INFO, SysOut, SysErr, filerolling
log4j.logger.com.sksamuel=DEBUG
log4j.additivity.dt.iotproject=false

# Direct info log messages to SysOut
log4j.appender.SysOut=org.apache.log4j.ConsoleAppender
log4j.appender.SysOut.Target=System.out
log4j.appender.SysOut.layout=org.apache.log4j.PatternLayout
log4j.appender.SysOut.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p %c{1}:%L - %m%n
log4j.appender.SysOut.filter.y=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.SysOut.filter.y.LevelMin=INFO
log4j.appender.SysOut.filter.y.LevelMax=INFO

# Direct error log messages to SysErr
log4j.appender.SysErr=org.apache.log4j.ConsoleAppender
log4j.appender.SysErr.Target=System.err
log4j.appender.SysErr.layout=org.apache.log4j.PatternLayout
log4j.appender.SysErr.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p %c{1}:%L - %m%n
log4j.appender.SysErr.filter.y=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.SysErr.filter.y.LevelMin=ERROR
log4j.appender.SysErr.filter.y.LevelMax=ERROR

# Direct error log messages to file
log4j.appender.filerolling=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.filerolling.Append=true
log4j.appender.filerolling.rollingPolicy=org.apache.log4j.rolling.FixedWindowRollingPolicy
log4j.appender.filerolling.triggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.filerolling.triggeringPolicy.MaxFileSize=4000
log4j.appender.filerolling.rollingPolicy.FileNamePattern=/var/log/log4j/spark-%i.log
log4j.appender.filerolling.rollingPolicy.ActiveFileName=/var/log/log4j/spark.log
log4j.appender.filerolling.layout=org.apache.log4j.PatternLayout
log4j.appender.filerolling.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss.SSS zzz} %t %p %c{1}: %m%n
log4j.appender.filerolling.encoding=UTF-8

该方法是将日志存储在var / logs /

现在,在下面检查,这些日志文件夹仍然存在于/ application_1568014840254_0773 / container_1568014840254_0773_01_000004 /

-rw-rw-r--. 1 admin admin    32295 Feb 19 06:39 directory.info
-rw-r-----. 1 admin admin    38557 Feb 19 06:39 launch_container.sh
-rw-rw-r--. 1 admin admin        0 Feb 19 06:39 prelaunch.err
-rw-rw-r--. 1 admin admin      100 Feb 19 06:39 prelaunch.out
-rw-rw-r--. 1 admin admin      498 Feb 19 06:39 stderr
-rw-rw-r--. 1 admin admin 19501983 Feb 20 11:06 stdout

如您所见,stdout文件夹正在增长,因此我的目标是在此结构上设置滚动附加程序。

我想要的最后一件事是,只要此stdout,stderr文件夹超过特定阈值,它就会触发新文件。

如何实现?我需要进行哪些修改?

0 个答案:

没有答案
相关问题