利用新的作业可观察性指标增强对 AWS Glue 作业的监控和调试 大数据博客
  • 2

提升 AWS Glue 作业的监控与调试能力

关键要点

新增的 Amazon CloudWatch 指标为 AWS Glue 作业提供了更细致的监控数据,增强作业的可观测性,优化数据管道的性能。通过使用这些指标,可以获得操作分析、错误分类,进而进行问题诊断和性能瓶颈分析。用户可通过 AWS Glue Studio 或 AWS CLI 启用新的监控指标,并使用 CloudWatch 或 Grafana 可视化这些指标。

在现代数据驱动型公司中,顺畅的数据集成管道至关重要。这些管道从多个来源提取数据,进行转换,然后将其加载到目标系统中以进行分析和报告。当运行正常时,这些管道能够提供及时和可靠的信息。然而,在没有严格监控的情况下,数据体量、特性和应用行为的变化可能导致数据管道效率低下,甚至出现问题。性能可能减缓,或管道变得不可靠。未被察觉的错误会导致数据质量下降,影响下游分析。因此,对数据管道进行强有力的监控与故障排除在以下四个领域至关重要:

可靠性性能吞吐量资源利用率

这四个监控方面共同提供了数据管道及其操作的端到端可视性和控制能力。

今天我们高兴地宣布,新的 Amazon CloudWatch 指标可以与基于 AWS Glue 的 Apache Spark 作业一同报告。这些新指标为作业运行的健康状况和处理数据提供了集成的和细致的洞察。除了提供有价值的仪表板外,这些指标还对错误进行分类,有助于识别性能瓶颈和错误诊断。通过这些分析,您可以评估并采纳推荐的解决方案和最佳实践,从而提升 AWS Glue for Apache Spark 工作负载的可用性、性能及降低成本。

本文将展示新增强指标如何帮助用户监控和调试 AWS Glue 作业。

您可能还会对以下内容感兴趣: 使用新作业可观测性指标增强 AWS Glue 作业监控和调试,第二部分:使用 Grafana 进行实时监控 使用新作业可观测性指标增强 AWS Glue 作业监控和调试,第三部分:使用 Amazon QuickSight 进行可视化和趋势分析

启用新指标

新指标可以通过作业参数 enableobservabilitymetrics 进行配置。

在 AWS Glue Studio 控制台上,新指标默认启用。要在 AWS Glue Studio 控制台上配置指标,请完成以下步骤:

在 AWS Glue 控制台中,选择导航窗格中的 ETL 作业。在 您的作业 下,选择您的作业。在 作业详情 选项卡中,展开 高级属性。在 作业可观测性指标 下,选择 在运行此作业时启用附加的可观测性 CloudWatch 指标的创建。

要在 AWS Glue 的 CreateJob 和 StartJobRun APIs 中启用新指标,请在 DefaultArguments 属性中设置以下参数:

Key enableobservabilitymetricsValue true

要在 AWS 命令行界面 AWS CLI中启用新指标,请在 defaultarguments 参数中设置相同的作业参数。

用例

AWS Glue for Apache Spark 作业的典型工作负载是将数据从关系型数据库加载到数据湖,并进行基于 SQL 的转换。下面是一个示例作业的可视化表示,其中工人数量为 10。

当示例作业运行时,workerUtilization 指标显示了以下趋势。

请注意,workerUtilization 在整个运行过程中显示的值在 02020和 04040之间。这通常发生在作业容量过度配置而导致许多 Spark 执行程序闲置,从而造成不必要的成本。为了提高资源利用率,建议启用 AWS Glue 自动扩展。以下截图展示了启用 AWS Glue 自动扩展后相同作业的 workerUtilization 指标图表。

workerUtilization 在初始阶段显示为 10,因为启用了 AWS Glue 自动扩展,根据工作负载需求,其值在 07575和 10100之间波动。

在 CloudWatch 中查询和可视化指标

完成以下步骤以在 CloudWatch 控制台上查询和可视化指标:

在 CloudWatch 控制台中,选择导航窗格中的 所有指标。在 自定义命名空间 下,选择 Glue。选择 可观测性指标 或 每个源的可观测性指标,或 每个汇的可观测性指标。查找并选择特定指标名称、作业名称、作业运行 ID 和可观测性组。在 图表指标 选项卡中,配置您所需的统计信息、周期等等。

使用 AWS CLI 查询指标

完成以下步骤以使用 AWS CLI 进行查询在本示例中,我们查询工人利用率指标:

创建一个指标定义 JSON 文件提供您的 AWS Glue 作业名称和作业运行 ID:

bash cat multiplequeriesjson[ { Id avgWorkerUtil0 MetricStat { Metric { Namespace Glue MetricName gluedriverworkerUtilization Dimensions [ { Name JobName Value ltyourGluejobnameAgt } { Name JobRunId Value ltyourGluejobrunidAgt } { Name Type Value gauge } { Name ObservabilityGroup Value resourceutilization } ] } Period 1800 Stat Minimum Unit None } } { Id avgWorkerUtil1 MetricStat { Metric { Namespace Glue MetricName gluedriverworkerUtilization Dimensions [ { Name JobName Value ltyourGluejobnameBgt } { Name JobRunId Value ltyourGluejobrunidBgt } { Name Type Value gauge } { Name ObservabilityGroup Value resourceutilization } ] } Period 1800 Stat Minimum Unit None } }]

运行 getmetricdata 命令:

bash aws cloudwatch getmetricdata metricdataqueries file//multiplequeriesjson starttime 20231028T1820 endtime 20231028T1910 region useast1{ MetricDataResults [ { Id avgWorkerUtil0 Label ltyour label Agt Timestamps [ 20231028T1820000000 ] Values [ 006718750000000001 ] StatusCode Complete } { Id avgWorkerUtil1 Label ltyour label Bgt Timestamps [ 20231028T1820000000 ] Values [ 05959183673469387 ] StatusCode Complete } ] Messages []}

创建 CloudWatch 警报

您可以为不同的指标创建基于静态阈值的警报。有关说明,请参考 基于静态阈值创建 CloudWatch 警报。

例如,对于偏斜性,您可以为 skewnessstage 设置阈值为 10,为 skewnessjob 设置阈值为 05。此阈值仅为推荐,您可以根据具体用例调整阈值例如,某些作业可能需要有一定的偏斜,这并不是一个需要报警的问题。我们的建议是在确认异常值并配置阈值报警之前,先评估作业运行的指标值一段时间。

其他增强指标

有关 AWS Glue 作业可用的完整增强指标列表,请参考 使用 AWS Glue 可观测性指标进行监控。这些指标可以帮助您捕获作业的操作洞察,如资源利用率内存和磁盘、规范化错误类别如编译错误和语法错误、用户或服务错误,以及每个源或汇的吞吐量记录、文件、分区以及读取或写入的字节。

作业可观测性仪表板

您可以使用 Amazon Managed Grafana 的仪表板进一步简化对 AWS Glue 作业的可观测性,并使用 Amazon QuickSight 来可视化和分析趋势。

风驰加速器app官网

结论

本文展示了新的增强 CloudWatch 指标如何帮助您监控和调试 AWS Glue 作业。借助这些增强指标,您可以更容易地实时识别和排除问题,从而使 AWS Glue 作业获得更高的正常运行时间、更快的处理速度,以及降低的支出。最终收益是更高效和优化的 AWS Glue for Apache Spark 工作负载。该指标在所有支持 AWS Glue 的区域均可用,快来试试吧!

关于作者

Noritaka Sekiyama 是 AWS Glue 团队的首席大数据架构师,负责构建软件产品来帮助客户。在业余时间,他喜欢骑行和他的新公路自行车。

Shenoda Guirguis 是 AWS Glue 团队的高级软件开发工程师,专注于构建可扩展的分布式数据基础设施/处理系统。闲暇时,Shenoda 喜欢阅读和踢足球。

利用新的作业可观察性指标增强对 AWS Glue 作业的监控和调试 大数据博客

Sean Ma 是 AWS Glue 团队的首席产品经理,拥有 18 年以上的经验,推动和交付能够释放数据潜力的企业产品。工作之余,Sean 喜欢潜水和大学橄榄球。

Mohit Saxena 是 AWS Glue 团队的高级软件开发经理。他的团队专注于构建分布式系统,使客户能够以交互式和简便的界面,方便地管理和转换在 Amazon S3 数据湖、数据库和数据仓库中的 PB 级数据。

加载评论