自己 spark 优化心得

Spark 优化

资源调优

1. 阻塞间隔

有一个配置参数:spark.streaming.blockInterval,它的意思是每间隔多少秒后,Spark才把接收到的数据组成数据块存到Spark中。官网推荐的最小值是50ms,默认值200ms。假设实例化InputDStream时设置的Duration(batch interval)为1秒(1000ms),那么任务执行时,总共有 1000 / 200 = 5 个block,每个block将对应一个task。如果task的数量少于每台机器配置的core的数量,则说明资源没有被很好的利用。应减少 spark.streaming.blockInterval 或增加batch interval。

​ 注意:官网并没有说要使得task的数量和core的数量一致。能想到两个的原因:(1)receiver也会占用core (2)driver也会占用core

2. 设置正确的Batch Interval

​ 每个时间间隔提交的job应该能处理完这个时间间隔内收到的数据。可以通过Web UI 去查看批处理的时间是否小于interval

3. executors , 内存 核心数等 分配

可以先设置的比较大,然后根据spark 的Web UI 来确定合适的资源分配.

代码调优

避免创建重复的RDD, 尽可能复用RDD,对多次使用的RDD进行持久化

数据倾斜

美团解决数据倾斜的方案

https://tech.meituan.com/2016/05/12/spark-tuning-pro.html

参考链接

  • spark调优指南,8各个方面 https://zhuanlan.zhihu.com/p/54293797
  • 美团spark性能优化基础篇 https://tech.meituan.com/2016/04/29/spark-tuning-basic.html
  • 美团spark性能优化高级篇 https://tech.meituan.com/2016/05/12/spark-tuning-pro.html

未完待续…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值