apache-spark - 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 小时。
任何帮助将不胜感激
解决方案
推荐阅读
- sql - 如何更新电子表格中的列值
- javascript - 在Javascript forEach中,循环直到函数结果不为假
- javascript - 使用 Intersection Observer API 的延迟加载图像导致 SEO 索引失败
- azure - 如何在不停机的情况下使用 terraform 升级 AKS 集群
- tshark - 过滤 .csv 的 tshark 输出。防止缺少字段的错误
- laravel - 当另一个 api 服务器也在 localhost 中运行时,从 NextJs 应用程序的 gatServerProps 获取数据
- javascript - 过滤对象以仅包含对象数组中存在的键
- sql - 除了分层数据之外,递归 CTE 还用于什么?
- intersystems-iris - 流中缺少 GUID 引用
- calculated-columns - 如何将非确定性计算列转换为确定性列以进行索引