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

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

查看 日志文件

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

查看主节点上的日志文件

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

位置 说明

/mnt/var/log/bootstrap-actions

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

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

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

/mnt/var/log/instance-controller (Amazon EMR 4.6.0 和更低版本)

/emr/instane-控制器 (Amazon EMR 4.7.0 和更高版本)

实例控制器日志。

/mnt/var/log/instance-state

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

/mnt/var/log/service-nanny (Amazon EMR 4.6.0 及更低版本)

/emr/emr/service-Name (亚马逊 EMR 4.7.0 和更高版本)

nanny 服务流程写入的日志。

/mnt/var/log/application

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

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

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

亚马逊 EMR 编写的步骤日志如下。

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

  • syslog— 描述步骤中 Hadoop 作业的执行情况。

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

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

查看主节点上的 日志文件

  1. 使用 SSH Connect 主节点 中所述使用 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/count

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

/cluster-id/countinstance-id/应用程序

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

/cluster-id/步骤/步骤编号/

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

亚马逊 EMR 编写的步骤日志如下。

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

  • syslog— 描述步骤中 Hadoop 作业的执行情况。

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

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

/cluster-id/容器

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

/cluster-id/hadoop-mapreduredureduce/

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

使用控制台查看存档到 Amazon S3 的日志文件

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

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

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

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

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

Amazon EMR 不会自动启用调试工具。您必须在启动群集时对此进行配置。

使用控制台查看集群日志

  1. 从打开 Amazon EMR 控制台https://console.aws.amazon.com/elasticmapreduce/.

  2. 列出集群页面上,选择要查看的集群旁边的详细信息图标。

    这会打开群集详细信息页. 在步骤部分中,每个步骤右侧的链接将显示该步骤可用的各种类型的日志。这些日志由亚马逊 EMR 生成。

  3. 要查看与给定步骤关联的 Hadoop 作业的列表,请选择查看作业链接到步骤的右侧。

  4. 要查看与给定作业关联的 Hadoop 任务的列表,请选择查看任务链接到作业右侧。

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

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

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

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