清理Emr集群上的Spark流历史记录

时间:2019-06-17 01:34:11

标签: apache-spark spark-streaming yarn amazon-emr

我已经引用了以下链接并进行了相同的更改

  1. https://aws.amazon.com/premiumsupport/knowledge-center/core-node-emr-cluster-disk-space/
  2. Cleaning up Spark history logs

并重新启动了历史记录服务器和资源管理器,但是它并没有在定义的时间之后删除容器日志。这会导致节点运行不正常。

我的配置如下

  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 个答案:

答案 0 :(得分:0)

请确保您遵循以下步骤-

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

  2. 避免这种情况的解决方案是将火花记录推入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版本