Spark的性能优化之路

发布时间:2025-06-18 10:51

更新路由器固件以获取最新性能优化 #生活技巧# #数码产品使用技巧# #无线网络优化技巧#

spark 的 parallelize () 方法,可以指定分区数量。在 coding 阶段,对此没有引起重视,只是随意填了一个很大的数,认为分区当然是越多越好。但是到了性能测试阶段,发现并不是。 1. 分区数太多意味着任务数太多,每次调度任务也是很耗时的,所以分区数太多会导致总体耗时增多。 2. 分区数太少的话,会导致一些结点没有分配到任务;另一方面,分区数少则每个分区要处理的数据量就会增大,从而对每个结点的内存要求就会提高;还有分区数不合理,会导致数据倾斜问题。 3. 对一个 RDD 数据集,处理的分区数尽量和集群节点数对应,一般是集群节点的 2-3 倍。(可以在配置文件中加入 node-size,和 partition-number)。 当然,到了这一步,感觉自己的设置真的很合理了。但是代码运行就发现掉进了一个大坑。有的 task 对这种分区方式并不适用。 例如:List<String> types = .... 节点数有 8 个,按分区数是节点数 2 倍计算,分区数为 16;如果 types.size 小于 16,就会浪费计算资源。有的分区就没有分配到数据集。 所以要进一步对分区进行控制和优化。即分数和和数据集的 size 数,取最小值,作为最终分区数。

网址:Spark的性能优化之路 https://www.yuejiaxmz.com/news/view/1056378

相关内容

spark desk怎样优化布局
Apache Spark:何时执行spark清理磁盘缓存(persist() w/ StorageLevel.useDisk == true)
基于Spark的分布式并行处理优化策略
Spark环境配置笔记
使用Spark进行高效数据清洗与预处理
基于spark的美食餐厅分析推荐系统
大数据平台开发学习路线及技能
基于Spark MLlib协同过滤算法的美食推荐系统研究
亚马逊推出社交应用Spark:全新购物分享平台
个性化学习路径的优化策略

随便看看