监控 EMR Serverless 应用程序和作业 - Amazon EMR

监控 EMR Serverless 应用程序和作业

通过 EMR Serverless 的 Amazon CloudWatch 指标,您可以接收 1 分钟的 CloudWatch 指标并访问 CloudWatch 控制面板,以查看 EMR Serverless 应用程序近乎实时的运行情况和性能。

EMR Serverless 每分钟向 CloudWatch 发送一次指标。EMR Serverless 在应用程序级别以及作业、工作线程类型和容量分配类型级别发布这些指标。

首先,使用 EMR Serverless GitHub 存储库中提供的 EMR Serverless CloudWatch 控制面板模板并进行部署。

注意

EMR Serverless 交互式工作负载仅启用了应用程序级别监控,并具有新的工作线程类型维度 Spark_Kernel。要监控和调试交互式工作负载,您可以在 EMR Studio 工作区中查看日志和 Apache Spark UI。

下表描述了 AWS/EMRServerless 命名空间中可用的 EMR Serverless 维度。

EMR Serverless 指标的维度
维度 描述
ApplicationId

筛选 EMR Serverless 应用程序的所有指标。

JobId

筛选 EMR Serverless 作业运行的所有指标。

WorkerType

筛选给定工作线程类型的所有指标。例如,您可以筛选 Spark 作业的 SPARK_DRIVERSPARK_EXECUTORS

CapacityAllocationType

筛选给定容量分配类型的所有指标。例如,您可以筛选预初始化容量 PreInitCapacity 和其他容量 OnDemandCapacity

应用程序级别监控

您可以使用 Amazon CloudWatch 指标监控 EMR Serverless 应用程序级别的容量使用情况。您还可以在 CloudWatch 控制面板中设置单一视图来监控应用程序容量使用情况。

EMR Serverless 应用程序指标
指标 描述 主维度 次维度
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 发送以下作业级别指标。您可以按作业运行状态查看聚合作业运行的指标值。每个指标的单位是计数

EMR Serverless 作业级别指标
指标 描述 主维度
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 作为一个维度来监控属于同一应用程序的多个作业。

EMR Serverless 作业工作线程级别指标
指标 描述 单位 主维度 次维度
WorkerCpuAllocated

作业运行中分配给工作线程的 vCPU 核心总数。

JobId ApplicationIdWorkerTypeCapacityAllocationType
WorkerCpuUsed

作业运行中工作线程使用的 vCPU 核心总数。

JobId ApplicationIdWorkerTypeCapacityAllocationType
WorkerMemoryAllocated

作业运行中分配给工作线程的总内存(GB)。

千兆字节(GB) JobId ApplicationIdWorkerTypeCapacityAllocationType
WorkerMemoryUsed

作业运行中工作线程使用的总内存(GB)。

千兆字节(GB) JobId ApplicationIdWorkerTypeCapacityAllocationType
WorkerEphemeralStorageAllocated

作业运行中分配给工作线程的临时存储字节数。

千兆字节(GB) JobId ApplicationIdWorkerTypeCapacityAllocationType
WorkerEphemeralStorageUsed

作业运行中工作线程使用的临时存储字节数。

千兆字节(GB) JobId ApplicationIdWorkerTypeCapacityAllocationType
WorkerStorageReadBytes

作业运行中工作线程从存储中读取的字节数。

字节 JobId ApplicationIdWorkerTypeCapacityAllocationType
WorkerStorageWriteBytes

作业运行中从工作线程写入存储的字节数。

字节 JobId ApplicationIdWorkerTypeCapacityAllocationType

下面的步骤介绍了如何查看各种类型的指标。

Console
使用控制台访问应用程序 UI
  1. 按照控制台入门中的说明,导航到 EMR Studio 上的 EMR Serverless 应用程序。

  2. 要查看运行中作业的特定于引擎的应用程序 UI 和日志,请执行以下操作:

    1. 选择状态为 RUNNING 的作业。

    2. 应用程序详细信息页面上选择作业,或导航到作业的作业详细信息页面。

    3. 显示 UI 下拉菜单下,选择 Spark UIHive Tez UI,导航到适合您作业类型的应用程序 UI。

    4. 要查看 Spark 引擎日志,请导航到 Spark UI 中的执行程序选项卡,然后选择驱动程序的日志链接。要查看 Hive 引擎日志,请在 Hive Tez UI 中选择相应 DAG 的日志链接。

  3. 要查看已完成作业的特定于引擎的应用程序 UI 和日志,请执行以下操作:

    1. 选择状态为 SUCCESS 的作业。

    2. 在应用程序的应用程序详细信息页面上选择作业,或导航到作业的作业详细信息页面。

    3. 显示 UI 下拉菜单下,选择 Spark History ServerPersistent Hive Tez UI,导航到适合您作业类型的应用程序 UI。

    4. 要查看 Spark 引擎日志,请导航到 Spark UI 中的执行程序选项卡,然后选择驱动程序的日志链接。要查看 Hive 引擎日志,请在 Hive Tez UI 中选择相应 DAG 的日志链接。

AWS CLI
使用 AWS CLI 控制台访问应用程序 UI
  • 要生成一个 URL,用来访问运行中和已完成作业的应用程序 UI,请调用 GetDashboardForJobRun API。

    aws emr-serverless get-dashboard-for-job-run / --application-id <application-id> / --job-run-id <job-id>

    生成的 URL 在 1 小时内有效。