前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark UI (1) - Jobs页面

Spark UI (1) - Jobs页面

原创
作者头像
艾利
修改2022-09-05 15:54:10
1.3K0
修改2022-09-05 15:54:10
举报
文章被收录于专栏:数仓建模数仓建模

接上文Spark UI基础介绍,以一段sql为例介绍Jobs页面的内容:

代码语言:javascript
复制
select t1.dt,
       t2.cooperation_type,
       t1.poi_id,
       t1.diff_qty
  from mart_xxx.fact_sc_gms_diff_report t1
  left join mart_xxx.dim_op_poi t2
    on t1.grid_poi_id=t2.poi_id
 where t1.dt = '20220410'

在Jobs页面可以看到上面的SQL生成了3个job, 该页面还有一个Event Timeline的链接, 点击可以看到作业的时间轴。

1.Event Timeline

点击Event Timeline后可以看到以下信息:时间线会显示Executor加入和退出的时间点, 以及job执行的起止时间.

2.job详情页面

点击job描述里的链接就可以进入对应job的详情页面, 首先看job0:job详情页面会展示这个job包含了哪些stage, 以及stage执行信息.

另外点击DAG Visualization 可以看到job的执行计划也就是DAG图:下图即job0对应的stage0及job1对应的stage1.

然后在看下触发job2的DAG图:

可以看到stage2和stage3被跳过(skipped)了。

为啥可以被跳过? 原因是spark shuffle的数据会写到磁盘固化, 当上游stage(stage2)和之前执行过的stage(stage0)相同时, 可以直接使用之前的结果, 所以stage2可以被跳过。

FAQ:

1.上游stage的Shuffle Write等于下游stage的 Shuffle Read

这个算常识, 可以在作业执行时通过上游stage的Shuffle Write量 减去 下游stage的Shuffle Read量判断执行进度. 另外还可以通过这个常识判断task是否有数据倾斜, 例如还剩1个task没执行完, 但是Shuffle Read量与上游Shuffle Write量相差很大, 那么这个正在执行的task很有可能是数据倾斜的task。

2.job提交间隔较大, 是什么情况

Spark默认的job调度模式是FIFO, 基本上前一个job执行完就会提交下一个job. 但是也有两个job间隔比较久的例子. 请注意:Spark UI只展示job信息, 如果Driver在前一个job执行完成后执行其他代码, 或者在对下一个job的提交进行预计算, 这部分耗时是不会显示在UI上的, 建议通过Driver的log判断具体原因。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.Event Timeline
  • 2.job详情页面
    • FAQ:
      • 1.上游stage的Shuffle Write等于下游stage的 Shuffle Read
        • 2.job提交间隔较大, 是什么情况
        相关产品与服务
        大数据
        全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档