【问题标题】:Spark No space left on deviceSpark 设备上没有剩余空间
【发布时间】:2018-07-17 10:50:48
【问题描述】:

我有一个 EMR 作业,它读取大约 1TB 的数据,对其进行过滤并对其进行重新分区(重新分区后有一些连接),但是我的作业在重新分区时失败,并出现错误“设备上没有剩余空间”。我厌倦了更改“spark.local.dir”,但它没有用。我的工作仅在 d2.4xlarge 实例上完成,但在具有相似核心和内存的 r3.4xlarge 上失败。我找不到这个问题的根本原因。任何帮助将不胜感激。

感谢您的宝贵时间。

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    我之前在 Spark 2.2 上遇到过同样的问题。 我可以通过在$SPARK_HOME/conf/spark-env.sh 中设置SPARK_LOCAL_DIRS=/path/to/other/tmp 来更改目录

    "spark.local.dir /tmp
    在 Spark 中用于“临时”空间的目录,包括地图输出文件和存储在磁盘上的 RDD。这应该在系统中一个快速的本地磁盘上。它也可以是不同磁盘上多个目录的逗号分隔列表。注意:在 Spark 1.0 及更高版本中,这将被集群管理器设置的 SPARK_LOCAL_DIRS(独立、Mesos)或 LOCAL_DIRS (YARN) 环境变量覆盖。" https://spark.apache.org/docs/latest/configuration.html

    【讨论】:

    • 在我的例子中,这被 Yarn 覆盖了。但是尺寸有上限吗?它是否使用了安装文件夹的所有磁盘空间或有任何限制?
    • 根据文档,我似乎看不到任何可配置的值来设置 tmp 的最大大小,它应该使用安装到您指向的 tmp 目录的最大大小。如果你的被 Yarn 覆盖,为什么不尝试设置LOCAL_DIRS
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 2012-01-14
    • 2012-05-15
    • 2018-11-22
    • 2015-07-21
    • 2020-12-16
    • 2014-11-20
    相关资源
    最近更新 更多