我有一个与Mesos一起运行的Spark集群作为资源管理器。当某些spark作业失败时,mesos代理节点中work_dir内的临时数据文件不会被删除。是否有任何配置可以自动清除mesos代理的work_dir中的数据
沙盒生命周期
在以下情况下,沙盒文件计划用于垃圾回收:
- 执行人被删除或终止。
- 框架已删除。
- 在代理恢复期间,执行程序恢复失败。
注意:在代理程序恢复期间,除最新运行之外,所有执行程序的运行也计划用于垃圾回收。
垃圾收集根据
--gc_delay
代理标志进行安排。默认情况下,这是自上次修改沙箱以来的一周。延迟后,文件将被删除。此外,根据
--disk_watch_interval
代理标志,计划用于垃圾收集的文件将根据可用磁盘和--gc_disk_headroom
代理标志进行修剪。请参阅此处的公式。
work_dir
中的主要空间实际上是executors / runs / latest中的文件:stdout和stderr。
如果遗嘱执行人是永久性的,那么gc_delay
就不再适用了。由于执行人不会被终止或删除。所以我们必须使用另一种方式 - container_logger。 Docs here。
配置两个标志:modules
和container_logger
。因此,当满足最大文件大小(默认为10M)时,将自动删除stdout
和stderr
。