spark性能优化

优化思路:
我认为性能优化首先的前提是程序没有错,尤其是没有oom的前提下,才能谈性能优化,从而让程序运行的快速、高效。那么现一、在谈谈怎么避免oom的几个方案:
解决的核心特点就是1.增大内存 2.减少任务内存的使用率
对于增大内存方案:
1减少worker上executor的数量 (这样每个executor占用的内存就大了)
2.设置spark.stage.memoryFraction
对于减少任务对内存的使用率方案:
1.减少executor上的core数量 (并行的任务少了,内存的占用就少了)
2.

二、优化
硬件
1.处理的spark job 的过程如果出现特别多的小文件,这个时候就可以用colesce来减少partition的数量,进而减少并行运算的task的数量来减少任务的开辟,也就是减少频繁的切换任务的执行(cpu),从而提升硬件的使用率

2.partition的设置很重要:partition过少,每个partition数据过大导致oom以及频繁的gc
partition过多,每个partition数据过小,导致执行率底下(频繁切换task)

3处理spark job的时候如果发现某些任务task运行的特别慢,方法一针对性的处理(数据倾斜),方法二考虑增加任务的并行度,减少每个partition的数据量来提升执行效率。可以尝试打开spark.speculation(任务推测 就是把相同任务在别的机子运行,当有一个完成,会杀掉其他相同的任务,以第一个完成的任务为时间) 方法三增加executor的个数提高并行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值