Spark on yarn作业运行的jar包缓存优化

  原理
内容纲要

概要描述


用spark-submit提交到yarn后,任务执行完成后,在yanr的yarn.nodemanager.local-dirs参数配置的缓存目录下生成的文件却没有清理
file

虽然在nodemanager的日志中看到了这个removed,但是实际ls还是能看到jar包还在

file

详细说明


添加清理日志的参数

https://blog.csdn.net/mtj66/article/details/51841930
根据这篇文章配置了参数yarn.nodemanager.localizer.cache.target-size-mb跟yarn.nodemanager.localizer.cache.cleanup.interval-ms但是没有达到预期效果

file
file

缓存目录下还是有jar包,而且每个缓存目录的都一样:

file

usercache缓存大小半天时间已经上百个G了,修改参数yarn.nodemanager.localizer.cache.cleanup.interval-ms希望清理的频率更大些但是没有效果

file

原因与解决

yarn.nodemanager.delete.debug-delay-sec 这个配置项在yarn-site.xml里面

这个配置项是调度task删除目录的时间,默认是24h,它是真正删除目录的时间,检查了缓存文件,确实没有超过24h的,修改这个参数是1h,验证了缓存确实1h后清理了。

之前改过的那yarn.nodemanager.localizer.cache.cleanup.interval-ms参数,它会干两件事情:

  • a) 调度删除task,删除XXX_DEL_文件夹,调度执行的时间是yarn.nodemanager.delete.debug-delay-sec,也就是24小时后执行

  • a) 检查cache文件,超过yarn.nodemanager.localizer.cache.target-size-mb的文件,会移动到XXX_DEL_文件夹里面。

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。