手把手带你了解Spark作业“体检报告” --Spark UI

Spark UI 一级入口

        集中在 Spark UI 最上面的导航条,这里罗列着 Spark UI 所有的一级入口,如下图所示。
在这里插入图片描述
        可以看到,导航条最左侧是 Spark Logo 以及版本号,后面则依次罗列着 6 个一级入口,每个入口的功能与作用我整理到了如下的表格中,你可以先整体过一下,后面我们再挨个细讲。
在这里插入图片描述

Executors

        Executors Tab 的主要内容如下,主要包含“Summary”和“Executors”两部分。这两部分所记录的度量指标是一致的,其中“Executors”以更细的粒度记录着每一个 Executor 的详情,而第一部分“Summary”是下面所有 Executors 度量指标的简单加和。
在这里插入图片描述

        Spark UI 都提供了哪些 Metrics,来量化每一个 Executor 的工作负载(Workload)。为了叙述方便,我们以表格的形式说明这些 Metrics 的含义与作用。
在这里插入图片描述

        不难发现,Executors 页面清清楚楚地记录着每一个 Executor 消耗的数据量,以及它们对 CPU、内存与磁盘等硬件资源的消耗。基于这些信息,我们可以轻松判断不同 Executors 之间是否存在负载不均衡的情况,进而判断应用中是否存在数据倾斜的隐患。对于 Executors 页面中每一个 Metrics 的具体数值,它们实际上是 Tasks 执行指标在 Executors 粒度上的汇总。

Environment

        Environment 页面记录的是各种各样的环境变量与配置项信息,如下图所示。
在这里插入图片描述

        就类别来说,它包含 5 大类环境信息,为了方便叙述,我把它们罗列到了下面的表格中。
在这里插入图片描述

        Spark Properties 是重点,其中记录着所有在运行时生效的 Spark 配置项设置。通过 Spark Properties,我们可以确认运行时的设置,与我们预期的设置是否一致,从而排除因配置项设置错误而导致的稳定性或是性能问题。

Storage

在这里插入图片描述

        Storage 详情页,记录着每一个分布式缓存(RDD Cache、DataFrame Cache)的细节,包括缓存级别、已缓存的分区数、缓存比例、内存大小与磁盘大小。
        Spark 支持的不同缓存级别,它是存储介质(内存、磁盘)、存储形式(对象、序列化字节)与副本数量的排列组合。对于 DataFrame 来说,默认的级别是单副本的 Disk Memory Deserialized,如上图所示,也就是存储介质为内存加磁盘,存储形式为对象的单一副本存储方式。
在这里插入图片描述

        Cached Partitions 与 Fraction Cached 分别记录着数据集成功缓存的分区数量,以及这些缓存的分区占所有分区的比例。当 Fraction Cached 小于 100% 的时候,说明分布式数据集并没有完全缓存到内存(或是磁盘),对于这种情况,我们要警惕缓存换入换出可能会带来的性能隐患。
        Size in Memory 与 Size in Disk,则更加直观地展示了数据集缓存在内存与硬盘中的分布。从上图中可以看到,由于内存受限(3GB/Executor),摇号数据几乎全部被缓存到了磁盘,只有 584MB 的数据,缓存到了内存中。坦白地说,这样的缓存,对于数据集的重复访问,并没有带来实质上的性能收益。
        基于 Storage 页面提供的详细信息,我们可以有的放矢地设置与内存有关的配置项,如 spark.executor.memory、spark.memory.fraction、spark.memory.storageFraction,从而有针对性对 Storage Memory 进行调整。

SQL

        当我们的应用包含 DataFrame、Dataset 或是 SQL 的时候,Spark UI 的 SQL 页面,就会展示相应的内容,如下图所示。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值