这是一个诊断大数据生态系统中计算引擎和调度器的平台,旨在提高故障排除的效率并降低问题根因排查的难度 通过脚本定时或者实时收集日志和指标
其主要功能特性如下:
- 非侵入式,即时诊断,无需修改已有的调度平台,即可体验诊断效果。
- 支持HDFS文件元数据解析和诊断
- 支持StarRocks引擎诊断分析
- 支持多种主流调度平台,例如DolphinScheduler 1.x、2.x和3.x。
- 支持多版本Spark、MapReduce、Hadoop 2.x和3.x 任务日志诊断和解析。
- 支持工作流层异常诊断,识别各种失败和基线耗时异常问题。
- 支持引擎层异常诊断,包含数据倾斜、大表扫描、内存浪费等14种异常类型。
- HDFS
- StarRocks
- Spark
- Mapreduce
- DolphinScheduler
引擎 | 诊断维度 | 诊断类型 | 类型说明 |
Dolphinscheduler | 失败分析 | 运行失败 | 最终运行失败的任务 |
首次失败 | 重试次数大于1的成功任务 | ||
长期失败 | 最近10天运行失败的任务 | ||
耗时分析 | 基线时间异常 | 相对于历史正常结束时间,提前结束或晚点结束的任务 | |
基线耗时异常 | 相对于历史正常运行时长,运行时间过长或过短的任务 | ||
运行耗时长 | 运行时间超过2小时的任务 | ||
Spark | 报错分析 | sql失败 | 因sql执行问题而导致失败的任务 |
shuffle失败 | 因shuffle执行问题而导致失败的任务 | ||
内存溢出 | 因内存溢出问题而导致失败的任务 | ||
资源分析 | 内存浪费 | 内存使用峰值与总内存占比过低的任务 | |
CPU浪费 | driver/executor计算时间与总CPU计算时间占比过低的任务 | ||
效率分析 | 大表扫描 | 没有限制分区导致扫描行数过多的任务 | |
OOM预警 | 广播表的累计内存与driver或executor任意一个内存占比过高的任务 | ||
数据倾斜 | stage中存在task处理的最大数据量远大于中位数的任务 | ||
Job耗时异常 | job空闲时间与job运行时间占比过高的任务 | ||
Stage耗时异常 | stage空闲时间与stage运行时间占比过高的任务 | ||
Task长尾 | stage中存在task最大运行耗时远大于中位数的任务 | ||
HDFS卡顿 | stage中存在task处理速率过慢的任务 | ||
推测执行Task过多 | stage中频繁出现task推测执行的任务 | ||
全局排序异常 | 全局排序导致运行耗时过长的任务 | ||
MapReduce | 资源分析 | 内存浪费 | 内存使用峰值与总内存占比过低的任务 |
效率分析 | 大表扫描 | 扫描行数过多的任务 | |
Task长尾 | map/reduce task最大运行耗时远大于中位数的任务 | ||
数据倾斜 | map/reduce task处理的最大数据量远大于中位数的任务 | ||
推测执行Task过多 | map/reduce task中频繁出现推测执行的任务 | ||
GC异常 | GC时间相对CPU时间占比过高的任务 | ||
HDFS | 资源分析 | 小文件占比 | 小文件较多的目录或者表 |
文件冷热占比 | 冷数据存储较多的目录或者表 | ||
历史文件被修改和访问 | 超过5年的历史文件被修改和访问 | ||
StarRocks | 资源分析 | 分桶不合理 | tablet size太小或者太大 |
分区不合理 | 空分区、过大或者过小的分区 | ||
扫描数据量过多 | 根据执行计划判断扫描数据量过多的查询 | ||
查询频次分析 | 对表按照查询次数排序 | ||
导入分析 | 对导入频次和数据量分析 |