监控任务 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

监控任务

通过 Amazon Events CloudWatch 监控作业

当任务运行状态发生变化时,Amazon EMR on EKS 会发出事件。每个事件都提供事件发生日期及时间等信息,以及有关事件的更多详情,如受影响的虚拟集群 ID 和任务运行 ID。

您可以使用事件来跟踪在虚拟集群上运行的任务活动及其运行状况。您还可以使用 Amazon CloudWatch Events 来定义在任务运行生成与您指定的模式相匹配的事件时要采取的操作。事件对于在任务运行的生命周期中监控特定事件非常有用。例如,您可以监控任务运行的状态何时从 submitted 更改为 running。有关 CloudWatch 活动的更多信息,请参阅 Amazon EventBridge 用户指南

下表列出了 Amazon EMR on EKS 事件,以及事件指示的状态或状态更改、事件的严重性和事件消息。每个事件都以 JSON 对象表示,后者会自动发送到事件流。JSON 对象包含有关事件的更多详情。当您使用事件设置事件处理规则时,JSON 对象尤其重要,因为规则 CloudWatch 会寻求匹配 JSON 对象中的模式。有关更多信息,请参阅亚马逊 EventBridge 用户指南中的亚马逊 EventBridge 事件模式和 EKS 事件上的 Ama zon EMR。

任务运行状态更改事件
省/自治区/直辖市 严重性 消息
SUBMITTED 信息 Job Run JobRunId(JobRunName) 已VirtualClusterId在 UTC 时间成功提交到虚拟集群。
RUNNING (正在运行) 信息 虚拟集群中的 Job Run JobRunId(JobRunName) 在 T im e VirtualClusterId开始运行。
COMPLETED 信息 虚拟集群中的 Job Run jobRunId(JobRunName) VirtualClusterId已在 T im e 完成。此任务运行于 Time 开始运行,花费 Num 分钟时间完成。
CANCELLED 警告 在 T im e 虚拟集群中,Job Run JobRunId(JobRunName) VirtualClusterId的取消请求已成功,任务运行现已取消。
FAILED ERROR 虚拟群集中的 Job Run JobRunId(JobRunName) 在 T ime 时VirtualClusterId失败。

通过事件在 EKS 上自动执行 Amazon EMR CloudWatch

您可以使用 Amazon CloudWatch Events 自动 Amazon 提供服务,以响应系统事件,例如应用程序可用性问题或资源更改。来自 Amazon 服务的事件几乎实时地传递到 CloudWatch 活动。您可以编写简单规则来指示您关注的事件,并指示要在事件匹配规则时执行的自动化操作。可自动触发的操作包括:

  • 调用函数 Amazon Lambda

  • 调用 Amazon EC2 Run Command

  • 将事件中继到 Amazon Kinesis Data Streams

  • 激活 Amazon Step Functions 状态机

  • 通知 Amazon Simple Notification Service (SNS) 主题或 (SQS) Amazon Simple Queue Service 队列

在 EKS 上使用 “带有 Amazon EMR CloudWatch 的事件” 的一些示例包括:

  • 当任务运行成功时激活 Lambda 函数

  • 当任务运行失败时通知 Amazon SNS 主题

CloudWatch “” detail-type:EMR Job Run State Change” 的事件由 Amazon EMR 在 EKS 上生成,用于SUBMITTEDRUNNINGCANCELLEDFAILEDCOMPLETED状态变更。

示例:设置调用 Lambda 的规则

使用以下步骤设置 CloudWatch 事件规则,该规则在出现 “EMR Job 运行状态更改” 事件时调用 Lambda。

aws events put-rule \ --name cwe-test \ --event-pattern '{"detail-type": ["EMR Job Run State Change"]}'

将您拥有的 Lambda 函数添加为新目标,并按如下方式授予 CloudWatch 事件调用 Lambda 函数的权限。将 123456789012 替换为您的账户 ID。

aws events put-targets \ --rule cwe-test \ --targets Id=1,Arn=arn:aws:lambda:us-east-1:123456789012:function:MyFunction
aws lambda add-permission \ --function-name MyFunction \ --statement-id MyId \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com
注意

您不能编写取决于通知事件的顺序或存在的程序,因为它们可能是乱序或缺失的。尽最大努力发出事件。

使用 Amazon CloudWatch Events 使用重试策略监控作业的驱动程序窗格

使用 CloudWatch 事件,您可以监控在具有重试策略的作业中创建的驱动程序 Pod。有关更多信息,请参阅本指南中的使用重试策略监控作业