gpt4 book ai didi

apache-spark - Spark : java. io.IOException:设备上没有剩余空间

转载 作者:行者123 更新时间:2023-12-04 10:17:10 28 4
gpt4 key购买 nike

现在我正在学习如何使用spark。我有一段代码可以反转矩阵,当矩阵的阶数很小(如100)时可以工作,但是当矩阵的阶数较大时(如2000),我有一个异常这:

15/05/10 20:31:00 ERROR DiskBlockObjectWriter: Uncaught exception while reverting partial writes to file /tmp/spark-local-20150510200122-effa/28/temp_shuffle_6ba230c3-afed-489b-87aa-91c046cadb22

java.io.IOException: No space left on device

在我的程序中,我有很多这样的代码行:
val result1=matrix.map(...).reduce(...)
val result2=result1.map(...).reduce(...)
val result3=matrix.map(...)

(对此感到抱歉,因为代码很多要写在那儿)

所以我想当我这样做时,Spark会创建一些新的rdds,而在我的程序中,Spark会创建太多的rdds,所以我有一个异常(exception)。我不确定我的想法是否正确。

如何删除不再使用的rdds?类似于result1和result2?

我试过了rdd.unpersist(),它不起作用。

最佳答案

这是因为Spark在您本地系统的/tmp目录下创建了一些临时shuffle文件。您可以通过在spark conf文件中设置以下属性来避免此问题。

在spark-env.sh中设置此属性。

SPARK_JAVA_OPTS+=" -Dspark.local.dir=/mnt/spark,/mnt2/spark -Dhadoop.tmp.dir=/mnt/ephemeral-hdfs"

export SPARK_JAVA_OPTS

关于apache-spark - Spark : java. io.IOException:设备上没有剩余空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30162845/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com