我已经引用了以下链接并进行了相同的更改
并重新启动了历史记录服务器和资源管理器,但是它并没有在定义的时间之后删除容器日志。这会导致节点运行不正常。
我的配置如下
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>600</value>
</property>
"/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
能不能请你告诉我我想念的东西?
答案 0 :(得分:0)
请确保您遵循以下步骤-
在EMR上打开终止保护,以避免由于终止而导致数据丢失,我想您可能已经这样做了。
避免这种情况的解决方案是将火花记录推入s3。
对于流作业,这由“ /etc/spark/conf/log4j.properties”文件中的“ log4j.logger.org.apache.spark.streaming = INFO,DRFA-stderr,DRFA-stdout”属性处理。
但是,此设置当前仅适用于基于Java的Spark Streaming应用程序。对于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-history服务器。
请参考https://aws.amazon.com/premiumsupport/knowledge-center/emr-cluster-disk-space-spark-job/以获取5.18.0之前的EMR版本