sparkui 界面地址_望闻问切-如何看sparkui

本文介绍了如何使用SparkUI来诊断和分析Spark作业的问题。通过查看job页面找出执行最慢的作业,关注job之间的间隔以判断是否存在文件数目不合理或RPC问题。在stage列表中定位执行时间最长的stage,以及在task列表中发现数据分布不均和执行错误。同时,分析log页面的task stdout和stderr以获取更详细的错误信息。
摘要由CSDN通过智能技术生成

1.前言

现在越来越多的作业都在使用spark/spark sql,希望借助于spark本身偏内存计算的特性来解决我们在数据生产中的性能问题。然而,世间没有能够解决一切问题的银弹,在使用spark的时候,我们本身也会遇见各种各样的问题。我们在使用spark的时候,如何能够快速发现spark的问题所在呢?本文提供了一些小小的技巧,希望能够帮助到大家。

2.一步一步发现问题

2.1 job页面找出执行最长的jobjob页面的duration是支持排序的,通过排序我们能够知道,那个作业执行最久,方便后续从stage和task方面做进一步的分析注意job之间的间隔,定位是否有文件数目不合理问题或者集群rpc是否有问题如果观察到spark job本身并没有特别慢的作业,那么需要关注一下作业之间的间隔。间隔指的是 上一个job的完成时间和下一个job的开始时间的时间差由上图可以发现,job 26的完成时间 02:39左右和27的启动时间 03:50 相差巨大,这也是引起作业性能瓶颈的原因。这时候可以通过driver的日志做进一步的定位。(文件数目过多,集群压力稍大的情况下文件写入会很耗时。)

小文件合并是否有坑vip的集群默认会开启小文件合并选项(set spark.sql.merge.output.enabled=false;),有时候,这也是一个性能瓶颈的问题所在,特别是针对半小时或者15分钟应用

小文件合并的作业一般是整个insert 语句完成的倒数第二个+第一个作业(经验),具体可以通过job的stage做进一步的确认。

一个经典的小文件合并的job如下(关注dag图):

2.2 stage列表 页面找执行时间最长的

2.3 task列表 页面关注数据分布

上图说明了stage的所有task的数据分布,能有效的帮助我们发现数据倾斜(时间大,数据量多)

关注task所在的机器通过对task的执行时长(duration)进行排序,看看慢的task是不是在一台机器上,有的时候,线上的机器会有坑

通过对task列表 error 列的处理,task 执行是否有错

2.4 log页面可以通过具体的task的strout 和strerr 来帮助我们发现一些问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值