我想使用 AWS Glue 来监控我的 Spark 使用情况,并优化成本。
解决方法
监控使用情况
要获取在 AWS Glue 作业中使用 Spark 所产生成本的摘要,请使用 AWS Cost Explorer 成本管理服务。
完成以下步骤:
- 打开 AWS 账单与成本管理控制台。
- 在导航窗格中,选择 Cost Explorer(Cost Explorer 成本管理服务)。
- 在 Cost(成本)控制面板上,查看 AWS Glue 的每月成本。
按作业详细信息查看使用情况
要监控 AWS Glue 作业的详细信息(例如其运行状态、运行持续时间或数据处理单元 (DPU) 使用情况),请完成以下步骤:
- 打开 AWS Glue 控制台。
- 在 ETL Jobs(ETL 作业)下,选择 Job run monitoring(作业运行监控)。
按作业类型查看成本
要获取特定类型的 AWS Glue 作业的成本,请完成以下步骤:
- 打开 AWS 账单与成本管理控制台。
- 在 Cost and usage analysis(成本和使用情况分析)下,选择 Cost Explorer(Cost Explorer 成本管理服务)。
- 在 Report parameters(报告参数)下的 Filters(筛选)部分中,对于 Service(服务),选择 Glue。
- 在 Usage type(使用类型)下,为您的作业选择筛选,并包含您的 AWS 区域:
对于标准作业,请使用 ETL-DPU-Hour 筛选。例如,对于美国西部(俄勒冈州)区域,应用 USW2-ETL-DPU-Hour。
对于弹性作业,请使用 ETL-Flex-DPU-Hour 筛选。例如,应用 USW2-ETL-Flex-DPU-Hour。
对于交互式会话,请使用 GlueInteractiveSession-DPU-Hour。例如,应用 USW2-GlueInteractiveSession-DPU-Hour。
获取特定作业的使用情况和成本
要获取特定 AWS Glue 作业的成本,请完成以下步骤:
- 打开 AWS Glue 控制台。
- 在 ETL Jobs(ETL 作业)下,选择 Job run monitoring(作业运行监控)。
- 查找该作业使用的 DPU hours(DPU 小时数)。
- 在 AWS Glue pricing(AWS Glue 定价)页面的 ETL jobs and interactive sessions(ETL 作业和交互式会话)选项卡中,选择您的区域。
- 记下您的作业类型的每个 DPU-HOUR 的成本。
- 要计算成本,请将 DPU 小时数乘以每个 DPU-HOUR 的成本。
要获取 AWS Glue 作业的内存或 CPU 使用率或数据流量的指标,请设置 CloudWatch 警报。
要获取有关您的 AWS Glue 作业的通知,请参阅如何在我的 AWS Glue 作业状态发生变更时收到 Amazon SNS 通知?
优化成本
要优化在 AWS Glue 作业中使用 Spark 的成本,请执行以下操作:
- 调整 AWS Glue 作业,以缩短作业运行持续时间,并减少所需的 Worker 数。
- 对于非关键的 AWS Glue 作业,将 AWS Glue 作业执行类型定义为 Flex。
- 为您的 AWS Glue 作业启用自动扩缩。
- 创建 AWS Glue 使用情况配置,以限制 Worker 类型、限制最大 Worker 计数,并限制作业的运行持续时间。
- 为作业 API 设置合适的 AWS Glue 超时时间,以便作业的运行时间不会超过预期的运行时间。
- 使用合适的 Worker 类型和 Worker 计数。
- 要在本地环境中进行测试和开发,请使用 Docker 映像。AWS Glue Docker 使用本地计算资源,而非 AWS Glue 云服务。
- 使用 AWS Glue 作业书签功能来增量处理数据。
- 使用 CloudWatch 指标来确定最佳的 DPU 容量,并根据需要调整容量。
- 在不使用交互式会话时,停止或删除这些会话。使用 Jupyter magic %stop_session,或者在 AWS Glue 控制台的 Interactive Session(交互式会话)页面上选择 Stop session(停止会话)。您也可以使用 Stop Notebook(停止 Notebook)来终止会话。
**注意:**即使您关闭了浏览器选项卡,该会话仍处于活动状态。
相关信息
Monitor and optimize cost on AWS Glue for Apache Spark