sparkstreaming日志切分配置

在Spark Standalone模式下,spark默认使用org/apache/spark/log4j-defaults.properties配置,所有的日志都记录在stderr里面,由于Spark Streaming应用程序是一直运行的,时间长了以后stderr文件会非常大,占用空间的同时难以让我们调试和定位问题,所以我们需要切分日志,spark原生提供了对Executor日志的切分,Driver日志需要我们单独配置log4j。

  • Executor日志切分,在spark应用环境变量中配置
  spark.executor.logs.rolling.strategy  time  //可以按日期(time)和日志大小(size)来切分日志
  spark.executor.logs.rolling.time.interval daily  //可以按天、小时、分钟切分
  spark.executor.logs.rolling.maxRetainedFiles 7  //保留多少个日志文件,旧的日志自动删除

或者也可以自定义日志生成方式,只要配置参数spark.executor.extraJavaOptions,指定log4j配置。
- Driver日志切分
sparksubmit的时候自定义log4j, –driver-java-options “-Dlog4j.configuration=file:/$PATH/log4j-driver.properties -Dapp.logging.name=NAME” ,用NAME去区分不同spark应用

 log4j.rootCategory=INFO,  FILE
 log4j.appender.FILE.Threshold=info 
 log4j.appender.FILE.file=/$PATH/${app.logging.name}-driver.log  
 log4j.appender.FILE.DatePattern='.'yyyy-MM-dd 
 log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
 log4j.appender.FILE.layout.ConversionPattern=[%p] %d %c %M - %m%n 

你可能感兴趣的:(spark)