我有一个关于在AWS EMR上运行的Apache Spark作业的问题。每次执行Spark作业时,都会产生大量日志,例如我的情况下,日志大小约为5-10GB,但其中80%的日志是信息(无用),我该如何减少这些日志?
我使用了log4j2 for Spark将日志级别更改为“warn”,以避免不必要的日志,但由于这些日志来自Spark中的不同组件,其中一些日志来自YARN,一些日志来自EMR,因此它们合并在一起。那么如何解决这个问题?是否有人有这样的经验?因为我不想重新配置集群中的每个节点。
我尝试了以下解决方案,似乎在EMR中无效。
以下是XML配置。
我使用了log4j2 for Spark将日志级别更改为“warn”,以避免不必要的日志,但由于这些日志来自Spark中的不同组件,其中一些日志来自YARN,一些日志来自EMR,因此它们合并在一起。那么如何解决这个问题?是否有人有这样的经验?因为我不想重新配置集群中的每个节点。
我尝试了以下解决方案,似乎在EMR中无效。
Logger logger = LogManager.getLogger("sparklog");
logger.setlevel()
以下是XML配置。
String used to match the log4j2.xml configuration files
<Configuration status="WARN" monitorInterval="300">////reload the configuration file each 300 seconds
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> //// control output format
</Console>
</Appenders>
<Loggers>
<Logger name="sparklog" level="warn" additivity="false">//// configuration the myloger loger level
<AppenderRef ref="Console" />
</Logger>
<Root level="error">
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>