在哪里可以找到 AWS EMR 集群中的节点日志?

Where to find node logs in AWS EMR cluster?

我在 AWS EMR 集群上安装了 pyspark 程序 运行。 集群配置是这样的 - emr-5.31.0, hadoop 2.10.0, hive 2.3.7, hue 4.7.1, pig 0.17.0.

程序处理 hdfs 文件系统上的一些文件,但有时会出错。

在亚马逊控制台 - YARN 应用程序 - application_XXX (Spark) - 执行程序 - 驱动程序 - stderr: '无法获取块...文件=

在此消息之前不久有 'Task 0 in stage 35 failed 4 times. aborting job'

如果我转到亚马逊控制台 - YARN 应用程序 - application_XXX (Spark) - stages - 35 - tasks - 0 - stdout - 除了很多 'GC (allocation Failure)' 消息。

在它的 stderr 中 - 有一个警告 - '无法获取块 XXX,文件 = 没有活节点包含当前块块位置:死节点:。抛出 BlockMissingException。

如果我转到监控选项卡 - 节点状态 - 我看到一个节点当时变得不健康,仅此而已。 'live data nodes'、'MR total nodes'、'MR active nodes' 处的节点数也发生了变化,MR 丢失节点的图表。

据我了解,任务无法在 hdfs 上找到文件,因为托管它的节点变得不健康。

我的问题是我在哪里可以找到节点变得不健康的原因。我无法在亚马逊控制台上找到任何其他日志。可能有一些节点本地的地方存储了这个原因?

嗨,我前段时间自己启动了一个 EMR,不记得日志了。但在这里查阅文档:

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-manage-view-web-log-files.html

它声明它们存储在机器上(我假设你有密钥),它们也默认存储在 S3 上。不确定将在哪个存储桶中创建它们。

最好的问候:)

在您的 EMR 集群的摘要页面上有一个名为“配置详细信息”的部分。

在其下方,有一个名为“Log URI”的标签。它指向一个 S3 URI,但是,还有一个小文件夹图标。

单击该图标,您可以浏览到 EMR 集群节点上的日志。

实际上,对于亚马逊,可以通过 s3 位置访问更多日志 - 有用于节点启动和配置部分的日志,以及来自节点上 运行 服务的日志 - hdfs 和 yarn,这是我一直在寻找的。路径看起来像这样 - s3 location/cluster id/node/node id/applications - 在这里我能够找到 hdfs 和纱线日志。