spark Driver进程不退出导致的临时文件爆盘问题

在使用Spark处理ActiveMQ消息时,由于Driver进程持续运行,系统/tmp目录下积累了大量spark-<uuid>目录,每个包含100M的jar包,可能导致磁盘爆满。查阅文档和源码发现,尽管有配置选项,但在Driver机器上仍无法自动清理。问题在于Driver不退出,JVM的shutdown hook无法触发。解决方案不应使用kill -9强杀,而应确保Driver正常退出以触发清理机制。
摘要由CSDN通过智能技术生成

在做的项目里面已经开始用到spark,其中一个项目的场景是这样的:

后台有一个activeMq的listener进程(它是一个守护进程),监听mq队列的消息。 每次收到一个消息,listener进程就会根据消息的内容(其实就是任务的参数,用于生成RDD),提交一个spark任务去运行。这里spark不是streaming,只是一个批处理任务。


我们都知道,activeMq的监听进程是守护进程,不会退出。也就是spark的Driver进程永远不会退出,当使用时间比较长的时候,我们在系统的/tmp目录下,发现大量的spark-<uuid> 的目录,每个目录里面有任务运行的jar包(我们任务依赖于大量的其他项目,用了sparkContext的setJarByClass设置jar包)。每个jar包有100M, 所以如果频繁提交spark任务,每次任务都会产生jar包,那将很快爆盘。(是的,我们就是被爆菊了。。)


其实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值