gpt4 book ai didi

hadoop - 停止 hadoop/EMR/AWS 创建带有 _$folder$ 扩展名的 S3 路径

转载 作者:可可西里 更新时间:2023-11-01 14:27:37 26 4
gpt4 key购买 nike

在 EMR 上运行 spark 作业,输出直接写入 S3。我注意到每个 S3 目录路径(例如 /the/s3/path)都包含一个名为 /the/s3/path_$folder$ 的标志文件。这导致使用 spark 重新加载数据时出现问题(它是 Parquet ,spark 提示额外的文件等)。

我怎样才能阻止 AWS/无论它是什么来创建这个标志?它过去也发生在 hadoop 作业中,所以我不认为它是 spark(尽管它使用 hadoop FS 的东西)。

最佳答案

嗯,是的,我以前也获取过这些文件夹,但是它们不再出现了...我怀疑是因为我对 hadoopConfiguration 进行了这些更改:

sc.hadoopConfiguration.set("spark.sql.parquet.output.committer.class","org.apache.spark.sql.parquet.DirectParquetOutputCommitter")
sc.hadoopConfiguration.set("mapreduce.fileoutputcommitter.marksuccessfuljobs", "false")
sc.hadoopConfiguration.set("parquet.enable.summary-metadata", "false")

除了将输出直接提交到 S3 之外,这些设置还阻止了元数据文件的创建,这些文件显然无论如何都没有实际用处,只会占用大量时间来创建。

我还没有证实这些设置会产生影响,但我强烈怀疑它们会产生影响。我可以在这些日子里检查它,除非你先于我;)

编辑:

DirectOuputCommitter 在 Spark 2.x 中不再可用。在 Spark 2.x 中避免临时写入 S3 的方法是将此设置添加到您的 Spark Conf:

spark.conf.set("mapreduce.fileoutputcommitter.algorithm.version", "2")

(请注意,它不再在 hadoopConfiguration 上设置)。但是,这不会删除_$folder$ 文件夹。我还没有弄清楚如何在 Spark 2.x 中禁用它们...

关于hadoop - 停止 hadoop/EMR/AWS 创建带有 _$folder$ 扩展名的 S3 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35554420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com