spark ui 指南
- [++++1.sparkUI 基本介绍++++](#1.sparkUI 基本介绍)
- ++++2.jobs页面++++
- [++++3.stages 页面++++](#3.stages 页面)
- [++++4.storage 页面++++](#4.storage 页面)
- [++++5.environment 页面++++](#5.environment 页面)
- [++++6.ececutor 页面++++](#6.ececutor 页面)
- [++++7 sql 页面++++](#7 sql 页面 )
spark ui 是反应一个spark 作业执行情况的页面,通过查看作业的执行情况,分析作业运行的状态.
1.sparkUI 基本介绍
进入运行主页面如下,主要有6各部分 任务实例: http://10.71.190.31:18081/history/application_1638893170232_266874/jobs/
![](https://file.jishuzhan.net/article/1709100428051877890/e76dab6fa64935297707bcc637c41737.webp)
![](https://file.jishuzhan.net/article/1709100428051877890/38eb667da6a4cf1188bd79d2e7b10399.webp)
|---|-------------|-----------------|-------------------------------------------------------------------------------------------------------------------------|
| | 标签页 | 描述 | |
| 1 | jobs | spark作业执行的job | |
| 2 | stages | 所有stage信息 | The Stages tab displays a summary page that shows the current state of all stages of all jobs in the Spark application. |
| 3 | storage | rdd存储信息 | RDDs and DataFrame持久化 |
| 4 | environment | 作业配置参数 | JVM, Spark, and system 属性 |
| 5 | executors | 展示作业executors信息 | 任务executor创建信息, 包括 内存 ,磁盘使用 ,task ,shuffle信息) |
| 6 | sql | 解析sql 的信息 | |
2.jobs页面
本次任务有14个job
![](https://file.jishuzhan.net/article/1709100428051877890/dcd593e1cb5c9095362018d5578b3fb1.webp)
2.1 event_time
![](https://file.jishuzhan.net/article/1709100428051877890/fcfd4e061c27f108f7f804eea8614764.webp)
按照时间顺序executor 的开始和结束时间点(added, removed)
2.2 job tab页面
每个job的信息包括 job id, description描述 , 提交时间, 耗时, stages数量, task 运行情况
2.3 job详情页面
点击job 描述可以进入对应的job详情页面
- Status: SUCCEEDED (running, succeeded, failed)
- Submitted: 2021/12/14 11:48:06
- Duration: 1.5 min
- Associated SQL Query: 2 job 的sql tab 连接
- [Completed Stages:](#Completed Stages:) 1 每个状态的stage 数量 (active, pending, completed, skipped, failed)
- [Skipped Stages:](#Skipped Stages:) 8
Event Timeline
DAG Visualization : job 的有向无环图, 点表示: RDDs or DataFrames 边表示: rdd上的操作
stage根据active, pending, completed, skipped, and failed状态分类的列表
input : 从storage 读取字节数
output: 写入storage 字节数
shuffle read : shuffle 和 记录读取的字节数, 包括 本地数据读取和其他executor 节点读取字节数
shuffle write : 写入磁盘的字节和记录数,在下一个stage的shuffle 阶段读取.
注意看到stage 19-24 是 跳过了, 原因是spark shuffle 的数据会写到磁盘固化,当上游当上游stage(19-24)和之前执行过的stage 相同时,可以直接用之前的结果.
问题 :从图可以看出job之间是否可以并行?
3.stages 页面
3.1 stages 页面会显示作业所有的stage信息, 同样根据状态分组(active, pending, completed, skipped, and failed)
![](https://file.jishuzhan.net/article/1709100428051877890/00201e92811b1867e69c84e30409bfc3.webp)
3.2 Stage detail
所有task 的总时间, 统计矩阵, shuffle 信息, 所属的job id
![](https://file.jishuzhan.net/article/1709100428051877890/11a448e1c659532ae15b37bb78312404.webp)
dag图上 展示一些操作名称: BatchScan, WholeStageCodegen, Exchange, etc
![](https://file.jishuzhan.net/article/1709100428051877890/bdcbcf9ba08985393b2c75af4f54154f.webp)
task 之间是否可以并行?
![](https://file.jishuzhan.net/article/1709100428051877890/93dbc0a35365d7433fd67d10612f79f4.webp)
4.storage 页面
作业执行过程中缓存信息,包含 rdd 的大小和分部信息
运行时显示,但是B站的spark ui 点了没反应
5.environment 页面
作业运行环境和参数
查看 driver 和 executor 实际配置的大小
driver=6g executor=9g
![](https://file.jishuzhan.net/article/1709100428051877890/137a5b9e9169a9ef397f725b408f4702.webp)
6.ececutor 页面
作业包含的executor统计指标
![](https://file.jishuzhan.net/article/1709100428051877890/d3cbe8053e75260b5c9fc6c03ae54453.webp)
正在运行中的任务有 thread dump ,跟踪task 的执行过程, 目前只能点开 driver 的节点, executor 节点 点击不开.
![](https://file.jishuzhan.net/article/1709100428051877890/48111852d005da35584d5664865715ef.webp)
![](https://file.jishuzhan.net/article/1709100428051877890/72041d241101e36c7dfd96259b7f2135.webp)
7 sql 页面
spark SQL 的执行情况, 一条sql 在spark 中如何执行. 但是B站的spark ui 点了没反应,需要从另外的入口进去, associated sql query 点击
![](https://file.jishuzhan.net/article/1709100428051877890/0c48058e8a52731a201ba87abb0b73f4.webp)
detail 展示sql 在sqprk 中解析和优化的,B站的这一模块只展示了 3和4 部分
![](https://file.jishuzhan.net/article/1709100428051877890/01a92998e2bd6432def57bc284f3f245.webp)
1.analysis 2.logical optimization 3. physical planing 4. code generation
![](https://file.jishuzhan.net/article/1709100428051877890/2f4cb7ac99fc785fa331ff641504415b.webp)
问题
1.job driver executor task 关系
物理划分: client 提交→ appmaster 申请资源启动 → driver 启动→ executor启动 → code 执行 → 资源回收释放
逻辑划分 action → job → stage → task
2.判断任务倾斜
运行时间长?
![](https://file.jishuzhan.net/article/1709100428051877890/0492e08d26219e3557699423369a13ca.webp)
参考链接:
1.官网: ++++https://spark.apache.org/docs/3.2.0/web-ui.html#stages-tab++++