FsHistoryProvider 类在初始化时,会调用 startPolling() 方法,来启动两个定时任务,即日志文件解析任务和日志文件清理任务,两个任务均是由独立线程执行。当然,日志文件清理任务是否开启是由参数 spark.history.fs.cleaner.enabled 控制(默认为 false,线上环境为 true,即开启了日志文件清理任务)。 //位置:core/src/ma...
// 删除出故障或死掉的worker,或完成的Application // 总结一下清理机制:1、从内存缓存结构中移除;2、从相关组件的内存缓存中移除;3、从持久化存储中移除 workers.filter(_.state == WorkerState.UNKNOWN).foreach(removeWorker) apps.filter(_.state == ApplicationState.UNKNOWN).foreach(finishApplication) //...
spark.io.compression.codec (默认是lz4压缩,不用改,直接用推荐的即可) spark.io.compression.lz4.blocksize (默认是32k,太小,需要调大) spark.history.ui.port (默认是18080) spark.history.fs.cleaner.enable (开启日清理,默认是false) spark.history.fs.cleaner.interval (默认1d检测一次) spark.history.fs....
5. 另外如果配置了清理开关(默认一天清理一次),则会清理内存中超时的application信息,并删除超时且已完成的文件,加载和清理这两个动作由同一个线程完成,以防止冲突。 for (file <- logInfos) { tasks += replayExecutor.submit(new Runnable { override def run(): Unit = mergeApplicationListing(file) }) }...
Spark History Server 是spark内置的一个http服务,通过sbin/sbin/start-history-server.sh启动。History Server启动后,会监听一个端口,同时启动两个定时任务线程,分别用来解析eventLog日志文件和清理过期的eventLog日志文件。 Spark History Server启动后,我们可以直接在浏览器输入http://ip:port访问。一般默认端口是18080...
原来是因为 HistoryServer 启动的时候使用了默认的 log4j.properties 文件里面的配置,导致每次只有重启 HistoryServer 的时候日志才会切割,如果不重启 HistoryServer,日志文件会无限制的增长下去;而且切割出去的日志文件也不会被Spark系统清理,久而久之导致存放 HistoryServer 日志的文件夹越来越大,这就导致了今天的磁盘报警...
storyServer会回收最先缓存的Spark应用,同时会清理掉相应的“temp_shuffle”文件。 当用户正在查看即将被回收的Spark应用时,可能会出现找不到“temp_shuffle”文件的错误,从而导致当前页面无法访问。 处理步骤 如果遇到上述问题,可参考以下两种方法解决。 来自:帮助中心 ...
解决spark日志清理问题 背景由于采用了sparkstreaming 任务一直再运行导致日志文件暴涨,达到了硬盘的预警,不得已必须指定策略定期删除日志已保证服务器硬盘空间。...,但是会有很多细节甚至有些文件不能删除(由于进程占用),这里不做详细介绍了。...hourly 2.解决历史日志问题spark-env.sh 文件添加 历史日志清洗参数...
spark.history.fs.cleaner.enable,开启日清理,默认是false spark.history.fs.cleaner.interval,默认1d检测一次 spark.history.fs.cleaner.maxAge,清理7d前的日志 这些属性可以在提交一个作业的时候设置,如果想要对所有作业都启用该机制,那么可以在spark-defaults.conf文件中配置这三个属性 ...