代码之家  ›  专栏  ›  技术社区  ›  vijay

Spark streaming作业日志大小溢出

  •  3
  • vijay  · 技术社区  · 8 年前

    我在群集模式下运行了spark streaming(2.1)作业,并不断遇到一个问题,即作业在几周后被终止(由资源管理器),因为纱线容器日志导致磁盘被填满。 有没有办法避免这种情况?

    我目前为日志大小设置了以下两个设置。然而,这无助于上述情况。

    火花执行人。日志。滚动。maxRetainedFiles 2 火花执行人。日志。滚动。最大尺寸107374182

    谢谢

    3 回复  |  直到 8 年前
        1
  •  3
  •   Ravikumar    8 年前

    最好的方法是为spark流作业创建新的log4j属性,并使用File Appender来汇总文件大小和文件数,而不是控制台Appender。您可以创建 /etc/spark/conf/spark-stream-log4j。属性 如下所示

    log4j.rootCategory=INFO, filerolling
    
    log4j.appender.filerolling=org.apache.log4j.filerollingFileAppender
    log4j.appender.filerolling.layout=org.apache.log4j.PatternLayout
    log4j.appender.filerolling.layout.conversionPattern=[%d] %p %m (%c)%n
    log4j.appender.filerolling.maxFileSize=3MB
    log4j.appender.filerolling.maxBackupIndex=15
    log4j.appender.filerolling.file=/var/log/hadoop-yarn/containers/spark.log
    
    log4j.appender.filerolling.encoding=UTF-8
    
    ## To minimize the logs
    log4j.logger.org.apache.spark=ERROR
    log4j.logger.com.datastax=ERROR
    log4j.logger.org.apache.hadoop=ERROR
    log4j.logger.hive=ERROR
    log4j.logger.org.apache.hadoop.hive=ERROR
    log4j.logger.org.spark_project.jetty.server.HttpChannel=ERROR
    log4j.logger.org.spark_project.jetty.servlet.ServletHandler=ERROR
    log4j.org.apache.kafka=INFO
    

    Spark提交命令,如

    spark-submit  --conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=spark-stream-log4j.properties  -XX:+UseConcMarkSweepGC -XX:OnOutOfMemoryError='kill -9 %p'"   --conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=spark-stream-log4j.properties -XX:+UseConcMarkSweepGC  -XX:OnOutOfMemoryError='kill -9 %p'"  --files /etc/spark/conf/spark-stream-log4j.properties 
    
        2
  •  1
  •   Thomas    7 年前

    您忘记了此属性:

    火花执行人。日志。滚动。战略规模

        3
  •  0
  •   wandermonk    8 年前

    Spark生成大量信息日志。因此,您可以添加以下行,以避免记录不必要的信息日志

    import org.apache.log4j.Level;
    import org.apache.log4j.Logger;
    
    Logger.getLogger("org").setLevel(Level.OFF);
    
    推荐文章