gpt4 book ai didi

r - Spark : java. io.IOException : No space left on device [again!]

转载 作者:行者123 更新时间:2023-12-03 16:45:13 27 4
gpt4 key购买 nike

我收到了 java.io.IOException: No space left on devicesparklyr 中运行简单查询后发生的情况.我使用了 Spark 的最后一个版本(2.1.1) 和 Sparklyr

df_new <-spark_read_parquet(sc, "/mypath/parquet_*", name = "df_new", memory = FALSE)

myquery <- df_new %>% group_by(text) %>% summarize(mycount = n()) %>%
arrange(desc(mycount)) %>% head(10)

#this FAILS
get_result <- collect(myquery)

我确实设置了两个
  • spark.local.dir <- "/mypath/"
  • spark.worker.dir <- "/mypath/"

  • 使用通常的
    config <- spark_config()

    config$`spark.executor.memory` <- "100GB"
    config$`spark.executor.cores` <- "3"
    config$`spark.local.dir` <- "/mypath/"
    config$`spark.worker.dir` <- "mypath/"
    config$`spark.cores.max`<- "2000"
    config$`spark.default.parallelism`<- "4"
    config$`spark.total-executor-cores`<- "80"
    config$`sparklyr.shell.driver-memory` <- "100G"
    config$`sparklyr.shell.executor-memory` <- "100G"
    config$`spark.yarn.executor.memoryOverhead` <- "100G"
    config$`sparklyr.shell.num-executors` <- "90"
    config$`spark.memory.fraction` <- "0.2"

    Sys.setenv(SPARK_HOME="mysparkpath")
    sc <- spark_connect(master = "spark://mynode", config = config)

    哪里 mypath有超过 5TB 的磁盘空间(我可以在 Environment 选项卡中看到这些选项)。我在 Pyspark 中尝试了类似的命令它以同样的方式失败(同样的错误)。

    通过查看 Stages Spark 中的选项卡, 我看到错误发生在 shuffle write是关于 60 GB . (输入大约是 200GB )。鉴于我有足够的可用空间,这令人费解。我已经看过其他 SO 解决方案了...

    集群作业以 magpie 启动 https://github.com/LLNL/magpie/blob/master/submission-scripts/script-sbatch-srun/magpie.sbatch-srun-spark

    每次启动 Spark 作业时,都会看到一个名为 spark-abcd-random_numbers 的目录。在我的 /mypath文件夹。但是里面的文件大小非常小(远不及 60GB shuffle write)
  • 大约有 40 个 Parquet 文件。每个都是700K (原始 csv 文件为 100GB)它们本质上包含字符串。
  • 集群是 10 个节点,每个节点有 120GB RAM 和 20 个内核。

  • 这里有什么问题?
    谢谢!!

    最佳答案

    我以前多次遇到过这个问题。背后的原因是临时文件。大多数服务器有一个非常小的分区 /tmp/这是 spark 的默认临时目录。
    通常,我曾经通过在 spark-submit 中设置它来改变它命令如下:

    $spark-submit --master local[*] --conf "spark.driver.extraJavaOptions=-Djava.io.tmpdir=/mypath/" ....

    在您的情况下,我认为您可以将其提供给 R 中的配置,如下所示(我没有测试过,但应该可以):
    config$`spark.driver.extraJavaOptions` <- "-Djava.io.tmpdir=/mypath/"
    config$`spark.executor.extraJavaOptions ` <- "-Djava.io.tmpdir=/mypath/"

    请注意,您必须为驱动程序和执行程序更改它,因为您使用的是 Spark 独立主控(正如我在您的问题中所见)
    我希望这会有所帮助

    关于r - Spark : java. io.IOException : No space left on device [again!],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44888223/

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