15,spark history webUI使用姿势

本文概述了Spark应用环境配置的重要性和排查问题的方法,涉及环境信息、Executor状态、SQL执行计划、Stage监控,以及如何通过日志和执行计划来定位和优化性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Environment

环境配置包括了几本的环境信息,和spark properties, 以及各种加载的jar包。
了解这些配置是我们排查问题的前提。

  • 一般而言,我们通过spark-submit,以及其他方式运行spark-application, 通过Environment,我们可以看到一些基础的配置设置是否和目的一样。比如设置的spark.executor.core, spark.executor.memory是否和传参一致。
  • 关于hadoop的相关properties,在这里是看不到的,如果想要看到可以自己写代码从sparkContext里面打印出来,或者通过配置spark.logConf=true,可以查看。

环境信息是排查问题首先要查看的地方,关于传参的一些配置是否被其他配置覆盖,这个地方基本都能看得到。比如常见的申请的并发数,yarn中临时目录的配置,jar包是否被更新等等,都可以在这个地方看的到。

在这里插入图片描述

Executors

  • 这个是整个applications启动过的所有executors和driver。通过driver-stderr可以查看driver收集到的日志,每一个executor的日志也可以通过对应executor的stderr中查看。
  • 以下图为例,红色的部分可以查看失败的Tasks, GC的一些情况,这些可以帮助我们排查一些问题,比如如果GC占用TaskTime的比例过高,考虑是否增加executor的内存大小,或者使用其他的GC收集算法。
  • 对于正在运行中的application, 可以查看对应executor的threadDump, thread信息可以帮助我们查看当前executor正在干什么?是否有复杂的逻辑计算拖累了整体的运行进度,很多spark的bug和比较慢的处理片段都是通过thead信息得到的。具体的方式是查看driver或者executor里面threadState=RUNNING的线程
    在这里插入图片描述

Executors的信息,我用的最多的还是日志和ThreadDump, 日志可以帮助我看到执行的流程和报错的位置,threadDump可以帮助我排查一些性能的问题。比如在读取hdfs比较慢的情况,和逻辑计算加载UDF性能比较差导致的性能问题,以及spark内部的一些bug。都可以通过threadDump中得到。

SQL

sql里面包含了各种执行计划的情况,通过详细的执行计划逻辑,我们可以知道表的查询方式和具体的查询过程。

  • 表的大小和文件数,
  • 表join的方式,是否需要广播等
  • 查询的解析,分析,优化,物理计划的详细过程。

我们可以看到哪些逻辑被优化,数据被获取的方式,分区的方式等等。
在这里插入图片描述
在这里插入图片描述

SQL部分我主要用到的还是执行计划的部分,通过执行计划能够看到所有的执行逻辑,比如关于读取RC-File, ORC文件,其实不同的配置读取是不同的,以及各种下推的逻辑,有时候文件读取比较慢的问题,其实和问题的类型有很大的关系,如何修改并发度读取,很多时候需要看具体的执行计划,才知道需要怎么修改配置。还有一种就是表的join方式,对于慢任务而言,有时候一些表不大不小,可以适当的增加广播文件的大小,来提高性能。

Stage

stage需要关注三个方面

  • DAG的过程,这个可以知道这个stage在干嘛,是shuffle,还是数据获取。
  • 监控数据Summary Metrics ,这个可以看到输入数据,输出数据,最终要的是task的执行时间,最大值,最小值,中间值,以此来判断是否有慢任务。
  • 如果有慢任务,就需要查看具体的task信息,对比inputSize, Shuffle WriterSize, GCTime等,通过与其他task对比,可以判断是否有数据倾斜,以及并发数是否太小。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Stages的部分,需要看的场景大部分是读取文件切分有问题,shuffle时候并发度有问题,数据倾斜问题。一般根据DAG的图和task的详细信息可以得到。

更加详细的可以参考这篇博客,这里就不再赘述。
https://mp.weixin.qq.com/s/3xzJMgo4QsB6BzCn4GgYWw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值