之前一篇文章《spark on yarn日志配置及webUI界面日志查看》详细说明了spark日志怎么配置怎么查看,无论选择存储在哪里,时间一长,大量的任务日志会占用大量的空间,所以我们要定时清理,只保存最近一段时间的日志。
spark history配置参数官方说明:http://spark.apache.org/docs/latest/monitoring.html#spark-history-server-configuration-options
1.配置spark-history-server定时清理
在启动spark-history-server的spark client端配置
spark-defaults.conf
spark.history.fs.cleaner.enabled = true #是否开启清理,默认false 一定要设置为true,否则磁盘会占满
spark.history.fs.cleaner.interval = 1d #多久清理一次
spark.history.fs.cleaner.maxAge = 7d #保留多久的数据
spark.history.retainedApplications 30 #默认50 缓存的app信息个数,不要太大。否则很占内存
2.配置清理yarn 聚合日志列表清理
yarn-site.xml
1.yarn.log-aggregation-enable
参数说明:是否启用日志聚合功能,日志聚合开启后保存到HDFS上。
默认值:false
2.yarn.log-aggregation.retain-seconds
参数说明:聚合后的日志在HDFS上保存多长时间,单位为s。
默认值:-1(不启用日志聚合),例如设置为86400,24小时
3.yarn.log-aggregation.retain-check-interval-seconds
参数说明:删除任务在HDFS上执行的间隔,执行时候将满足条件的日志删除(超过参数2设置的时间的日志),如果是0或者负数,则为参数2设置值的1/10,上例值在此处为8640s。
默认值:-1
4.yarn.nodemanager.log.retain-seconds
参数说明:当不启用日志聚合此参数生效,日志文件保存在本地的时间,单位为s
默认值:10800
5.yarn.nodemanager.remote-app-log-dir
参数说明:当应用程序运行结束后,日志被转移到的HDFS目录(启用日志聚集功能时有效),修改为保存的日志文件夹。
默认值:/tmp/logs
6.yarn.nodemanager.remote-app-log-dir-suffix
参数说明:远程日志目录子目录名称(启用日志聚集功能时有效)。
默认值:logs 日志将被转移到目录${yarn.nodemanager.remote-app-log-dir}/${user}/${thisParam}下