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

步骤 3:检查日志文件

下一步是检查日志文件,以便找到该集群所遇到的错误代码或其他问题指示。要详细了解可用的日志文件、这些文件的所在位置以及查看方式,请参阅 查看日志文件

您可能需要进行一些调查工作才能确定发生的问题。Hadoop 在集群中各节点上的任务尝试中运行这些任务。Amazon EMR 可以启动推测任务尝试,并终止没有首先完成的其他任务尝试。这会生成记录到控制器、stderr 和 syslog 日志文件中的显著活动。此外,多个任务尝试会同时运行,但日志文件只能线性地显示结果。

首先检查有关在集群启动期间发生的错误或意外配置更改的引导操作日志。在此之后,查看步骤日志以找出作为错误步骤的一部分而启动的 Hadoop 作业。检查 Hadoop 作业日志以找出失败的任务尝试。任务尝试日志中将包含关于导致任务尝试失败的原因的详细信息。

以下各个部分说明如何使用各种日志文件确定集群中的错误。

检查引导操作日志

引导操作在集群启动时会在该集群上运行脚本。这些脚本通常用于在集群上安装其他软件,或者将配置设置的默认值修改为其他值。通过查看这些日志,可以深入了解在设置集群期间发生的错误以及可能影响性能的配置设置更改。

检查步骤日志

步骤日志分为四种类型。

  • controller – 包含由 Amazon EMR (Amazon EMR) 生成的文件,这些文件是因尝试运行该步骤时遇到错误而产生的。如果在加载时步骤失败,您可以在此日志中找到堆栈跟踪。与缺失的映射器文件错误一样,加载或访问应用程序错误也经常会在此处加以描述。

  • stderr – 包含处理该步骤时产生的错误消息。应用程序加载错误通常会在此处加以描述。此日志有时包含堆栈跟踪。

  • stdout – 包含由映射器和 Reducer 可执行文件生成的状态。应用程序加载错误通常会在此处加以描述。此日志有时包含应用程序错误消息。

  • syslog – 包含来自非 Amazon 软件(如 Apache 和 Hadoop)的日志。流式错误通常在此处加以描述。

查看 stderr 以了解明显的错误。如果 stderr 显示一个简短的错误列表,错误引发时该步骤会快速停止。这种情况通常是由在集群中运行的映射器和 Reducer 应用程序中的错误引起的。

检查控制器和错误或失败通知的 syslog 的最后一行。遵循任何关于已失败任务的通知,尤其是显示为“任务失败”的通知。

检查任务尝试日志

If the previous analysis of the step logs turned up one or more failed tasks, investigate the logs of the corresponding task attempts for more detailed error information.

检查 Hadoop 守护程序日志

In rare cases, Hadoop itself might fail. To see if that is the case, you must look at the Hadoop logs. They are located at /var/log/hadoop/ on each node.

You can use the JobTracker logs to map a failed task attempt to the node it was run on. Once you know the node associated with the task attempt, you can check the health of the EC2 instance hosting that node to see if there were any issues such as running out of CPU or memory.