Spark 1.6 DirectFileOutputCommitter
Spark 1.6 DirectFileOutputCommitter
我在使用 pyspark 将文本文件保存到 S3 时遇到问题。我能够保存到 S3,但它首先上传到 S3 上的 _temporary,然后继续复制到预期位置。这会显着增加作业 运行 时间。我试图编译一个 DirectFileOutputComitter,它应该直接写入预期的 S3 url,但我无法让 Spark 使用这个 class.
示例:
someRDD.saveAsTextFile("s3a://somebucket/savefolder")
这会创建一个
s3a://somebucket/savefolder/_temporary/
随后写入的目录,之后 S3 复制操作将文件移回
s3a://somebucket/savefolder
我的问题是是否有人拥有 DirectFileOutputCommiter 的工作 jar,或者是否有人有解决此问题的经验。
相关链接:
- https://issues.apache.org/jira/browse/HADOOP-10400
- https://gist.github.com/aarondav/c513916e72101bbe14ec
- https://mail-archives.apache.org/mod_mbox/spark-user/201503.mbox/%3C029201d06334$a0871180$e1953480$@gmail.com%3E
- http://tech.grammarly.com/blog/posts/Petabyte-Scale-Text-Processing-with-Spark.html
我能够通过使用 Databricks 的 DirectOutputCommitter 修补 Hadoop 2.7.2 并将修补后的 jar 部署到我的 spark 实例来解决这个问题。下面的链接是一个 git 带有补丁 jar 的 repo。
我在使用 pyspark 将文本文件保存到 S3 时遇到问题。我能够保存到 S3,但它首先上传到 S3 上的 _temporary,然后继续复制到预期位置。这会显着增加作业 运行 时间。我试图编译一个 DirectFileOutputComitter,它应该直接写入预期的 S3 url,但我无法让 Spark 使用这个 class.
示例:
someRDD.saveAsTextFile("s3a://somebucket/savefolder")
这会创建一个
s3a://somebucket/savefolder/_temporary/
随后写入的目录,之后 S3 复制操作将文件移回
s3a://somebucket/savefolder
我的问题是是否有人拥有 DirectFileOutputCommiter 的工作 jar,或者是否有人有解决此问题的经验。
相关链接:
- https://issues.apache.org/jira/browse/HADOOP-10400
- https://gist.github.com/aarondav/c513916e72101bbe14ec
- https://mail-archives.apache.org/mod_mbox/spark-user/201503.mbox/%3C029201d06334$a0871180$e1953480$@gmail.com%3E
- http://tech.grammarly.com/blog/posts/Petabyte-Scale-Text-Processing-with-Spark.html
我能够通过使用 Databricks 的 DirectOutputCommitter 修补 Hadoop 2.7.2 并将修补后的 jar 部署到我的 spark 实例来解决这个问题。下面的链接是一个 git 带有补丁 jar 的 repo。