我有 pyspark 程序在 AWS EMR 集群上运行。 集群配置如下 - 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: '无法获取 block ... file=
在此消息之前不久,有“阶段 35 中的任务 0 失败 4 次”。中止作业'
如果我进入亚马逊控制台 - YARN应用程序 - application_XXX(Spark) - 阶段 - 35 - 任务 - 0 - 标准输出 - 乍一看,除了很多“GC(分配失败)”消息之外,我没有看到任何不好的东西。
在其标准错误中 - 有一个警告 - '无法获取 block XXX,文件 = 没有事件节点包含当前 block block 位置:死节点:。抛出 BlockMissingException。
如果我进入“监控”选项卡 - 节点状态 - 我会看到当时有一个节点变得不健康,仅此而已。 “实时数据节点”、“MR 总节点数”、“MR 活跃节点数”、MR 丢失节点数图表中的节点数也发生了变化。
据我了解,任务无法在 hdfs 上找到文件,因为托管它的节点变得不健康。
我的问题是在哪里可以找到节点变得不健康的原因。我无法在亚马逊控制台上找到任何其他日志。可能有一些节点本地位置存储了这个原因?
最佳答案
嗨,我前段时间自己启动了一个 EMR,不记得日志了。但请参阅此处的文档:
https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-manage-view-web-log-files.html
它指出它们存储在机器上(我假设您有 key ),默认情况下它们也存储在 S3 上。不确定它们将在哪个存储桶中创建。
最诚挚的问候:)
关于amazon-web-services - 在 AWS EMR 集群中哪里可以找到节点日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64898103/