入口页 |
包含内容。作用 |
jobs |
actions,以及数据的读取与移动等操作。作业详情预览 |
stages |
DAG中每个stage的入口。作业详情预览 |
storage |
分布式数据集缓存(cache)详情页。审查cache在内存与磁盘中的分布情况 |
storage |
分布式数据集缓存(cache)详情页。审查cache在内存与磁盘中的分布情况 |
environment |
配置项,环境变量详情。审查spark配置项是否符合预期 |
executors |
分布式运行环境与计算负载详情页。深入审查执行计划中的每一个环节 |
- 什么情况下spark会产生一个job?对应的action算子会产生,对应的数据的读取和移动操作。
- stage。一个Job可以拆分为多个stage。job拆分stage的详细情况。划分stage的依据是宽窄依赖
- storage。在cache数据的时候,会有应用。
- environment。spark任务的配置项、环境变量。
- executor。分布式运行环境计算负载的详情页,作用是审查executor之间是否存在数据倾斜。比如,看input的数据的差异用于评估负载情况。
- SQL。spark SQL执行计划的详情页。
executor、environment、storage不存在二级入口,但是SQL、storage、JOBs有二级入口
2.1.1 executors
2.1.1.1 summary
- RDD blocks:原始分区数据集的分区数量
- storage memory:用于cache时所占的内存的占用情况。
- disk used。计算过程中消耗的磁盘空间。
- cores。用于计算的CPU的核数。
- acitive task:活跃的task数量
- failed task:失败的task数量
- complete task:完成的task数量
- task time(GC time)。任务的执行时候,以及任务的GC时间
- input。输入数据量的大小
- shuffle read 大小
- shuffle write 大小
- blocklisted。黑名单
2.1.1.2 executors
- executors tab的主要内容如下,主要包含“summary”和“executors”两部分。这两部分记录的度量指标是一致的,其中“executors”以更新粒度记录者每一个executor的详情,而第一部分“summary”是下面所有executors度量指标的简单加和。
- sparkUI都提供了哪些metrics,来量化每一个executor的工作负载(workload)。
metric |
含义 |
RDD |
原始数据集的分区数量 |
storage memory |
用于cache的内存占用 |
disk used |
计算过程中消耗的磁盘空间 |
cores |
用于计算的CPU核数 |
active/failed/complete |
total tasks |
task time(GC time) |
任务执行时间(括号内为任务GC时间) |
input |
输入数据量大小 |
shuffle head/write |
shuffle读写过程中消耗的数据量 |
logs/thread dump |
日志与core dump |
- 不难发现,executors页面清清楚楚的记录着每一个executor消耗的数据量,以及他们对CPU、内存与磁盘等硬件资源的消耗。基于这些信息,我们可以轻松判断应用中是否存在数据倾斜的隐患。
- Threa