查看 Amazon EMR 日志文件 - Amazon EMR

查看 Amazon EMR 日志文件

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 处理步骤时的标准输出通道。

使用 AWS CLI 查看主节点上的日志文件。
  1. 使用 SSH 连接到 Amazon EMR 集群主节点 中所述使用 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. 登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

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

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

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