pyspark JOB失败并显示"设备上没有剩余空间"

3 hdfs apache-spark pyspark

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

我试着获得帮助为什么一个工作失败了"设备上没有剩余空间",但df说不然? 并在MASTER的spark-defaults.conf中设置变量

spark.local.dir            SOME/DIR/WHERE/YOU/HAVE/SPACE
Run Code Online (Sandbox Code Playgroud)

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

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

还跟着Spark:java.io.IOException:设备上没有剩余空间 并得到:我需要在spark-evn.sh中设置下面的属性

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

export SPARK_JAVA_OPTS
Run Code Online (Sandbox Code Playgroud)

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

请求帮助.谢谢...

小智 7

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

但是在master和worker的"spark-env.sh"中设置以下2个变量是有效的.

export SPARK_WORKER_DIR=dir_you_have_enough_Space
export SPARK_LOCAL_DIRS=dir_you_have_enough_Space
Run Code Online (Sandbox Code Playgroud)

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