SparkJob运行慢的原因和解决(调优也可以以此为答案)

发布于 2021-04-23 17:04:22
【多选题】
A 机器内存不足,不合理的资源参数设置等,导致无法承载大量数据的存储和运算,提高内存和资源参数设置,如num-executors、executor-memory、executor-cores、driver-memory等
B 大量频繁磁盘读写性能消耗太大,可以尽可能减少重复的资源读写,优化程序设计,热数据处理部分硬盘使用SSD提高IO性能
C 执行器数据倾斜,导致某个相同key被partition到一个分区,造成浪费大量资源和时间,而某些执行器数据量小很快执行完毕,可以采用ETL预处理、过滤少数导致倾斜的key 提高shuffle的并行度等操作,适当场景可使用md5化的id获得较高的散列分布,以达到相对平衡的数据分布
D Rdd处理不当或重复不合理的算法导致资源消耗太大,可以优化代码和合理复用RDD进行缓存、RDD持久化,如避免创建重复的RDD,避免使用shuffle类算子,广播大变量 设计计算过程尽量整理算子,相同算子做“merge”优化,若有多个连续map/filter RDD等尽量在同一算子完成 使用Spark源生Parquet数据源格式,获得较高的处理性能
E 不必要或不合理的jar包分发,可以将jar包上传至hdfs上进行处理

查看更多

关注者
0
被浏览
119
  • 体验AI问答!更聪明、超智能!
  • 一款基于GPT的超级AI助手,可以对话、创作、写文案!
1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

手机
浏览

扫码手机浏览

分享
好友

在线
客服