我想检测并解决 Amazon EMR 集群中最常见的错误或异常。我还想使用 Amazon Simple Storage Service (Amazon S3) 位置上的 EMR 日志来进一步诊断我的集群并进行故障排除。
简短描述
要分析位于 Amazon S3 位置的 Amazon EMR 日志,请使用 AWSSupport-DiagnoseEMRLogsWithAthena AWS Systems Manager Automation 运行手册和 Amazon Athena。使用运行手册来找出导致 EMR 集群问题的原因并加以解决。
解决方法
运行自动化运行手册
在启动 AWSSupport-DiagnoseEMRLogsWithAthena 运行手册之前,请确保您的 AWS Identify and Access Management (IAM) 用户或角色具有所需的权限。要查看 AutomationAssumeRole 参数使用运行手册所需的操作,请参阅 AWSSupport-DiagnoseEMRLogsWithAthena。
要启动运行手册,请完成以下步骤:
- 在 Systems Manager 控制台中打开 AWSSupport-DiagnoseEMRLogsWithAthena。
- 选择 Execute automation(执行自动化)。
- 输入以下值:
**AutomationAssumeRole:**这是 IAM 角色的 Amazon 资源名称 (ARN),允许 Systems Manager Automation 代表您执行操作。如果未指定任何角色,则 Systems Manager Automation 将使用启动此运行手册的用户的权限。
**ClusterID:**您的 Amazon EMR 集群 ID。
(选填)**S3LogLocation:**EMR 日志的 Amazon S3 位置。如果集群的关闭时间超过 60 天,则提供此参数。
**S3BucketName:**用于接收 Athena 查询输出的 Amazon S3 存储桶的名称。该存储桶必须启用 Block Public Access。该存储桶必须与集群位于相同的 AWS 区域和 AWS 账户中。
**Approvers:**经过身份验证的 AWS 主体列表,这些主体可以批准或拒绝操作。
(选填)**FetchNodeLogsOnly:**默认值为 false。要自动诊断 Amazon EMR 应用程序容器日志,请将该值设置为 true。
(选填)**FetchContainersLogsOnly:**默认值为 false。要自动诊断 Amazon EMR 容器日志,请将该值设置为 true。
(选填)**EndSearchDate:**日志搜索的结束日期。
(选填)**DaysToCheck:**如果您设置了 EndSearchDate 值,则需要 DaysToCheck 来确定追溯搜索日志的天数。最大值为 30 天。
(选填)**SearchKeywords:**要在日志中搜索的关键字列表,以逗号分隔。
**注意:**请勿在关键字中包含单引号或双引号。
- 选择 Execute(执行)。
- 在 Outputs(输出)部分查看详细结果。
输出中会提供以下 Athena Data Manipulation Language (DML) 查询结果的链接:
- Amazon EMR 集群日志中的所有错误和异常,以及相应的日志位置。
- Amazon EMR 日志中匹配的唯一已知异常的摘要。
- Amazon S3 日志路径中出现特定错误和异常的位置。
对自动化运行手册问题进行故障排除
请执行以下操作:
- 如果底层 Athena DML 查询由于集群日志的大小超过默认设置而超时,则自动化可能会失败。要解决此问题,请在 Athena 服务配额控制台**上增加 **DML 查询超时时间。然后,再次运行自动化。
- 如果从您终止集群到现在已经超过 60 天,则运行手册不会描述集群或提取 Amazon S3 日志位置。要解决此问题,请确认您输入了集群的 Cluster-Id 和 S3LogLocation 参数。
相关信息
AWS Support 自动化工作流 (SAW)
运行自动化
设置自动化