清理 emr 群集上的火花流历史记录



我参考了下面的链接并做了同样的更改

  1. https://aws.amazon.com/premiumsupport/knowledge-center/core-node-emr-cluster-disk-space/
  2. 清理 Spark 历史记录日志

并重新启动了历史记录服务器和资源管理器,但是 它不会在定义的时间后删除容器日志。 它导致节点不健康的问题。

我有如下配置

/
  1. etc/hadoop/conf/yarn-site.xml
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>600</value>
</property>
    /
  1. etc/logpusher/hadoop.config
"/var/log/hadoop-yarn/containers" : {
"includes" : [ "(.*)" ],
"s3Path" : "containers/$0",
"retentionPeriod" : "1h",
"deleteEmptyDirectories": true,
"logType" : [ "USER_LOG", "SYSTEM_LOG" ]
}

3 ./etc/spark/spark-defaults.conf

spark.history.fs.cleaner.enabled true
spark.history.fs.cleaner.maxAge  1h
spark.history.fs.cleaner.interval 1h

你能告诉我我错过了什么吗?

确保遵循以下步骤 -

  1. 在 EMR 上打开终止保护以避免因终止而导致数据丢失,我想您可能已经这样做了。

  2. 避免这种情况的解决方案是将火花日志推送到 s3 中。

对于流式处理作业,这由" log4j.logger.org.apache.spark.streaming=INFO,DRFA-stderr,DRFA-stdout " 属性 in file "/etc/spark/conf/log4j.properties" 处理。

但是,此设置目前仅适用于基于 Java 的 Spark 流式处理应用。对于 python spark 流作业,您可以使用以下配置替换/etc/spark/conf/log4j.properties 文件。

====

========================================================================================
log4j.rootLogger=INFO,file
log4j.appender.file.encoding=UTF-8
log4j.appender.file=**org.apache.log4j.rolling.RollingFileAppender**
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.RollingPolicy.FileNamePattern=${spark.yarn.app.container.log.dir}/spark-%d{yyyy-MM-dd-HH-mm-ss}.log
log4j.appender.file.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.TriggeringPolicy.maxFileSize=100000
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file.Append=true
============================================================================

此配置使用 RollingFileAppender 类在容器日志文件超过 100,000 字节(可配置)时轮换容器日志文件。每个轮换的文件都以时间戳命名,以防止重复文件上传到 S3。更新文件后,您需要在 EMR 集群中的每个节点上重新启动 Spark 历史记录服务器。

有关 5.18.0 之前的 EMR 版本,请参阅 https://aws.amazon.com/premiumsupport/knowledge-center/emr-cluster-disk-space-spark-job/