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

查看日志文件

Amazon EMR 和 Hadoop 都可以生成日志文件,报告集群上的状态。默认情况下,这些会写入 /mnt/var/log/ 目录中的主节点。根据您在启动时如何配置集群,这些日志还可能归档到 Amazon S3,并可通过图形调试工具进行查看。

有多种类型的日志写入主节点。Amazon EMR 会写入步骤、引导操作和实例状态日志。Apache Hadoop 写入的日志会报告作业、任务和任务尝试的处理情况。Hadoop 还会记录守护程序的日志。有关 Hadoop 写入的日志的更多信息,请转到 http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html

查看主节点上的日志文件

下表列出了主节点上可能显示的一些日志文件。

位置 描述

/emr/instance-controller/log/bootstrap-actions

引导操作处理期间写入的日志。

/mnt/var/log/hadoop-state-pusher

Hadoop 状态推送进程写入的日志。

/emr/instance-controller/log

实例控制器日志。

/emr/instance-state

实例状态日志。这些日志中包含有关 CPU、内存状态和节点的垃圾收集器线程的信息。

/emr/service-nanny

nanny 服务流程写入的日志。

/mnt/var/log/application

特定于应用程序 (如 Hadoop、Spark 或 Hive) 的日志。

/mnt/var/log/hadoop/steps/N

步骤日志,其中包含有关步骤处理的信息。值 N 指示 Amazon EMR 分配的 stepId。例如,一个集群有两个步骤:s-1234ABCDEFGHs-5678IJKLMNOP。第一步位于 /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/ 中,第二步位于 /mnt/var/log/hadoop/steps/s-5678IJKLMNOP/ 中。

Amazon EMR 写入的步骤日志如下。

  • 控制器 – 有关步骤处理的信息。如果您的步骤在加载时失败,您可以在此日志中找到堆栈跟踪。

  • syslog – 描述步骤中 Hadoop 任务的执行情况。

  • stderr – Hadoop 处理步骤时的标准错误通道。

  • stdout – Hadoop 处理步骤时的标准输出通道。

使用 Amazon CLI 查看主节点上的日志文件。
  1. 使用 SSH 连接到主节点 中所述使用 SSH 连接主节点。

  2. 导航到您希望查看的、包含日志文件信息的目录。上表提供了一系列可用的、用户也可以搜索到的日志文件类型。以下示例演示用于导航到 ID 为 s-1234ABCDEFGH 的步骤日志的命令。

    cd /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/
  3. 使用您选择的文件查看器来查看日志文件。以下示例使用 Linux less 命令查看 controller 日志文件。

    less controller

查看归档到 Amazon S3 的日志文件

默认情况下,使用控制台启动的 Amazon EMR 集群会自动将日志文件归档到 Amazon S3。您可以指定自己的日志路径,也可以允许控制台自动为您生成日志路径。对于使用 CLI 或 API 启动的集群,您必须手动配置 Amazon S3 日志归档。

当 Amazon EMR 配置为在 Amazon S3 中归档日志文件时,它会将文件存储在您指定的 S3 位置中,即 /cluster-id/ 文件夹中,其中 cluster-id 是集群 ID。

下表列出了 Amazon S3 上可能显示的一些日志文件。

位置 描述

/cluster-id/node/

节点日志,包括引导操作、实例状态和此节点的应用程序日志。每个节点的日志会存储在标有该节点的 EC2 实例标识符的文件夹中。

/cluster-id/node/instance-id/application

由每个应用程序或与应用程序关联的守护进程创建的日志。例如,Hive 服务器日志位于 cluster-id/node/instance-id/hive/hive-server.log 中。

/cluster-id/steps/step-id/

步骤日志,其中包含有关步骤处理的信息。step-id 的值表示 Amazon EMR 分配的步骤 ID。例如,一个集群有两个步骤:s-1234ABCDEFGHs-5678IJKLMNOP。第一步位于 /mnt/var/log/hadoop/steps/s-1234ABCDEFGH/ 中,第二步位于 /mnt/var/log/hadoop/steps/s-5678IJKLMNOP/ 中。

Amazon EMR 写入的步骤日志如下。

  • 控制器 – 有关步骤处理的信息。如果您的步骤在加载时失败,您可以在此日志中找到堆栈跟踪。

  • syslog – 描述步骤中 Hadoop 任务的执行情况。

  • stderr – Hadoop 处理步骤时的标准错误通道。

  • stdout – Hadoop 处理步骤时的标准输出通道。

/cluster-id/containers

应用程序容器日志。每个 YARN 应用程序的日志均存储在这些位置。

/cluster-id/hadoop-mapreduce/

包含有关 MapReduce 作业的配置详细信息和作业历史记录的日志。

使用 Amazon S3 控制台查看存档到 Amazon S3 的日志文件
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 打开您在配置集群时指定的 S3 存储桶,以便将日志文件归档在 Amazon S3 中。

  3. 导航到包含待显示信息的日志文件。上表提供了一系列可用的、用户也可以搜索到的日志文件类型。

  4. 下载日志文件对象以进行查看。有关说明,请参阅下载对象

查看调试工具中的日志文件

Amazon EMR 不会自动启用调试工具。您必须在启动集群时对此进行配置。请注意,Amazon EMR 新控制台不提供调试工具。

使用旧控制台查看集群日志
  1. 导航到 Amazon EMR 新控制台,然后从侧面导航栏中选择切换到旧控制台。有关切换到旧控制台后预期情况的更多信息,请参阅 Using the old console

  2. Cluster List (集群列表) 页面中,选择要查看的集群旁边的详细信息图标。

    这会打开 Cluster Details (集群详细信息) 页面。在 Steps (步骤) 部分中,每个步骤右侧的链接显示可用于该步骤的各种类型的日志。这些日志由 Amazon EMR 生成。

  3. 要查看与给定步骤关联的 Hadoop 任务列表,请选择该步骤右侧的 View Jobs (查看任务) 链接。

  4. 要查看与给定任务关联的 Hadoop 任务列表,请选择该任务右侧的 View Tasks (查看任务) 链接。

  5. 要查看给定任务在尝试完成时运行的尝试列表,请选择任务右侧的 View Attempts (查看尝试) 链接。

  6. 要查看任务尝试生成的日志,请选择任务尝试右侧的 stderrstdoutsyslog 链接。

在 Amazon EMR 上载日志文件到 Amazon S3 上的存储桶后,调试工具会显示日志文件的链接。因为日志文件每 5 分钟会向 Amazon S3 上载一次,所以,日志文件要花费几分钟才能在步骤完成后完成上载。

Amazon EMR 定期更新调试工具中的 Hadoop 任务、任务和任务尝试的状态。您可以单击调试窗格中的 Refresh List (刷新列表),获取这些项目的最新状态。