跳至内容

如何检测和诊断 Amazon EMR 集群问题?

1 分钟阅读
0

我想检测并解决 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

要启动运行手册,请完成以下步骤:

  1. 在 Systems Manager 控制台中打开 AWSSupport-DiagnoseEMRLogsWithAthena
  2. 选择 Execute automation(执行自动化)。
  3. 输入以下值:
    **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:**要在日志中搜索的关键字列表,以逗号分隔。
    **注意:**请勿在关键字中包含单引号或双引号。
  4. 选择 Execute(执行)。
  5. Outputs(输出)部分查看详细结果。

输出中会提供以下 Athena Data Manipulation Language (DML) 查询结果的链接:

  • Amazon EMR 集群日志中的所有错误和异常,以及相应的日志位置。
  • Amazon EMR 日志中匹配的唯一已知异常的摘要。
  • Amazon S3 日志路径中出现特定错误和异常的位置。

对自动化运行手册问题进行故障排除

请执行以下操作:

  • 如果底层 Athena DML 查询由于集群日志的大小超过默认设置而超时,则自动化可能会失败。要解决此问题,请在 Athena 服务配额控制台**上增加 **DML 查询超时时间。然后,再次运行自动化。
  • 如果从您终止集群到现在已经超过 60 天,则运行手册不会描述集群或提取 Amazon S3 日志位置。要解决此问题,请确认您输入了集群的 Cluster-IdS3LogLocation 参数。

相关信息

AWS Support 自动化工作流 (SAW)

运行自动化

设置自动化

AWS 官方已更新 2 年前