【问题跟踪】KryoException: java.io.IOException: No space left on device

时间:2021-11-15 14:00:06

今天在对LDA进行不同參数训练模型。记录其avglogLikelihood和logPerplexity,以便推断模型训练是否收敛时,产生了一个令人极度崩溃的事儿:程序在辛辛苦苦跑了7.3h后...挂了!

证据例如以下:

【问题跟踪】KryoException: java.io.IOException: No space left on device

早上一来看这张图,好像跑完了,然后点进去看...然后就没有然后了

【问题跟踪】KryoException: java.io.IOException: No space left on device

每次迭代都须要9min左右,迭代了近50次跟我说挂了,确实挺让人奔溃的。

先说说我的配置以及LDA參数吧

5 * 40cores cpu

5* 500g memory

參数:

【问题跟踪】KryoException: java.io.IOException: No space left on device

没办法,既然都崩溃了,跟进去找问题呗

【问题跟踪】KryoException: java.io.IOException: No space left on device

磁盘没空间了!

这是什么鬼...于是常规的,先从网上找找,看看有没有人有类似的问题。结果还真让我发现两个

Spark:java.io.IOException: No space left on device

spark參数配置调优

发现第一个的回答中比較实用的是这个:

【问题跟踪】KryoException: java.io.IOException: No space left on device

同一时候,结合第二个中的解释

【问题跟踪】KryoException: java.io.IOException: No space left on device

基本上定位到应该是spark.local.dir文件夹用来存放shuffle产生的暂时文件的空间不够用了。

好吧,那看看自己的配置咯

【问题跟踪】KryoException: java.io.IOException: No space left on device

这下子好玩儿了。配置的local文件夹空间剩余杠杠的,机器上还剩大概600G(关键是总共5台啊。!

!总共至少3T空间)。跟我说No space left on device确定不是在逗我的?好吧,看来应该不是shuffle文件存储的空间不足了。

怎么办?问题总不能摆着儿吧,没办法,那就跟进去spark的UI慢慢研究咯

【问题跟踪】KryoException: java.io.IOException: No space left on device

等等!

还真发现点儿规律,为什么报错的都是同一台机器。然后想到之前的一个任务也有fails,赶紧打开看看,验证一下

【问题跟踪】KryoException: java.io.IOException: No space left on device

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

【问题跟踪】KryoException: java.io.IOException: No space left on device

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

【问题跟踪】KryoException: java.io.IOException: No space left on device

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

看来果然是这样了。如今规律是发现了,那为什么会这样啊?刚才看到的bigdata04上的磁盘空间是全然够用的啊,真是奇了怪了!

等等!突然想起来,我好像是在这台机启动的任务

【问题跟踪】KryoException: java.io.IOException: No space left on device

也就是说,bigdata04是我的driver。

原来如此。既然是driver。那么跟存储有关的就仅仅有提交任务时配置的參数--driver-memory 50g这个了。

【问题跟踪】KryoException: java.io.IOException: No space left on device

并且。好像刚才查看运行过程的时候。shuffle write也是非常大的

【问题跟踪】KryoException: java.io.IOException: No space left on device

那就试着把--driver-memory这个參数调大点吧。

先记录到这里,等结果出来后再看看。假设没问题了再改动本文总结一下!