





列表的指标名称 | 指标含义 |
引擎执行时间 | Spark 引擎执行的第一个 Task 时间(即任务第一次抢占 CPU 开始执行的时间) |
引擎内执行耗时 | 反映真正用于计算所需的耗时,即从 Spark 任务第一个 Task 开始执行到任务结束之间的耗时。 具体的:会统计任务的每个 Spark Stage 第一个 Task 到最后一个 Task 完成时长之和,不包含任务开始的排队耗时(即剔除从任务提交到 Spark Task 开始执行之间的调度等其他耗时),也不包含任务执行过程中多个 Spark Stage 之间因 executor 资源不足而等待执行 Task 所消耗的时间。 |
排队耗时(等待执行耗时) | 从任务提交到开始执行第一个 Spark Task 之间的耗时,其中耗时可能有:引擎第一次执行的冷启动耗时、配置任务并发上限导致的排队时间 、引擎内因资源打满导致的等待 executor 资源的耗时、生成和优化 Spark 执行计划耗时等。 |
消耗 CU * 时 | 统计参与计算所用 Spark Executor 每个 core 的 CPU 执行时长总和,单位小时(不等价集群拉起机器的时长,因机器拉起后不一定会参与到任务计算,最终集群消耗 CU 计费以账单为准)。 在 Spark 场景下约等于 Spark Task 执行时长串行加和 (秒) /3600 (单位小时) |
数据扫描大小 | 该任务从存储读取的物理数据量,在 Spark 场景下约等于 Spark UI 中 Stage Input Size 之和 |
输出总大小 | 该任务处理完数据后输出的记录大小,在 Spark 场景下约等于 Spark UI中Stage Ouput Size 之和。 |
数据 shuffle 大小 | 在 Spark 场景下约等于 Spark UI 中 Stage Shuffle Read Records 之和。 |
输出文件个数 | (该指标的收集需要 spark 引擎内核升级至 2024.11.16 之后的版本) 任务通过 insert 等语句写出的文件个数总和 |
输出小文件个数 | (该指标的收集需要 spark 引擎内核升级至 2024.11.16 之后的版本) 小文件定义:输出的单个文件大小 < 4MB 则定义为小文件(参数 spark.dlc.monitorFileSizeThreshold 控制,默认 4MB,引擎全局或任务级别均可支持配置) 本指标定义:任务通过 insert 等语句写出的小文件个数总和 |
并行任务 | 展示任务并行执行的情况,方便分析被影响到的任务(最多200条) |
洞察类型 | 算法描述(正持续改进和新增算法) |
资源抢占 | sql 开始执行的 task 延迟时间>stage 提交时间1分钟,或延迟时长超过总运行时长的20%(不同运行时长和数据量的任务,阈值公式会有动态调整) |
shuffle 异常 | stage 执行出现 shuffle 相关错误栈信息 |
慢 task | stage 中 task 时长 > stage 里其他 task 平均时长的2倍(不同运行时长和数据量的任务,阈值公式会有动态调整) |
数据倾斜 | task shuffle 数据 > task 平均 shuffle 数据大小的2倍 (不同运行时长和数据量的任务,阈值公式会有动态调整) |
磁盘或内存不足 | stage 执行错误栈信息中包含了 oom 或者 磁盘不足的信息 或者 cos 带宽限制报错 |
输出较多小文件 | (该洞察类型的收集需 Spark 引擎内核升级至 2024.11.16 之后的版本) 参考列表中的指标 "输出小文件个数" ,满足下述一个条件则判定为 "存在输出较多小文件" : 1. 分区表,若某个分区写出的小文件超过 200 个 2. 非分区表,输出小文件总数超过 1000 个 3. 分区、非分区表写出文件超过 3000 个,平均文件大小小于 4MB |
文档反馈