【问题标题】:Apache Spark to S3 upload performance IssueApache Spark 到 S3 上传性能问题
【发布时间】:2014-11-20 16:22:13
【问题描述】:

当 Apache Spark 将其结果上传到 S3 时,我发现了一个主要的性能问题。据我了解,这些步骤...

  1. 最终阶段的输出被写入 HDFS 中的_temp/ 表,并被移动到特定S3 文件夹内的"_temporary" 文件夹中。

  2. 一旦整个过程完成 - Apache spark 完成 saveAsTextFile 阶段,然后将 S3 中的 "_temporary" 文件夹中的文件移动到主文件夹中。这实际上需要很长时间 [每个文件大约 1 分钟(平均大小:600 MB BZ2)]。这部分没有登录到通常的stderr 日志中。

我在 AWS EMR 上使用 Apache Spark 1.0.1Hadoop 2.2

有人遇到过这个问题吗?

更新 1

如何增加执行此移动过程的线程数?

任何建议都非常感谢......

谢谢

【问题讨论】:

    标签: amazon-s3 hdfs apache-spark emr


    【解决方案1】:

    这已通过 SPARK-3595 (https://issues.apache.org/jira/browse/SPARK-3595) 修复。它被包含在 1.1.0.e 及更高版本中(请参阅https://github.com/awslabs/emr-bootstrap-actions/tree/master/spark)。

    【讨论】:

      【解决方案2】:

      我使用以下函数。它将文件上传到s3。它在 4-6 分钟内上传大约 60 gb , gz 文件。

              ctx.hadoopConfiguration().set("mapred.textoutputformat.separator",
                      ",");
              counts.saveAsHadoopFile(s3outputpath, Text.class, Text.class,
                      TextOutputFormat.class);
      

      确保创建更多输出文件。更多数量的小文件将使上传速度更快。

      API 详细信息 saveAsHadoopFile[F <: org.apache.hadoop.mapred.outputformat>]](路径: String, keyClass: Class[], valueClass: Class[], outputFormatClass: Class[F], codec: Class[ <: org.apache.hadoop.io.compress.compressioncodec rdd hadoop>

      【讨论】:

      • 你能详细说明你的答案吗?它不起作用形式...使用“Text.class”会引发错误...
      • 你可以使用函数作为 saveAsHadoopFile[F <: org.apache.hadoop.mapred.outputformat>, _]](path: String, keyClass: Class[], valueClass: Class[], outputFormatClass: Class[F], codec: Class[ <: org.apache.hadoop.io.compress.compressioncodec unit>
      猜你喜欢
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 2016-06-01
      • 2015-04-05
      • 2018-02-18
      • 2018-09-01
      • 2016-02-10
      • 2011-09-10
      相关资源
      最近更新 更多