我有一个Spark流的工作,运行在电子病历,阅读Kafka的消息和输出到s3。
我使用emr-5.17.0,即hadoop2.8.4,spark 2.3.1
问题是洗牌文件正在:/mnt/yarn/usercache/hadoop/appcache/application\u 1540126328960\u 0001中累积/
在磁盘空间用完之前不要删除
这些文件看起来像:shuffle\u 328\u 127\u 0.index,shuffle\u 328\u 134\u 0.data
我确实尝试过像这样更新yarn的策略:yarn.nodemanager.localizer.cache.cleanup.interval-ms 300000 yarn.nodemanager.localizer.cache.target-size-mb 5000
但这并没有解决问题。
目前我自动重新启动作业,每隔几个小时启动一个新的作业,当应用程序停止时,它会删除缓存
我该怎么做才能删除缓存文件?
谢谢
2条答案
按热度按时间whlutmcx1#
禁用动态分配。在做所有的清理工作之前,执行者会被杀死。如果执行者不是经常被杀死/造成泄漏,那么泄漏就消失了。
为此,在spark submit命令中:
tvmytwxo2#
我有一个cron作业(每小时一次)清理超过6小时的文件/目录以修复磁盘空间不足的问题,我在spark/yarn中没有找到一个参数可以自动执行此操作,下面是详细信息。
crontab条目。
清除appcache.sh