Spark优化工具:Sparklens实操

前言

该文发布时间是2022年1月11日。为什么要说时间呢?因为我测试的数据湖iceberg和deltaLake,10个月时间就更新好多新东西,之前测试的基本没啥参考价值了。下面进入正题。

我们Spark版本是2.3.2,每天跑的程序嗷嗷多,占的资源也嗷嗷多。为了方便统计,我做了个资源排行榜看板。

排行榜前10占的资源实在太大了。我想着找个工具来检查一下使用情况。所以找到了Sparklens,这个工具去年我有看到过。只不过当初没考虑这个优化的问题,所以拖到现在。这软件测试完发现很是好用。

言归正传,相信大家的集群都是网络隔离的吧。这两天我看了一下有关这个工具的文章,给我气的啊。都是复制粘贴别人的,身为技术人员就不能自己写一套试试?CSDN上看到复制粘贴气不过骂了几句之后,冷静下来干脆自己写吧。 

什么是Sparklens?

相关文章帖子在CSDN上搜下看吧。理论知识都是复制粘贴或者官网搬过来,没一个自己测试的。

需要提醒的是,截止2022-01月,这个工具已经4年没更新了。

GitHub:GitHub - qubole/sparklens: Qubole Sparklens tool for performance tuning Apache Spark​​​​​​

官网(后面解析json用):http://sparklens.qubole.com/

Sparklens实操

先说我们集群版本

Spark2.3.2

hadoop

2.8.4
Sparklensgithub上最新master
sbt1.3.0

1、首先编译(坑多)

从git上把最新版本拉下来之后,需要手动编译成jar包。 

因为这玩意儿,是4年前更新的,所以很多网址和包都不好下。我填了很多坑。最后依然没有很好解决。所以我按照目前sbt最新编译方式编译通过了。目前我的方法是以下。

注释掉这个。因为sbt-assembly已经不好下载了。sbt-spark-package已经6年没更新了。

build.sbt文件只留有用的

注意的是版本一定对应自己集群的版本号。现在可以编译了。

不知道怎么写的可以从maven仓库找一下(传送门)

sbt环境OK的情况下,执行 package。编译完就得到了包。

 2、如何使用Sparklens?

根据github上的操作使用(我实在懒得翻译了,截图给你们)

所以我在执行的时候加上参数。

--jars /data/tmp/liyalong/jar/sparklens_2.11-0.3.2.jar --conf spark.extraListeners=com.qubole.sparklens.QuboleJobListener

//经测试,spark-submit和spark-sql提交任务,都可以
spark-submit --jars /data/tmp/liyalong/jar/sparklens_2.11-0.3.2.jar 
--conf spark.extraListeners=com.qubole.sparklens.QuboleJobListener 
--class Model.User_Cz_Bl_Prob_model 
--master yarn 
--deploy-mode client 
--driver-memory 8G 
--executor-memory 16G 
--executor-cores 6 
--num-executors 15 
--conf spark.default.parallelism=450 
--conf spark.sql.shuffle.partitions=450 
--driver-java-options "-Xss60m" 
--queue bi 
/data/source/data_warehouse/model/jar/smzdm_2.11-0.1.jar 2022-01-09 yc

跑完之后会生成json日志。在HDFS的 /tmp/sparklens/ 目录下

3、如何查看日志?

这时候我们需要打开官网,向下翻。输入自己的邮箱,然后把咱们服务器上的json传进去。

 然后点击发送等邮件里得到解析地址

 打开这个链接就看到官网为我们解析好的报表了。

链接我就不隐藏了,方便其他人观摩,不知道啥时候过期。

查看可优化空间(下图) 

(我这个随机森林模型优化空间这么大么?好尴尬)

模拟出每个核数下跑批时间和集群利用率(下图)

 每个stage下的资源使用情况(下图)

实际执行的executor的数量和设置的数量(下图) 

显示了应用程序中所有阶段和作业中所有任务的每个值的最小值、最大值、总和和平均值等摘要信息(下图,当然这个图Spark-ui也是有的)

 还是非常棒的。

有的集群json文件不好拿下来。当然也可以直接跑spark程序去获取信息。

4、集群Spark解析日志

spark-submit 
--jars /data/tmp/liyalong/jar/sparklens_2.11-0.3.2.jar 
--class com.qubole.sparklens.app.ReporterApp 
qubole-dummy-arg /tmp/sparklens/application_1635837258039_866933.sparklens.json

执行完是这样子滴。

 

 

如何优化参数呢?请到Sparklens参数优化查看。传送门

我这个应该是CSDN上唯一自己测试Sparklens的文章了吧,觉得好就收藏。

可以转载但是别抄袭。转载请标明转载地址。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值