根据Sparklens优化参数(图文解释)

前言

如何使用Sparklens已经发给大家了传送门,那么如何根据生成的图去判断如何优化参数呢?如何判断数据倾斜该优化呢?

参数优化

1、如何设置executor 核数

可以参考这个,如果浪费太多就减少一点。像下面这个应用级别浪费了84.76%

根据Sparklens优化参数(图文解释)_第1张图片

根据Sparklens优化参数(图文解释)_第2张图片

2、如何设置executor 内存

查看发现这个峰值其实并不高。所以根据这个峰值来算。2~5倍最合适。

根据Sparklens优化参数(图文解释)_第3张图片

当然可以看后端的解析日志,有提示。比如下面这个。在executor数量不变的情况下,提示给1.4G最合适。 

根据Sparklens优化参数(图文解释)_第4张图片

3、如何设置executor 数量

设置不同的数量预计跑多久。这个图有标识,集群利用率其实是贼低的。

根据Sparklens优化参数(图文解释)_第5张图片

查看这个图可以看出来其实可以缩小executor数量,很多都没用满。 

根据Sparklens优化参数(图文解释)_第6张图片

代码优化

1、数据倾斜。

查看这两个值,值越大,stage的数据倾斜越大。然后去spark-ui上看看自己这个阶段在执行哪一段代码去优化。

根据Sparklens优化参数(图文解释)_第7张图片

2、自动优化代码?别想了~Sparklens不支持给你优化代码。

脚本解析

在2022-02-11日已完成对日志的解析。大家可以根据Sparklens的结果报告进行解析。我自己写的解析报告是这样的。并叮嘱我们开发人员上线前一定要看下报告。

每次跑完的任务报告。

根据Sparklens优化参数(图文解释)_第8张图片

 采集到Sparklens优化结果,总结出需要优化的任务看板。

现在这个也是参考阶段,可能有的地方解释的不对。大家提出来我进行测试。

目前通过Sparklens已经优化了内存排名前10的任务,在不影响效率的情况下,平均速度提升45分钟,平均资源减少了500G。

我计划写一套代码,将自动识别yarn中任务匹配这个解析日志,获取不合理的配置资源任务。然后给出推荐资源配置。(2022-02-11日已完成)

后期我准备再做优化,两种优化方案:

1、自动化获取不合理任务资源配置。并进行钉钉报警。做成看板和把任务@给代码开发者(已实现)。

2、 自动化调参,未来不进行人工调参,自动化对参数进行。

近期没时间做这一块,在做clickhouse和davinci的优化,dolphinscheduler还有二次开发和升级。

2022-03-07补充:目前使用Sparklens对任务进行优化,任务已经降低7T的资源了。对个别任务依然有点问题,就是他的模型解析并不准确。建议大家在他推荐的内存资源上按照比例(1.5)或者固定值(6G)去增加资源。防止资源忽然暴增造成的任务失败。

最后希望能够帮助到大家。坚持原创拒绝抄袭。

你可能感兴趣的:(Spark,spark,大数据,big,data)