Spark 1.6 DirectFileOutputCommitter

时间:2016-02-04 19:13:38

标签: java hadoop amazon-s3 apache-spark pyspark

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

示例:

  

someRDD.saveAsTextFile(" S3A:// somebucket / savefolder&#34)

这会创建一个

  

S3A:// somebucket / savefolder / _temporary /

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

  

S3A:// somebucket / savefolder

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

相关链接:

  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

1 个答案:

答案 0 :(得分:1)

我能够通过使用Databricks的DirectOutputCommitter修补Hadoop 2.7.2并将修补的jar部署到我的spark实例来解决此问题。以下链接是带有修补罐的git仓库。

Github Link