小编ibk*_*_jj的帖子

从 Spark 将许多文件写入镶木地板 - 缺少一些镶木地板文件

我们开发了一个作业,该作业使用 Spark 2.3 在 Amazon S3 (s3a) 中处理和写入大量 Parquet 文件。每个源文件都应该在 S3 中创建一个不同的分区。代码经过测试(使用较少的文件)并按预期工作。

然而,在使用真实数据执行后,我们注意到一些文件(总数的一小部分)没有写入 parquet。日志中没有错误或任何奇怪的东西。我们再次测试了丢失的文件的代码,它运行起来了 ¿?。我们想在生产环境中使用代码,但我们需要检测这里的问题。我们正在写这样的镶木地板:

dataframe_with_data_to_write.repartition($"field1", $"field2").write.option("compression", "snappy").option("basePath", path_out).partitionBy("field1", "field2", "year", "month", "day").mode(SaveMode.Append).parquet(path_out)
Run Code Online (Sandbox Code Playgroud)

我们使用了推荐的参数:

spark.sparkContext.hadoopConfiguration.set("mapreduce.output.fileoutputformat.compress", "true")
spark.sparkContext.hadoopConfiguration.set("mapreduce.fileoutputcommitter.algorithm.version", "2")  
spark.sparkContext.hadoopConfiguration.set("mapreduce.fileoutputcommitter.cleanup-failures.ignored", "true")
spark.conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
Run Code Online (Sandbox Code Playgroud)

使用此参数是否存在任何已知的错误问题?也许与 S3 最终一致性有关?有什么建议?

任何帮助将不胜感激。

amazon-s3 apache-spark parquet

2
推荐指数
1
解决办法
1096
查看次数

标签 统计

amazon-s3 ×1

apache-spark ×1

parquet ×1