pyspark JOB失败,"设备上没有剩余空间"

时间:2016-12-06 16:15:09

标签: apache-spark hdfs pyspark

我在Master + 3WorkerNodes的独立群集上,当我正在运行一个工作(BIG)时,我面临的问题是"设备上没有空间"。

我尝试获取Why does a job fail with "No space left on device", but df says otherwise?的帮助,并在MASTER的spark-defaults.conf

中设置变量
spark.local.dir            SOME/DIR/WHERE/YOU/HAVE/SPACE

然后重新启动群集。但是注意到在更改之后,仍然指向/ tmp(在作业由df -h运行时看到内存使用情况)用于临时shuffle存储而不是指向我在defaults.conf中设置的目录(我可以在webUI的环境TAB)。

为什么/ tmp仍然指向任何IDEA?我需要设置任何其他地方吗?

也跟着Spark:java.io.IOException: No space left on device得到:我需要在spark-evn.sh中设置以下属性

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

export SPARK_JAVA_OPTS

什么是" / mnt / spark"和" / mnt / ephemeral-hdfs"路径表示?我是否需要在master' s spark-env.sh或每个worker-Node上设置它。

请求帮助。感谢...

1 个答案:

答案 0 :(得分:7)

好的,得到了​​解决方案,我认为设置" spark.local.dir"将被saprk默认值i:e / tmp path覆盖。

但是在主人和工人" spark-env.sh"中设置以下2个变量。工作

export SPARK_WORKER_DIR=dir_you_have_enough_Space
export SPARK_LOCAL_DIRS=dir_you_have_enough_Space

希望有一天能帮助某人...... :)