Spark会在_temporary
文件夹中存储正在处理的数据。作业完成后,数据将移至其最终目的地。但是,当有数万个分区时,将文件从一个位置移动到另一个位置需要相当长的时间。问题:如何加快这一举措?
在纱线群集模式下运行应用程序,在裸机Hadoop上运行,而不是在AWS上运行(无S3,EMR等)。
更新:我的工作大约需要1小时才能在25000个分区中生成2.3T数据,而另一个小时则会将数据移出_temporary。
答案 0 :(得分:2)
您可以使用选项spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version 2
在任务提交期间执行移动来加快速度。但是,这意味着如果任务在提交过程中失败,则结果为" undefined"。你正在为安全而交易速度。