【问题标题】:How to make spark save it's temp files on S3?如何让火花在 S3 上保存它的临时文件?
【发布时间】:2019-03-06 13:47:59
【问题描述】:

我正在 AWS EMR 集群上运行 spark 作业,从客户端主机提交它们。 客户端机器只是一个 EC2 实例,它在集群模式下使用 yarn 向 EMR 提交作业。

问题是 - spark 保存每个 200Mb 的临时文件,例如:

/tmp/spark-456184c9-d59f-48f4-9b0560b7d310655/__spark_conf__6943938018805427428.zip

Tmp 文件夹很快就被这些文件填满了,我开始收到失败的作业并出现错误:

No space left on device

我尝试在 spark-defaults.conf 中配置 spark.local.dir 以指向我的 s3 存储桶,但它在路径中添加了用户目录前缀,如下所示:/home/username/s3a://my-bucket/spark-tmp-folder

您能否建议我如何解决此问题?

【问题讨论】:

    标签: amazon-web-services apache-spark amazon-s3


    【解决方案1】:
    • 我上传了压缩包__spark_conf__6943938018805427428.zip
      将 spark 库添加到 s3 存储桶中。
    • 然后我在属性中的spark-defaults.conf中指定了
      spark.yarn.archive s3a://mybucket/libs/spark_libs.zip我的
      提交作业的客户端主机。
    • 现在 spark 仅将配置加载到需要
      的本地 tmp 文件夹 只有 170Kb 而不是 200Mb。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 2018-02-11
      • 2018-01-19
      • 1970-01-01
      • 2017-07-05
      相关资源
      最近更新 更多