java - Spark 1.6 DirectFileOutputCommitter

标签 java hadoop amazon-s3 apache-spark pyspark

我在使用 pyspark 将文本文件保存到 S3 时遇到问题。我能够保存到 S3,但它首先上传到 S3 上的 _temporary,然后继续复制到预期位置。这会显着增加作业运行时间。我试图编译一个 DirectFileOutputComitter,它应该直接写入预期的 S3 url,但我无法让 Spark 使用此类。

示例:

someRDD.saveAsTextFile("s3a://somebucket/savefolder")

这创建了一个

s3a://somebucket/savefolder/_temporary/

随后写入的目录,之后 S3 复制操作将文件移回

s3a://somebucket/savefolder

我的问题是是否有人拥有 DirectFileOutputCommiter 的工作 jar,或者是否有人有解决此问题的经验。

相关链接:

  1. https://issues.apache.org/jira/browse/HADOOP-10400
  2. https://gist.github.com/aarondav/c513916e72101bbe14ec
  3. https://mail-archives.apache.org/mod_mbox/spark-user/201503.mbox/%3C029201d06334 $a0871180$e1953480$@gmail.com%3E
  4. http://tech.grammarly.com/blog/posts/Petabyte-Scale-Text-Processing-with-Spark.html

最佳答案

我能够通过使用 Databricks 的 DirectOutputCommitter 修补 Hadoop 2.7.2 并将修补后的 jar 部署到我的 spark 实例来解决这个问题。下面的链接是带有修补后的 jar 的 git 存储库。

Github Link

关于java - Spark 1.6 DirectFileOutputCommitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35209603/

相关文章:

java - 如何在 Pane 中加载 fxml 文件?

java - 递归合并排序 - 堆栈溢出错误

python - 迭代 MapReduce

amazon-s3 - 为 Amazon S3 创建我自己的错误页面

python - 如何从亚马逊 s3 存储桶中删除文件?

java - 获取引擎名称时出现空异常?

java - 在 msys 的脚本中将带引号的字符串参数传递给 java

hadoop - hadoop公平调度程序和容量调度程序均未按预期进行调度

hadoop - 合流 HDFS 连接器 : How can I read from the latest offset when there are no hdfs files?

android - 将 S3 Bucket 与 Dynamodb android 链接起来?