【问题标题】:Spark encode in Gzip and send to S3 - java.io.IOException: No space left on deviceSpark 在 Gzip 中编码并发送到 S3 - java.io.IOException:设备上没有剩余空间
【发布时间】:2016-08-04 12:22:42
【问题描述】:

我正在尝试 GZIP 并将 RDD 发送到 S3,如下所示:

dwPartitioned.saveAsTextFile(s"s3n://$accessKey:$secretKey@bucket", classOf[GzipCodec])

作业开始运行,不久后出现:

org.apache.spark.SparkException: Job aborted due to stage failure:  ... : java.io.IOException: No space left on device

我读到由于编码的原因,需要进行一些改组,这需要生成临时文件。真的吗?我是否滥用了该功能?这里有什么可以优化的吗?

更重要的是 - 我如何在内存中实现这​​一点?

如果您需要更多信息,我很乐意追加。

【问题讨论】:

    标签: scala apache-spark amazon-s3 gzip


    【解决方案1】:

    默认情况下,spark 使用“/tmp”来保存中间文件。作业运行时,可以通过tab“df -h”查看挂载在“/”处的fs的已用空间增长情况。当 dev 的空间用完时,会抛出这个异常。要解决此问题,请将SPARK_HOME/conf/spark_defaults.conf 中的SPARK_LOCAL_DIRS 设置为fs 中的路径,留出足够的空间。

    【讨论】:

    • 不幸的是,我在 Databricks 的笔记本中工作,它们不允许您管理集群。所以我对此无能为力。
    猜你喜欢
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多