监控 EMR Serverless 应用程序和作业
通过 EMR Serverless 的 Amazon CloudWatch 指标,您可以接收 1 分钟的 CloudWatch 指标并访问 CloudWatch 控制面板,以查看 EMR Serverless 应用程序近乎实时的运行情况和性能。
EMR Serverless 每分钟向 CloudWatch 发送一次指标。EMR Serverless 在应用程序级别以及作业、工作线程类型和容量分配类型级别发布这些指标。
首先,使用 EMR Serverless GitHub 存储库
注意
EMR Serverless 交互式工作负载仅启用了应用程序级别监控,并具有新的工作线程类型维度 Spark_Kernel
。要监控和调试交互式工作负载,您可以在 EMR Studio 工作区中查看日志和 Apache Spark UI。
下表描述了 AWS/EMRServerless
命名空间中可用的 EMR Serverless 维度。
维度 | 描述 |
---|---|
ApplicationId |
筛选 EMR Serverless 应用程序的所有指标。 |
JobId |
筛选 EMR Serverless 作业运行的所有指标。 |
WorkerType |
筛选给定工作线程类型的所有指标。例如,您可以筛选 Spark 作业的 |
CapacityAllocationType |
筛选给定容量分配类型的所有指标。例如,您可以筛选预初始化容量 |
应用程序级别监控
您可以使用 Amazon CloudWatch 指标监控 EMR Serverless 应用程序级别的容量使用情况。您还可以在 CloudWatch 控制面板中设置单一视图来监控应用程序容量使用情况。
指标 | 描述 | 主维度 | 次维度 |
---|---|---|---|
CPUAllocated |
分配的 vCPU 总数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
IdleWorkerCount |
空闲的工作线程总数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
MaxCPUAllowed |
应用程序允许的最大 CPU 数。 |
ApplicationId |
不适用 |
MaxMemoryAllowed |
应用程序允许的最大内存(GB)。 |
ApplicationId |
不适用 |
MaxStorageAllowed |
应用程序允许的最大存储空间(GB)。 |
ApplicationId |
不适用 |
MemoryAllocated |
分配的总内存(GB)。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
PendingCreationWorkerCount |
待创建的工作线程总数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
RunningWorkerCount |
应用程序使用的工作线程总数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
StorageAllocated |
分配的总磁盘存储空间(GB)。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
TotalWorkerCount |
可用的工作线程总数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
作业级别监控
Amazon EMR Serverless 每隔一分钟向 Amazon CloudWatch 发送以下作业级别指标。您可以按作业运行状态查看聚合作业运行的指标值。每个指标的单位是计数。
指标 | 描述 | 主维度 |
---|---|---|
SubmittedJobs |
处于“已提交”状态的作业数量。 |
ApplicationId |
PendingJobs |
处于“待定”状态的作业数量。 |
ApplicationId |
ScheduledJobs |
处于“已计划”状态的作业数量。 |
ApplicationId |
RunningJobs |
处于“运行中”状态的作业数量。 |
ApplicationId |
SuccessJobs |
处于“成功”状态的作业数量。 |
ApplicationId |
FailedJobs |
处于“失败”状态的作业数量。 |
ApplicationId |
CancellingJobs |
处于“取消中”状态的作业数量。 |
ApplicationId |
CancelledJobs |
处于“已取消”状态的作业数量。 |
ApplicationId |
您可以使用特定于引擎的应用程序 UI 监控运行中和已完成的 EMR Serverless 作业的特定于引擎的指标。查看运行中作业的 UI 时,您会看到具有实时更新的实时应用程序 UI。查看已完成作业的 UI 时,您会看到持久性应用程序 UI。
运行作业
对于运行中的 EMR Serverless 作业,您可以查看提供特定于引擎的指标的实时界面。您可以使用 Apache Spark UI 或 Hive Tez UI 来监控和调试作业。要访问这些 UI,请使用 EMR Studio 控制台或向 AWS Command Line Interface 请求安全的 URL 端点。
已完成作业
对于已完成的 EMR Serverless 作业,您可以使用 Spark History Server 或 Persistent Hive Tez UI 查看 Spark 或 Hive 作业运行的详细信息、阶段、任务和指标。要访问这些 UI,请使用 EMR Studio 控制台或向 AWS Command Line Interface 请求安全的 URL 端点。
作业工作线程级别监控
Amazon EMR Serverless 将 AWS/EMRServerless
命名空间和 Job Worker Metrics
指标组中可用的作业工作线程级别指标发送到 Amazon CloudWatch。在作业运行期间,EMR Serverless 会在作业级别、工作线程类型和容量分配类型级别收集单个工作线程的数据点。您可以使用 ApplicationId
作为一个维度来监控属于同一应用程序的多个作业。
指标 | 描述 | 单位 | 主维度 | 次维度 |
---|---|---|---|---|
WorkerCpuAllocated |
作业运行中分配给工作线程的 vCPU 核心总数。 |
无 | JobId |
ApplicationId 、WorkerType 和 CapacityAllocationType |
WorkerCpuUsed |
作业运行中工作线程使用的 vCPU 核心总数。 |
无 | JobId |
ApplicationId 、WorkerType 和 CapacityAllocationType |
WorkerMemoryAllocated |
作业运行中分配给工作线程的总内存(GB)。 |
千兆字节(GB) | JobId |
ApplicationId 、WorkerType 和 CapacityAllocationType |
WorkerMemoryUsed |
作业运行中工作线程使用的总内存(GB)。 |
千兆字节(GB) | JobId |
ApplicationId 、WorkerType 和 CapacityAllocationType |
WorkerEphemeralStorageAllocated |
作业运行中分配给工作线程的临时存储字节数。 |
千兆字节(GB) | JobId |
ApplicationId 、WorkerType 和 CapacityAllocationType |
WorkerEphemeralStorageUsed |
作业运行中工作线程使用的临时存储字节数。 |
千兆字节(GB) | JobId |
ApplicationId 、WorkerType 和 CapacityAllocationType |
WorkerStorageReadBytes |
作业运行中工作线程从存储中读取的字节数。 |
字节 | JobId |
ApplicationId 、WorkerType 和 CapacityAllocationType |
WorkerStorageWriteBytes |
作业运行中从工作线程写入存储的字节数。 |
字节 | JobId |
ApplicationId 、WorkerType 和 CapacityAllocationType |
下面的步骤介绍了如何查看各种类型的指标。