View a markdown version of this page

使用 Spark UI 调查性能问题 -

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Spark UI 调查性能问题

在应用任何最佳实践来调整 AWS Glue 作业性能之前,我们强烈建议您对性能进行分析并确定瓶颈。这将帮助您专注于正确的行为。

为了便于快速分析,Amazon CloudWatch 指标提供了您的工作指标的基本视图。Spark UI 则提供了性能调优更深入的视图。要将 Spark 用户界面与配合使用 AWS Glue,必须为 AWS Glue 作业启用 Spark 用户界面。熟悉 Spark UI 后,请遵循调优 Spark 作业性能的策略,根据您的调查发现识别并降低瓶颈的影响。

使用 Spark UI 识别瓶颈

当您打开 Spark UI 时,Spark 应用程序会在表中列出。默认情况下, AWS Glue 作业的应用程序名称nativespark-<Job Name>-<Job Run ID>。根据作业运行 ID 选择目标 Spark 应用程序,以打开作业选项卡。未完成的作业运行(例如流作业运行)列在显示未完成的应用程序中。

作业选项卡显示 Spark 应用程序中所有作业的摘要。要确定任何阶段或任务失败,请检查任务总数。要找到瓶颈,选择持续时间作为排序依据。选择描述列中显示的链接,深入探究长时间运行的作业的详细信息。

Spark Jobs 选项卡显示持续时间 succeeded/total、阶段和任务 succeeded/total。

作业详细信息页面列出各个阶段。在此页面上,您可以看到整体洞察,例如持续时间、成功任务数量和任务总数、输入和输出数量以及随机读取量和随机写入量。

""

执行程序选项卡详细显示 Spark 集群容量。您可以查看核心总数。以下屏幕截图中显示的集群包含 316 个活动核心和总共 512 个核心。默认情况下,每个核心可以同时处理一个 Spark 任务。

“执行程序”页面摘要,显示执行程序的核心数。

根据作业详细信息页面上显示的值 5/5,第五阶段是最长的阶段,但它仅使用了 512 个核心中的 5 个核心。由于此阶段的并行度非常低,但却花费了大量时间,因此您可以将其识别为瓶颈。为提升性能,您需要了解原因。要详细了解如何识别和减少常见性能瓶颈的影响,请参阅调优 Spark 作业性能的策略