spark将正在处理的数据存储在 _temporary
文件夹。作业完成后,数据将移动到其最终目的地。但是,当有上万个分区时,将文件从一个地方移动到另一个地方需要相当长的时间。问:如何加快这一行动?在yarn cluster模式下,在裸机hadoop上运行应用程序,而不是在aws上(没有s3、emr等)。
更新:我的工作需要大约1个小时才能在25000个分区中生成2.3t的数据,另外一个小时才能将数据移出临时分区。
spark将正在处理的数据存储在 _temporary
文件夹。作业完成后,数据将移动到其最终目的地。但是,当有上万个分区时,将文件从一个地方移动到另一个地方需要相当长的时间。问:如何加快这一行动?在yarn cluster模式下,在裸机hadoop上运行应用程序,而不是在aws上(没有s3、emr等)。
更新:我的工作需要大约1个小时才能在25000个分区中生成2.3t的数据,另外一个小时才能将数据移出临时分区。
1条答案
按热度按时间7jmck4yq1#
通过在任务提交期间使用
spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version 2
. 但是,这意味着如果任务在提交过程中失败,则结果是“未定义的”。你在用速度换取安全。