当前位置:   article > 正文

Spark性能调优-总结分享_sparkthriftserver并发调优

sparkthriftserver并发调优

1、Spark调优背景

目前Zeppelin已经上线一段时间,Spark作为底层SQL执行引擎,需要进行整体性能调优,来提高SQL查询效率。本文主要给出调优的结论,因为涉及参数很多,故没有很细粒度调优,但整体调优方向是可以得出的。

环境:服务器600+,spark 2.0.2,Hadoop 2.6.0

2、调优结果

调优随机选取线上9条SQL,表横轴是调优测试项目,测试在集群空闲情况下进行,后一个的测试都是叠加前面测试参数。从数据可参数经过调优,理想环境下性能可提高50%到300%

3、 下面为调优分享PPT

1)一图概览

这里写图片描述

2) Spark集群优化——数据本地性

这里写图片描述

3)Spark集群优化——存储格式选择

这里写图片描述

4)Spark参数优化——计算资源

这里写图片描述

5) Spark参数优化——并行度

这里写图片描述

6)Spark参数优化——offheap内存

这里写图片描述

7)Spark参数优化——大小表join

这里写图片描述

8)Spark参数优化——其他

这里写图片描述

9) Spark参数优化——shuffle过程

这里写图片描述

10)Spark代码优化——RDD复用

这里写图片描述

11)Spark代码优化——选择合适算子

这里写图片描述

12) Spark代码优化——shuffle算子并行度调优

这里写图片描述

13)Spark代码优化——数据倾斜

这里写图片描述

14)Spark代码优化——优化数据结构

这里写图片描述

15)Spark代码优化——使用DateSet API

这里写图片描述

16)Spark代码优化——使用DateSet API

这里写图片描述

17) 目前Spark的瓶颈——内存

这里写图片描述

18) 目前Spark的瓶颈——内存

这里写图片描述

3、总结

调优参数虽名目多样,但最终目的是提高CPU利用率,降低带宽IO,提高缓存命中率,减少数据落盘。 
不同数据量的最优参数都不相同,调优目的是让参数适应数据的量级以最大程度利用资源,经调优发现并不是所有参数有效,有的参数的效果也不明显,最后折中推荐如下调优参数以适应绝大多数SQL情况,个别SQL需要用户单独调参优化。(以下参数主要用于Spark Thriftserver,仅供参考)

参数含义默认值调优值
spark.sql.shuffle.partitions并发度200800
spark.executor.overhead.memoryexecutor堆外内存512m1.5g
spark.executor.memoryexecutor堆内存1g9g
spark.executor.coresexecutor拥有的core数13
spark.locality.wait.process进程内等待时间33
spark.locality.wait.node节点内等待时间38
spark.locality.wait.rack机架内等待时间35
spark.rpc.askTimeoutrpc超时时间101000
spark.sql.autoBroadcastJoinThreshold小表需要broadcast的大小阈值1048576033554432
spark.sql.hive.convertCTAS创建表是否使用默认格式falsetrue
spark.sql.sources.default默认数据源格式parquetorc
spark.sql.files.openCostInBytes小文件合并阈值41943046291456
spark.sql.orc.filterPushdownorc格式表是否谓词下推falsetrue
spark.shuffle.sort.bypassMergeThresholdshuffle read task阈值,小于该值则shuffle write过程不进行排序200600
spark.shuffle.io.retryWait每次重试拉取数据的等待间隔530
spark.shuffle.io.maxRetries拉取数据重试次数310
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/649179
推荐阅读
相关标签
  

闽ICP备14008679号