Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

查看日志文件

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/instance-controller (Amazon EMR 4.7.0 和更高版本)

实例控制器日志。

/mnt/var/log/instance-state

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

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

/emr/service-nanny (Amazon EMR 4.7.0 和更高版本)

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/ 中。

The step logs written by Amazon EMR are as follows.

  • controller — Information about the processing of the step. If your step fails while loading, you can find the stack trace in this log.

  • syslog — Describes the execution of Hadoop jobs in the step.

  • stderr — The standard error channel of Hadoop while it processes the step.

  • stdout — The standard output channel of Hadoop while it processes the step.

查看主节点上的 日志文件

  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 位置中,即 /JobFlowId/ 文件夹中,其中 JobFlowId 是集群标识符。

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

地点 说明

/JobFlowId/node/

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

/JobFlowId/node/instanceId/application

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

/JobFlowId/steps/N/

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

The step logs written by Amazon EMR are as follows.

  • controller — Information about the processing of the step. If your step fails while loading, you can find the stack trace in this log.

  • syslog — Describes the execution of Hadoop jobs in the step.

  • stderr — The standard error channel of Hadoop while it processes the step.

  • stdout — The standard output channel of Hadoop while it processes the step.

/JobFlowId/containers

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

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

  1. Sign in to the AWS Management Console and open the Amazon S3 console at https://console.amazonaws.cn/s3/.

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

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

  4. 双击日志文件,在浏览器中进行查看。

如果您不想在 Amazon S3 控制台中查看日志文件,可使用工具 (如适用于 Firefox Web 浏览器的 Amazon S3 Organizer 插件) 将文件从 Amazon S3 下载到本地计算机,或编写应用程序从 Amazon S3 中检索数据元。有关更多信息,请参阅 Amazon Simple Storage Service Developer Guide中的“获取数据元”。

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

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

使用控制台查看群集日志

  1. Open the Amazon EMR console at https://console.amazonaws.cn/elasticmapreduce/.

  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”,获取这些项目的最新状态。