spark流式处理作业不会删除无序文件

dojqjjoe  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(318)

我有一个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
但这并没有解决问题。
目前我自动重新启动作业,每隔几个小时启动一个新的作业,当应用程序停止时,它会删除缓存
我该怎么做才能删除缓存文件?
谢谢

whlutmcx

whlutmcx1#

禁用动态分配。在做所有的清理工作之前,执行者会被杀死。如果执行者不是经常被杀死/造成泄漏,那么泄漏就消失了。
为此,在spark submit命令中:

--conf "spark.dynamicAllocation.enabled=false"
tvmytwxo

tvmytwxo2#

我有一个cron作业(每小时一次)清理超过6小时的文件/目录以修复磁盘空间不足的问题,我在spark/yarn中没有找到一个参数可以自动执行此操作,下面是详细信息。
crontab条目。

0 * * * * /home/hadoop/clean_appcache.sh >/dev/null 2>&1

清除appcache.sh


# !/bin/bash

BASE_LOC=/mnt/yarn/usercache/hadoop/appcache
sudo find $BASE_LOC/ -mmin +360 -exec rmdir {} \;
sudo find $BASE_LOC/ -mmin +360 -exec rm {} \;

相关问题