首页 > 解决方案 > Spark 独立文件处理顺序会降低性能

问题描述

嗨,我是 Apache Spark 的初学者,并在其中做了一些工作......感谢对以下情况的任何帮助。

第 1 步:我正在运行一个 Spark 独立/本地实例,该实例在运行时从我的 Maven 构建 jar 中实例化。第2步:我正在查看.gz(gunzip)文件的文件夹并使用java中的javaSparkContext.textFile(logFilePath,partitionCount).map((final String line)代码读取它们。使用.persist(StorageLevel.MEMORY_AND_DISK_SER()); Step3 :一切正常,处理没有问题,我坚持的是一种情况(处理顺序),下面解释考虑 50 个大小从 500KB 到 250MB 的 gunzip(.gz)文件。类别 1:10 个文件文件 0f 500KB第 2 类:10 个文件 - 1.5MB 第 3 类:10 个文件 - 8MB 第 4 类:10 个文件 - 108MB 第 5 类:10 个文件 - 248MB

案例/情况:分别处理文件所有5个类别文件时,性能良好。但是一旦将所有 5 个类别文件放在同一个文件夹中并处理它们,那么 jar 的性能就像地狱一样。使用的硬件是 8 核/32GB 内存。我从这里得到的是,如果不同大小的文件保持在一起并随机处理。性能几乎是 30 倍。

一些统计数据:单独处理类别文件时:每个文件的平均时间为20分钟。但是当随机处理相同的文件时,所花费的时间超过 8 小时。

任何帮助将不胜感激

标签: apache-spark

解决方案


推荐阅读